Skip to content

Commit 2a5e411

Browse files
committed
small client updates
1 parent b934b89 commit 2a5e411

27 files changed

+147
-138
lines changed

files/constants.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -129,16 +129,16 @@
129129
const PHPFHIR_CLIENT_ENUM_RESPONSE_FORMAT = 'ResponseFormatEnum';
130130

131131
// Version class names
132-
const PHPFHIR_CLASSNAME_VERSION = 'Version';
133-
const PHPFHIR_CLASSNAME_VERSION_CONSTANTS = 'VersionConstants';
134-
const PHPFHIR_CLASSNAME_VERSION_TYPE_MAP = 'VersionTypeMap';
135-
const PHPFHIR_CLASSNAME_VERSION_API_CLIENT = 'VersionAPIClient';
132+
const PHPFHIR_VERSION_CLASSNAME_VERSION = 'Version';
133+
const PHPFHIR_VERSION_CLASSNAME_VERSION_CONSTANTS = 'VersionConstants';
134+
const PHPFHIR_VERSION_CLASSNAME_VERSION_TYPE_MAP = 'VersionTypeMap';
135+
const PHPFHIR_VERSION_CLASSNAME_VERSION_CLIENT = 'VersionClient';
136136

137137
// Version interface names
138-
const PHPFHIR_INTERFACE_VERSION_CONTAINED_TYPE = 'VersionContainedTypeInterface';
138+
const PHPFHIR_VERSION_INTERFACE_VERSION_CONTAINED_TYPE = 'VersionContainedTypeInterface';
139139

140140
// Version enums
141-
const PHPFHIR_ENUM_VERSION_TYPE = 'VersionTypeEnum';
141+
const PHPFHIR_VERSION_ENUM_VERSION_TYPE = 'VersionTypeEnum';
142142

143143
// Validation constants
144144
const PHPFHIR_VALIDATION_ENUM = 'enum';
@@ -158,7 +158,7 @@
158158
const PHPFHIR_TESTS_NAMESPACE_BASE = 'Tests';
159159
const PHPFHIR_TEST_CLASSNAME_CONSTANTS = PHPFHIR_CLASSNAME_CONSTANTS . 'Test';
160160
const PHPFHIR_TEST_CLASSNAME_AUTOLOADER = PHPFHIR_CLASSNAME_AUTOLOADER . 'Test';
161-
const PHPFHIR_TEST_CLASSNAME_TYPE_MAP = PHPFHIR_CLASSNAME_VERSION_TYPE_MAP . 'Test';
161+
const PHPFHIR_TEST_CLASSNAME_TYPE_MAP = PHPFHIR_VERSION_CLASSNAME_VERSION_TYPE_MAP . 'Test';
162162
const PHPFHIR_TEST_CLASSNAME_FACTORY_CONFIG = PHPFHIR_CLASSNAME_FACTORY_CONFIG . 'Test';
163163

164164
// Test constant names

src/Utilities/ImportUtils.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ public static function buildVersionTypeImports(Type $type): void
6464

6565
$imports->addVersionCoreFileImportsByName(
6666
$type->getVersion(),
67-
PHPFHIR_CLASSNAME_VERSION,
68-
PHPFHIR_CLASSNAME_VERSION_CONSTANTS,
67+
PHPFHIR_VERSION_CLASSNAME_VERSION,
68+
PHPFHIR_VERSION_CLASSNAME_VERSION_CONSTANTS,
6969
);
7070

