protected function getRouteOperationInPathParameters($operation, $resourceName = '', $resourceProperties = [])
	{
		$result = [];

		if (isset($operation['parameters'])) {
			foreach ($operation['parameters'] as $p) {

				// Reference
				if (isset($p['$ref'])) {
					$parameter = $this->resolveReference($p['$ref'])['target'];
				} else {
					$parameter = $p;
				}

				if ($parameter['in'] != 'path') {
					continue;
				}

				$result[$parameter['name']] = null;

				// Check if it's a resource property
				if (count($resourceProperties) > 0) {
					// Resource Id pattern
					$pattern = '/(\w+)Id$/';
					if (preg_match($pattern, $parameter['name'])) {
						$resourcePropertyToMatch = ucfirst(substr($parameter['name'], 0, strlen($parameter['name']) - 2));
						$snakeCaseResourcePropertyToMatch = strtolower(preg_replace('/(?<!^)[A-Z]/', '_$0', $resourcePropertyToMatch));
						foreach ($resourceProperties as $resourceProperty) {
							if ($resourceProperty['name'] == $snakeCaseResourcePropertyToMatch) {
								$result[$parameter['name']] = '$this->' . $snakeCaseResourcePropertyToMatch;
							}
						}
					}
				}

				// This resource Id ?
				if (is_null($result[$parameter['name']]) && ($resourceName != '')) {
					// Resource Id pattern
					$pattern = '/(\w+)Id$/';

					if (preg_match($pattern, $parameter['name'])) {
						$resourcePropertyToMatch = ucfirst(substr($parameter['name'], 0, strlen($parameter['name']) - 2));
						if ($resourceName == $resourcePropertyToMatch) {
							$result[$parameter['name']] = '$this->id';
						}
					}
				}
				// This resource composite key or foreign key ?
				if (is_null($result[$parameter['name']]) && ($resourceName != '')) {
					$snakeCaseParameterName = strtolower(preg_replace('/(?<!^)[A-Z]/', '_$0', $parameter['name']));
					foreach ($resourceProperties as $resourceProperty) {
						if ($resourceProperty['name'] == $snakeCaseParameterName) {
							$result[$parameter['name']] = '$this->' . $snakeCaseParameterName;
						}
					}
				}

				if (is_null($result[$parameter['name']])) {
					$result[$parameter['name']] = '$' . $parameter['name'];
				}
			}
		}

		return $result;
	}
protected function getRouteOperationInPathParameters($operation, $resourceName = '', $resourceProperties = [])
	{
		$result = [];

		if (isset($operation['parameters'])) {
			foreach ($operation['parameters'] as $p) {

				// Reference
				if (isset($p['$ref'])) {
					$parameter = $this->resolveReference($p['$ref'])['target'];
				} else {
					$parameter = $p;
				}

				if ($parameter['in'] != 'path') {
					continue;
				}

				$result[$parameter['name']] = null;

				// Check if it's a resource property
				if (count($resourceProperties) > 0) {
					// Resource Id pattern
					$pattern = '/(\w+)Id$/';
					if (preg_match($pattern, $parameter['name'])) {
						$resourcePropertyToMatch = ucfirst(substr($parameter['name'], 0, strlen($parameter['name']) - 2));
						$snakeCaseResourcePropertyToMatch = strtolower(preg_replace('/(?<!^)[A-Z]/', '_$0', $resourcePropertyToMatch));
						foreach ($resourceProperties as $resourceProperty) {
							if ($resourceProperty['name'] == $snakeCaseResourcePropertyToMatch) {
								$result[$parameter['name']] = '$this->' . $snakeCaseResourcePropertyToMatch;
							}
						}
					}
				}

				// This resource Id ?
				if (is_null($result[$parameter['name']]) && ($resourceName != '')) {
					// Resource Id pattern
					$pattern = '/(\w+)Id$/';

					if (preg_match($pattern, $parameter['name'])) {
						$resourcePropertyToMatch = ucfirst(substr($parameter['name'], 0, strlen($parameter['name']) - 2));
						if ($resourceName == $resourcePropertyToMatch) {
							$result[$parameter['name']] = '$this->id';
						}
					}
				}
				// This resource composite key or foreign key ?
				if (is_null($result[$parameter['name']]) && ($resourceName != '')) {
					$snakeCaseParameterName = strtolower(preg_replace('/(?<!^)[A-Z]/', '_$0', $parameter['name']));
					foreach ($resourceProperties as $resourceProperty) {
						if ($resourceProperty['name'] == $snakeCaseParameterName) {
							$result[$parameter['name']] = '$this->' . $snakeCaseParameterName;
						}
					}
				}

				if (is_null($result[$parameter['name']])) {
					$result[$parameter['name']] = '$' . $parameter['name'];
				}
			}
		}

		return $result;
	}
