sintonia/legacy/application/modules/rest/controllers/RouteController.php
renovate[bot] 9192aaa2bb
fix(deps): update dependency friendsofphp/php-cs-fixer to <3.53.1 (#2972)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](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` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/friendsofphp%2fphp-cs-fixer/3.53.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/friendsofphp%2fphp-cs-fixer/3.53.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/friendsofphp%2fphp-cs-fixer/3.51.0/3.53.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/friendsofphp%2fphp-cs-fixer/3.51.0/3.53.0?slim=true)](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
([#&#8203;7905](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7905))
- CI: allow for self-approvals for maintainers
([#&#8203;7921](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7921))
- CI: Improve Infection setup
([#&#8203;7913](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7913))
- CI: no need to trigger enable auto-merge when self-approve
([#&#8203;7929](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7929))
- DX: reduce `array_filter` function usages
([#&#8203;7923](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7923))
- DX: remove duplicated character from `trim` call
([#&#8203;7930](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7930))
- DX: update actions producing warnings
([#&#8203;7925](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7925))
- DX: update actions producing warnings
([#&#8203;7928](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7928))
- DX: update `phpstan/phpstan-strict-rules`
([#&#8203;7924](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7924))
- feat: Add trailing comma in multiline to PER-CS 2.0
([#&#8203;7916](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7916))
- feat: Introduce `AttributeAnalysis`
([#&#8203;7909](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7909))
- feat: `@PHP84Migration` introduction
([#&#8203;7774](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7774))
- fix: Constant invocation detected in typed constants
([#&#8203;7892](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7892))
- fix: `PhpdocArrayTypeFixer` - JIT stack limit exhausted
([#&#8203;7895](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7895))
- test: Introduce Infection for mutation tests
([#&#8203;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
([#&#8203;7899](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7899))
- fix: `PhpCsFixer\Tokenizer\Tokens::setSize` return type
([#&#8203;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
([#&#8203;7894](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7894))
- chore: fix PHPStan 1.10.60 issues
([#&#8203;7873](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7873))
- chore: list over array in more places
([#&#8203;7876](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7876))
- chore: replace template with variable in Preg class
([#&#8203;7882](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7882))
- chore: update PHPStan
([#&#8203;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`
([#&#8203;7872](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7872))
- docs: Fix typo
([#&#8203;7889](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7889))
- feat: Add support for callable template in PHPDoc parser
([#&#8203;7084](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7084))
- feat: Add `array_indentation` to `PER-CS2.0` ruleset
([#&#8203;7881](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7881))
- feat: `@Symfony:risky` - add `no_unreachable_default_argument_value`
([#&#8203;7863](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7863))
- feat: `PhpCsFixer` ruleset - enable
`nullable_type_declaration_for_default_null_value`
([#&#8203;7870](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7870))
- fix: Constant invocation detected in DNF types
([#&#8203;7869](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7869))
- fix: Correctly indent multiline constants and properties
([#&#8203;7875](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7875))
- fix: `no_useless_concat_operator` - do not break variable
([#&#8203;7827](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7827))
- fix: `TokensAnalyzer` - handle unary operator in arrow functions
([#&#8203;7862](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7862))
- fix: `TypeExpression` - fix "JIT stack limit exhausted" error
([#&#8203;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>
2024-04-13 14:36:31 +02:00

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;
}
}