7171
$imports->addCoreFileImportsByName(
@@ -83,8 +83,8 @@ public static function buildVersionTypeImports(Type $type): void
8383
if ($typeKind->isResourceContainer($type->getVersion())) {
8484
$imports->addVersionCoreFileImportsByName(
8585
$type->getVersion(),
86-
PHPFHIR_CLASSNAME_VERSION_TYPE_MAP,
87-
PHPFHIR_INTERFACE_VERSION_CONTAINED_TYPE,
86+
PHPFHIR_VERSION_CLASSNAME_VERSION_TYPE_MAP,
87+
PHPFHIR_VERSION_INTERFACE_VERSION_CONTAINED_TYPE,
8888
);
8989
return;
9090
}
@@ -121,9 +121,9 @@ public static function buildVersionTypeImports(Type $type): void
121121

122122
if ($ptk->isOneOf(TypeKindEnum::RESOURCE_CONTAINER, TypeKindEnum::RESOURCE_INLINE)) {
123123
$imports->addCoreFileImportsByName(PHPFHIR_CLASSNAME_CONSTANTS);
124-
$imports->addVersionCoreFileImportsByName($type->getVersion(), PHPFHIR_INTERFACE_VERSION_CONTAINED_TYPE);
125-
$imports->addVersionCoreFileImportsByName($type->getVersion(), PHPFHIR_CLASSNAME_VERSION_TYPE_MAP);
126-
$imports->addVersionCoreFileImportsByName($type->getVersion(), PHPFHIR_CLASSNAME_VERSION);
124+
$imports->addVersionCoreFileImportsByName($type->getVersion(), PHPFHIR_VERSION_INTERFACE_VERSION_CONTAINED_TYPE);
125+
$imports->addVersionCoreFileImportsByName($type->getVersion(), PHPFHIR_VERSION_CLASSNAME_VERSION_TYPE_MAP);
126+
$imports->addVersionCoreFileImportsByName($type->getVersion(), PHPFHIR_VERSION_CLASSNAME_VERSION);
127127
} else {
128128
if ($ptk === TypeKindEnum::PRIMITIVE_CONTAINER) {
129129
$primType = $propertyType->getProperties()->getProperty(PHPFHIR_VALUE_PROPERTY_NAME)->getValueFHIRType();

src/Utilities/TypeHintUtils.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public static function typeTypeHint(Version $version, Type $type, bool $nullable
118118
return sprintf(
119119
'%s%s',
120120
$nullable ? 'null|' : '',
121-
PHPFHIR_INTERFACE_VERSION_CONTAINED_TYPE
121+
PHPFHIR_VERSION_INTERFACE_VERSION_CONTAINED_TYPE
122122
);
123123
}
124124

@@ -175,7 +175,7 @@ public static function typeTypeDoc(Version $version, Type $type, bool $nullable,
175175

176176
// if this is an inline resource
177177
if ($tk->isOneOf(TypeKindEnum::RESOURCE_INLINE, TypeKindEnum::RESOURCE_CONTAINER)) {
178-
$types[] = $version->getFullyQualifiedName(true, PHPFHIR_INTERFACE_VERSION_CONTAINED_TYPE);
178+
$types[] = $version->getFullyQualifiedName(true, PHPFHIR_VERSION_INTERFACE_VERSION_CONTAINED_TYPE);
179179
} else {
180180
$types[] = $type->getFullyQualifiedClassName(true);
181181
}

src/Version/Definition/Type.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ public function getImports(): Imports
186186
public function getConstName(bool $withConstClass, string $prefix = ''): string
187187
{
188188
if ($withConstClass) {
189-
$cn = sprintf('%s::', PHPFHIR_CLASSNAME_VERSION_CONSTANTS);
189+
$cn = sprintf('%s::', PHPFHIR_VERSION_CLASSNAME_VERSION_CONSTANTS);
190190
} else {
191191
$cn = '';
192192
}
@@ -776,8 +776,8 @@ public function getDirectlyImplementedInterfaces(): array
776776
->getFullyQualifiedNamespace(false);
777777
}
778778
if ($this->isContainedType()) {
779-
$interfaces[PHPFHIR_INTERFACE_VERSION_CONTAINED_TYPE] = $versionCoreFiles
780-
->getCoreFileByEntityName(PHPFHIR_INTERFACE_VERSION_CONTAINED_TYPE)
779+
$interfaces[PHPFHIR_VERSION_INTERFACE_VERSION_CONTAINED_TYPE] = $versionCoreFiles
780+
->getCoreFileByEntityName(PHPFHIR_VERSION_INTERFACE_VERSION_CONTAINED_TYPE)
781781
->getFullyQualifiedNamespace(false);
782782
} else if ($this->getKind() === TypeKindEnum::PRIMITIVE) {
783783
$interfaces[PHPFHIR_INTERFACE_PRIMITIVE_TYPE] = $coreFiles
@@ -789,8 +789,8 @@ public function getDirectlyImplementedInterfaces(): array
789789
->getFullyQualifiedNamespace(false);
790790
}
791791
} elseif ($this->isContainedType() && !$parentType->isContainedType()) {
792-
$interfaces[PHPFHIR_INTERFACE_VERSION_CONTAINED_TYPE] = $versionCoreFiles
793-
->getCoreFileByEntityName(PHPFHIR_INTERFACE_VERSION_CONTAINED_TYPE)
792+
$interfaces[PHPFHIR_VERSION_INTERFACE_VERSION_CONTAINED_TYPE] = $versionCoreFiles
793+
->getCoreFileByEntityName(PHPFHIR_VERSION_INTERFACE_VERSION_CONTAINED_TYPE)
794794
->getFullyQualifiedNamespace(false);
795795
}
796796

template/core/class_factory.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ final class <?php echo PHPFHIR_CLASSNAME_FACTORY; ?>
5757
<?php foreach ($config->getVersionsIterator() as $version): ?>
5858
[
5959
'name' => '<?php echo $version->getName(); ?>',
60-
'class' => '<?php echo $version->getFullyQualifiedName(true, PHPFHIR_CLASSNAME_VERSION); ?>',
60+
'class' => '<?php echo $version->getFullyQualifiedName(true, PHPFHIR_VERSION_CLASSNAME_VERSION); ?>',
6161
],
6262
<?php endforeach; ?>
6363
]

template/core/client/class_client.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,10 @@ public function exec(<?php echo PHPFHIR_CLIENT_CLASSNAME_REQUEST; ?> $request):
115115
+ [CURLOPT_CUSTOMREQUEST => $request->method]
116116
+ array_merge($this->_config->getCurlOpts(), $request->options ?? []);
117117

118-
$parseHeaders = ($this->_config->getParseHeaders() && (!isset($req->parseHeaders) || $req->parseHeaders))
119-
|| (isset($req->parseHeaders) && $req->parseHeaders);
118+
$parseResponseHeaders = ($this->_config->getParseHeaders() && (!isset($req->parseResponseHeaders) || $req->parseResponseHeaders))
119+
|| (isset($req->parseResponseHeaders) && $req->parseResponseHeaders);
120120

121-
if ($parseHeaders) {
121+
if ($parseResponseHeaders) {
122122
$curlOpts[CURLOPT_HEADER] = 1;
123123
$curlOpts[CURLOPT_HEADERFUNCTION] = function($ch, string $line) use (&$rc): int {
124124
return $rc->headers->addLine($line);
@@ -148,7 +148,7 @@ public function exec(<?php echo PHPFHIR_CLIENT_CLASSNAME_REQUEST; ?> $request):
148148
$rc->err = $err;
149149
$rc->errno = $errno;
150150

151-
if ($parseHeaders) {
151+
if ($parseResponseHeaders) {
152152
$rc->resp = substr($resp, $rc->headers->getLength());
153153
} else {
154154
$rc->resp = $resp;

template/core/client/class_config.php

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -50,28 +50,29 @@ class <?php echo PHPFHIR_CLIENT_CLASSNAME_CONFIG; ?>
5050
/** @var null|<?php echo $formatEnum->getFullyQualifiedName(true); ?> */
5151
private null|<?php echo PHPFHIR_CLIENT_ENUM_RESPONSE_FORMAT; ?> $_defaultFormat;
5252
/** @var bool */
53-
private bool $_parseHeaders;
53+
private bool $_parseResponseHeaders;
5454

5555
/**
5656
* <?php echo PHPFHIR_CLIENT_CLASSNAME_CONFIG; ?> Constructor
5757
*
5858
* @param string $address Fully qualified address of FHIR server, including scheme, port, and any path prefix.
59-
* @param array $curlOpts Base curl options array. These will be added to every request. May be overridden by an individual request.
60-
* @param array $queryParams Base query parameters array. These will be added to every request. May be overridden by an individual request.
6159
* @param null|<?php echo $formatEnum->getFullyQualifiedName(true); ?> $defaultFormat Default format to request from server. If not provided, server default will be used. May be overridden by an individual request.
62-
* @param bool $parseHeaders Whether or not to parse headers from response. This adds a small amount of overhead, so it is recommended to only set to true if actually used.
60+
* @param array $queryParams Base query parameters array. These will be added to every request. May be overridden by an individual request.
61+
* @param array $curlOpts Base curl options array. These will be added to every request. May be overridden by an individual request.
62+
* @param bool $parseResponseHeaders Whether or not to parse headers from response. This adds a small amount of overhead, so it is recommended to only set to true if actually used.
6363
*/
6464
public function __construct(string $address,
65-
array $curlOpts = [],
66-
array $queryParams = [],
6765
null|<?php echo PHPFHIR_CLIENT_ENUM_RESPONSE_FORMAT; ?> $defaultFormat = null,
68-
bool $parseHeaders = false)
66+
array $queryParams = [],
67+
array $requestHeaders = [],
68+
array $curlOpts = [],
69+
bool $parseResponseHeaders = false)
6970
{
7071
$this->_address = $address;
71-
$this->_curlOpts = $curlOpts;
72-
$this->_queryParams = $queryParams;
7372
$this->_defaultFormat = $defaultFormat;
74-
$this->_parseHeaders = $parseHeaders;
73+
$this->_queryParams = $queryParams;
74+
$this->_curlOpts = $curlOpts;
75+
$this->_parseResponseHeaders = $parseResponseHeaders;
7576
}
7677

7778
/**
@@ -83,11 +84,13 @@ public function getAddress(): string
8384
}
8485

8586
/**
86-
* @return array
87+
* @return null|<?php echo $formatEnum->getFullyQualifiedName(true); ?>
88+
8789
*/
88-
public function getCurlOpts(): array
90+
public function getDefaultFormat(): null|<?php echo PHPFHIR_CLIENT_ENUM_RESPONSE_FORMAT; ?>
91+
8992
{
90-
return $this->_curlOpts;
93+
return $this->_defaultFormat;
9194
}
9295

9396
/**
@@ -99,21 +102,19 @@ public function getQueryParams(): array
99102
}
100103

101104
/**
102-
* @return null|<?php echo $formatEnum->getFullyQualifiedName(true); ?>
103-
105+
* @return array
104106
*/
105-
public function getDefaultFormat(): null|<?php echo PHPFHIR_CLIENT_ENUM_RESPONSE_FORMAT; ?>
106-
107+
public function getCurlOpts(): array
107108
{
108-
return $this->_defaultFormat;
109+
return $this->_curlOpts;
109110
}
110111

111112
/**
112113
* @return bool
113114
*/
114115
public function getParseHeaders(): bool
115116
{
116-
return $this->_parseHeaders;
117+
return $this->_parseResponseHeaders;
117118
}
118119
}
119120
<?php return ob_get_clean();

template/core/client/class_request.php

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@
2121

2222
$coreFiles = $config->getCoreFiles();
2323

24+
$clientClass = $coreFiles->getCoreFileByEntityName(PHPFHIR_CLIENT_CLASSNAME_CLIENT);
2425
$formatEnum = $coreFiles->getCoreFileByEntityName(PHPFHIR_CLIENT_ENUM_RESPONSE_FORMAT);
2526
$sortEnum = $coreFiles->getCoreFileByEntityName(PHPFHIR_CLIENT_ENUM_SORT_DIRECTION);
27+
$responseClass = $coreFiles->getCoreFileByEntityName(PHPFHIR_CLIENT_CLASSNAME_RESPONSE);
2628

2729
ob_start();
2830
echo '<?php ';?>declare(strict_types=1);
@@ -48,9 +50,6 @@ class <?php echo PHPFHIR_CLIENT_CLASSNAME_REQUEST; ?>
4850
/** @var string */
4951
public string $at;
5052

51-
/** @var bool */
52-
public bool $parseHeaders;
53-
5453
/** @var <?php echo $formatEnum->getFullyQualifiedName(true); ?> */
5554
public <?php echo PHPFHIR_CLIENT_ENUM_RESPONSE_FORMAT; ?> $format;
5655

@@ -65,8 +64,19 @@ class <?php echo PHPFHIR_CLIENT_CLASSNAME_REQUEST; ?>
6564
public array $queryParams;
6665

6766
/**
68-
* Extra options. Possible values depends on what client you are using. If using the base API client, these
69-
* must be valid PHP curl options.
67+
* If true, headers from the response must be returned and defined in the response object.
68+
*
69+
* @see <?php echo $responseClass->getFullyQualifiedName(true); ?>::$headers
70+
*
71+
* @var bool
72+
*/
73+
public bool $parseResponseHeaders;
74+
75+
/**
76+
* Extra client options. Possible entries will vary depending on what client implementation you are using.
77+
*
78+
* If using the provided client (@see <?php echo $clientClass->getFullyQualifiedName(true); ?> class),
79+
* these must be valid PHP curl options.
7080
*
7181
* @var array
7282
*/

template/core/client/class_response_headers.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public function addLine(string $line): int
7575
*/
7676
public function get(string $name): null|array
7777
{
78-
$this->_parseHeaders();
78+
$this->_parseResponseHeaders();
7979
return $this->_headers[strtolower($name)] ?? null;
8080
}
8181

@@ -92,11 +92,11 @@ public function getLinesIterator(): iterable
9292
*/
9393
public function getParsedIterator(): iterable
9494
{
95-
$this->_parseHeaders();
95+
$this->_parseResponseHeaders();
9696
return new \ArrayIterator($this->_headers);
9797
}
9898

99-
protected function _parseHeaders(): void
99+
protected function _parseResponseHeaders(): void
100100
{
101101
if ($this->_parsed) {
102102
return;

template/core/enum_version.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929

3030
<?php foreach($config->getVersionsIterator() as $version) : ?>
31-
use <?php echo $version->getFullyQualifiedName(false, PHPFHIR_CLASSNAME_VERSION); ?> as <?php echo $version->getEnumImportName(); ?>;
31+
use <?php echo $version->getFullyQualifiedName(false, PHPFHIR_VERSION_CLASSNAME_VERSION); ?> as <?php echo $version->getEnumImportName(); ?>;
3232
<?php endforeach; ?>
3333

3434
enum <?php echo PHPFHIR_ENUM_VERSION; ?> : string

template/versions/core/class_version.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
$versionConfigInterface = $coreFiles->getCoreFileByEntityName(PHPFHIR_INTERFACE_VERSION_CONFIG);
3030
$versionTypeMapInterface = $coreFiles->getCoreFileByEntityName(PHPFHIR_INTERFACE_VERSION_TYPE_MAP);
3131

32-
$versionTypeMapClass = $versionCoreFiles->getCoreFileByEntityName(PHPFHIR_CLASSNAME_VERSION_TYPE_MAP);
32+
$versionTypeMapClass = $versionCoreFiles->getCoreFileByEntityName(PHPFHIR_VERSION_CLASSNAME_VERSION_TYPE_MAP);
3333

3434
ob_start();
3535
echo '<?php ';?>declare(strict_types=1);
@@ -44,7 +44,7 @@
4444
use <?php echo $versionConfigInterface->getFullyQualifiedName(false); ?>;
4545
use <?php echo $versionTypeMapInterface->getFullyQualifiedName(false); ?>;
4646

47-
class <?php echo PHPFHIR_CLASSNAME_VERSION; ?> implements <?php echo PHPFHIR_INTERFACE_VERSION; ?>
47+
class <?php echo PHPFHIR_VERSION_CLASSNAME_VERSION; ?> implements <?php echo PHPFHIR_INTERFACE_VERSION; ?>
4848

4949
{
5050
public const NAME = '<?php echo $version->getName(); ?>';
@@ -57,10 +57,10 @@ class <?php echo PHPFHIR_CLASSNAME_VERSION; ?> implements <?php echo PHPFHIR_INT
5757
private <?php echo PHPFHIR_INTERFACE_VERSION_CONFIG; ?> $_config;
5858

5959
/** @var <?php echo $versionTypeMapClass->getFullyQualifiedName(true); ?> */
60-
private static <?php echo PHPFHIR_CLASSNAME_VERSION_TYPE_MAP; ?> $_typeMap;
60+
private static <?php echo PHPFHIR_VERSION_CLASSNAME_VERSION_TYPE_MAP; ?> $_typeMap;
6161

6262
/**
63-
* <?php echo PHPFHIR_CLASSNAME_VERSION; ?> Constructor
63+
* <?php echo PHPFHIR_VERSION_CLASSNAME_VERSION; ?> Constructor
6464
* @param null|array|<?php echo $versionConfigInterface->getFullyQualifiedName(true); ?> $config
6565
*/
6666
public function __construct(null|array|<?php echo PHPFHIR_INTERFACE_VERSION_CONFIG; ?> $config = null)
@@ -119,7 +119,7 @@ public function getTypeMap(): <?php echo PHPFHIR_INTERFACE_VERSION_TYPE_MAP; ?>
119119

120120
{
121121
if (!isset(self::$_typeMap)) {
122-
self::$_typeMap = new <?php echo PHPFHIR_CLASSNAME_VERSION_TYPE_MAP; ?>();
122+
self::$_typeMap = new <?php echo PHPFHIR_VERSION_CLASSNAME_VERSION_TYPE_MAP; ?>();
123123
}
124124
return self::$_typeMap;
125125
}

0 commit comments

Comments
 (0)