[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [friendsofphp/php-cs-fixer](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer) | `<3.51.1` -> `<3.53.1` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>PHP-CS-Fixer/PHP-CS-Fixer (friendsofphp/php-cs-fixer)</summary> ### [`v3.53.0`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3530) [Compare Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.52.1...v3.53.0) - chore: Use `list` over `array` in more places ([#​7905](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7905)) - CI: allow for self-approvals for maintainers ([#​7921](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7921)) - CI: Improve Infection setup ([#​7913](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7913)) - CI: no need to trigger enable auto-merge when self-approve ([#​7929](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7929)) - DX: reduce `array_filter` function usages ([#​7923](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7923)) - DX: remove duplicated character from `trim` call ([#​7930](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7930)) - DX: update actions producing warnings ([#​7925](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7925)) - DX: update actions producing warnings ([#​7928](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7928)) - DX: update `phpstan/phpstan-strict-rules` ([#​7924](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7924)) - feat: Add trailing comma in multiline to PER-CS 2.0 ([#​7916](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7916)) - feat: Introduce `AttributeAnalysis` ([#​7909](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7909)) - feat: `@PHP84Migration` introduction ([#​7774](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7774)) - fix: Constant invocation detected in typed constants ([#​7892](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7892)) - fix: `PhpdocArrayTypeFixer` - JIT stack limit exhausted ([#​7895](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7895)) - test: Introduce Infection for mutation tests ([#​7874](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7874)) ### [`v3.52.1`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3521) [Compare Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.52.0...v3.52.1) - fix: StatementIndentationFixer - do not crash on ternary operator in class property ([#​7899](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7899)) - fix: `PhpCsFixer\Tokenizer\Tokens::setSize` return type ([#​7900](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7900)) ### [`v3.52.0`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3520) [Compare Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.51.0...v3.52.0) - chore: fix PHP 8.4 deprecations ([#​7894](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7894)) - chore: fix PHPStan 1.10.60 issues ([#​7873](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7873)) - chore: list over array in more places ([#​7876](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7876)) - chore: replace template with variable in Preg class ([#​7882](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7882)) - chore: update PHPStan ([#​7871](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7871)) - depr: `nullable_type_declaration_for_default_null_value` - deprecate option that is against `@PHP84Migration` ([#​7872](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7872)) - docs: Fix typo ([#​7889](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7889)) - feat: Add support for callable template in PHPDoc parser ([#​7084](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7084)) - feat: Add `array_indentation` to `PER-CS2.0` ruleset ([#​7881](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7881)) - feat: `@Symfony:risky` - add `no_unreachable_default_argument_value` ([#​7863](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7863)) - feat: `PhpCsFixer` ruleset - enable `nullable_type_declaration_for_default_null_value` ([#​7870](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7870)) - fix: Constant invocation detected in DNF types ([#​7869](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7869)) - fix: Correctly indent multiline constants and properties ([#​7875](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7875)) - fix: `no_useless_concat_operator` - do not break variable ([#​7827](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7827)) - fix: `TokensAnalyzer` - handle unary operator in arrow functions ([#​7862](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7862)) - fix: `TypeExpression` - fix "JIT stack limit exhausted" error ([#​7843](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7843)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/libretime/libretime). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNDUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: jo <ljonas@riseup.net>
100 lines
3.6 KiB
PHP
100 lines
3.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Class Rest_RouteController.
|
|
*/
|
|
class Rest_RouteController extends Zend_Controller_Router_Route
|
|
{
|
|
/**
|
|
* @var Zend_Controller_Front
|
|
*/
|
|
protected $_front;
|
|
|
|
protected $_actionKey = 'action';
|
|
|
|
/**
|
|
* Prepares the route for mapping by splitting (exploding) it
|
|
* to a corresponding atomic parts. These parts are assigned
|
|
* a position which is later used for matching and preparing values.
|
|
*
|
|
* @param Zend_Controller_Front $front Front Controller object
|
|
* @param string $route Map used to match with later submitted URL path
|
|
* @param array $defaults Defaults for map variables with keys as variable names
|
|
* @param array $reqs Regular expression requirements for variables (keys as variable names)
|
|
* @param Zend_Translate $translator Translator to use for this instance
|
|
* @param null|mixed $locale
|
|
*/
|
|
public function __construct(Zend_Controller_Front $front, $route, $defaults = [], $reqs = [], ?Zend_Translate $translator = null, $locale = null)
|
|
{
|
|
$this->_front = $front;
|
|
$this->_dispatcher = $front->getDispatcher();
|
|
|
|
parent::__construct($route, $defaults, $reqs, $translator, $locale);
|
|
}
|
|
|
|
/**
|
|
* Matches a user submitted path with parts defined by a map. Assigns and
|
|
* returns an array of variables on a successful match.
|
|
*
|
|
* @param string $path Path used to match against this routing map
|
|
* @param mixed $partial
|
|
*
|
|
* @return array|false An array of assigned values or a false on a mismatch
|
|
*/
|
|
public function match($path, $partial = false)
|
|
{
|
|
$return = parent::match($path, $partial);
|
|
|
|
// add the RESTful action mapping
|
|
if ($return) {
|
|
$request = $this->_front->getRequest();
|
|
$path = $request->getPathInfo();
|
|
$params = $request->getParams();
|
|
|
|
$path = trim($path, self::URI_DELIMITER);
|
|
|
|
if ($path != '') {
|
|
$path = explode(self::URI_DELIMITER, $path);
|
|
}
|
|
|
|
// Store path count for method mapping
|
|
$pathElementCount = count($path);
|
|
|
|
// Determine Action
|
|
$requestMethod = strtolower($request->getMethod());
|
|
if ($requestMethod != 'get') {
|
|
if ($request->getParam('_method')) {
|
|
$return[$this->_actionKey] = strtolower($request->getParam('_method'));
|
|
} elseif ($request->getHeader('X-HTTP-Method-Override')) {
|
|
$return[$this->_actionKey] = strtolower($request->getHeader('X-HTTP-Method-Override'));
|
|
} else {
|
|
$return[$this->_actionKey] = $requestMethod;
|
|
}
|
|
|
|
// Map PUT and POST to actual create/update actions
|
|
// based on parameter count (posting to resource or collection)
|
|
switch ($return[$this->_actionKey]) {
|
|
case 'post':
|
|
$return[$this->_actionKey] = 'post';
|
|
|
|
break;
|
|
|
|
case 'put':
|
|
$return[$this->_actionKey] = 'put';
|
|
|
|
break;
|
|
}
|
|
} else {
|
|
// if the last argument in the path is a numeric value, consider this request a GET of an item
|
|
$lastParam = array_pop($path);
|
|
if (is_numeric($lastParam)) {
|
|
$return[$this->_actionKey] = 'get';
|
|
} else {
|
|
$return[$this->_actionKey] = 'index';
|
|
}
|
|
}
|
|
}
|
|
|
|
return $return;
|
|
}
|
|
}
|