protected function getRouteOperationInPathParameters ( $ operation , $ resourceName = '' , $ resourceProperties = [ ] ) { $ result = [ ] ; if ( isset ( $ operation [ 'parameters' ] ) ) { foreach ( $ operation [ 'parameters' ] as $ p ) { // Reference
 if ( isset ( $ p [ '$ref' ] ) ) { $ parameter = $ this -> resolveReference ( $ p [ '$ref' ] ) [ 'target' ] ; } else { $ parameter = $ p ; } if ( $ parameter [ 'in' ] != 'path' ) { continue ; } $ result [ $ parameter [ 'name' ] ] = null ; // Check if it's a resource property
 if ( count ( $ resourceProperties ) > 0 ) { // Resource Id pattern
 $ pattern = '/(\w+)Id$/' ; if ( preg_match ( $ pattern , $ parameter [ 'name' ] ) ) { $ resourcePropertyToMatch = ucfirst ( substr ( $ parameter [ 'name' ] , 0 , strlen ( $ parameter [ 'name' ] ) - 2 ) ) ; $ snakeCaseResourcePropertyToMatch = strtolower ( preg_replace ( '/(?<!^)[A-Z]/' , '_$0' , $ resourcePropertyToMatch ) ) ; foreach ( $ resourceProperties as $ resourceProperty ) { if ( $ resourceProperty [ 'name' ] == $ snakeCaseResourcePropertyToMatch ) { $ result [ $ parameter [ 'name' ] ] = '$this->' . $ snakeCaseResourcePropertyToMatch ; } } } } // This resource Id ?
 if ( is_null ( $ result [ $ parameter [ 'name' ] ] ) && ( $ resourceName != '' ) ) { // Resource Id pattern
 $ pattern = '/(\w+)Id$/' ; if ( preg_match ( $ pattern , $ parameter [ 'name' ] ) ) { $ resourcePropertyToMatch = ucfirst ( substr ( $ parameter [ 'name' ] , 0 , strlen ( $ parameter [ 'name' ] ) - 2 ) ) ; if ( $ resourceName == $ resourcePropertyToMatch ) { $ result [ $ parameter [ 'name' ] ] = '$this->id' ; } } } // This resource composite key or foreign key ?
 if ( is_null ( $ result [ $ parameter [ 'name' ] ] ) && ( $ resourceName != '' ) ) { $ snakeCaseParameterName = strtolower ( preg_replace ( '/(?<!^)[A-Z]/' , '_$0' , $ parameter [ 'name' ] ) ) ; foreach ( $ resourceProperties as $ resourceProperty ) { if ( $ resourceProperty [ 'name' ] == $ snakeCaseParameterName ) { $ result [ $ parameter [ 'name' ] ] = '$this->' . $ snakeCaseParameterName ; } } } if ( is_null ( $ result [ $ parameter [ 'name' ] ] ) ) { $ result [ $ parameter [ 'name' ] ] = '$' . $ parameter [ 'name' ] ; } } } return $ result ; }
Return a map of the operation path parameters
With the path parameter name as the key and the property name as the value if it's resource related

@param mixed[] $operation
@param string $resourceName Resource name (If it's a resource)
@param mixed[] $resourceProperties Properties (If it's a resource)
@return string[]
Return a map of the operation path parameters With the path parameter name as the key and the property name as the value if it s resource related