rector/config/set/cakephp34.php
Tomas Votruba 0993088cda
[SymfonyPhpConfig] Use Symplify package instead + simplify set validation (#4694)
* [SymfonyPhpConfig] Use Symplify package instead

* [SymfonyPhpConfig] Drop forgotten custom-jobs Rectors

* [CI] simplify set validation

* from inline functions to Static class

* cleanup

* decouple rector.php to allow static analysis and coding standards
2020-11-26 16:44:27 +00:00

265 lines
16 KiB
PHP

<?php
declare(strict_types=1);
use Rector\CakePHP\Rector\MethodCall\ModalToGetSetRector;
use Rector\CakePHP\ValueObject\ModalToGetSet;
use Rector\Generic\Rector\ClassMethod\ChangeMethodVisibilityRector;
use Rector\Generic\Rector\ClassMethod\NormalToFluentRector;
use Rector\Generic\ValueObject\ChangeMethodVisibility;
use Rector\Generic\ValueObject\NormalToFluent;
use Rector\Renaming\Rector\MethodCall\RenameMethodRector;
use Rector\Renaming\Rector\Name\RenameClassRector;
use Rector\Renaming\Rector\PropertyFetch\RenamePropertyRector;
use Rector\Renaming\ValueObject\MethodCallRename;
use Rector\Renaming\ValueObject\RenameProperty;
use Rector\Transform\Rector\Assign\PropertyToMethodRector;
use Rector\Transform\ValueObject\PropertyToMethod;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(PropertyToMethodRector::class)
->call('configure', [[
PropertyToMethodRector::PROPERTIES_TO_METHOD_CALLS => ValueObjectInliner::inline([
// source: https://book.cakephp.org/3.0/en/appendices/3-4-migration-guide.html
new PropertyToMethod('Cake\Network\Request', 'params', 'getAttribute', null, ['params']),
new PropertyToMethod('Cake\Network\Request', 'data', 'getData'),
new PropertyToMethod('Cake\Network\Request', 'query', 'getQueryParams'),
new PropertyToMethod('Cake\Network\Request', 'cookies', 'getCookie'),
new PropertyToMethod('Cake\Network\Request', 'base', 'getAttribute', null, ['base']),
new PropertyToMethod('Cake\Network\Request', 'webroot', 'getAttribute', null, ['webroot']),
new PropertyToMethod('Cake\Network\Request', 'here', 'getAttribute', null, ['here']),
]),
]]);
$services->set(RenamePropertyRector::class)
->call('configure', [[
RenamePropertyRector::RENAMED_PROPERTIES => ValueObjectInliner::inline([
new RenameProperty('Cake\Network\Request', '_session', 'session'),
]),
]]);
$services->set(ModalToGetSetRector::class)
->call('configure', [[
ModalToGetSetRector::UNPREFIXED_METHODS_TO_GET_SET => ValueObjectInliner::inline([
new ModalToGetSet('Cake\Core\InstanceConfigTrait', 'config', null, null, 2, 'array'),
new ModalToGetSet('Cake\Core\StaticConfigTrait', 'config', null, null, 2, 'array'),
new ModalToGetSet('Cake\Console\ConsoleOptionParser', 'command'),
new ModalToGetSet('Cake\Console\ConsoleOptionParser', 'description'),
new ModalToGetSet('Cake\Console\ConsoleOptionParser', 'epilog'),
new ModalToGetSet('Cake\Database\Connection', 'driver'),
new ModalToGetSet('Cake\Database\Connection', 'schemaCollection'),
new ModalToGetSet(
'Cake\Database\Connection',
'useSavePoints',
'isSavePointsEnabled',
'enableSavePoints'
),
new ModalToGetSet(
'Cake\Database\Driver',
'autoQuoting',
'isAutoQuotingEnabled',
'enableAutoQuoting'
),
new ModalToGetSet('Cake\Database\Expression\FunctionExpression', 'name'),
new ModalToGetSet(
'Cake\Database\Expression\QueryExpression',
'tieWith',
'getConjunction',
'setConjunction'
),
new ModalToGetSet('Cake\Database\Expression\ValuesExpression', 'columns'),
new ModalToGetSet('Cake\Database\Expression\ValuesExpression', 'values'),
new ModalToGetSet('Cake\Database\Expression\ValuesExpression', 'query'),
new ModalToGetSet('Cake\Database\Query', 'connection'),
new ModalToGetSet('Cake\Database\Query', 'selectTypeMap'),
new ModalToGetSet(
'Cake\Database\Query',
'bufferResults',
'isBufferedResultsEnabled',
'enableBufferedResults'
),
new ModalToGetSet('Cake\Database\Schema\CachedCollection', 'cacheMetadata'),
new ModalToGetSet('Cake\Database\Schema\TableSchema', 'options'),
new ModalToGetSet('Cake\Database\Schema\TableSchema', 'temporary', 'isTemporary', 'setTemporary'),
new ModalToGetSet('Cake\Database\TypeMap', 'defaults'),
new ModalToGetSet('Cake\Database\TypeMap', 'types'),
new ModalToGetSet('Cake\Database\TypeMapTrait', 'typeMap'),
new ModalToGetSet('Cake\Database\TypeMapTrait', 'defaultTypes'),
new ModalToGetSet('Cake\ORM\Association', 'name'),
new ModalToGetSet('Cake\ORM\Association', 'cascadeCallbacks'),
new ModalToGetSet('Cake\ORM\Association', 'source'),
new ModalToGetSet('Cake\ORM\Association', 'target'),
new ModalToGetSet('Cake\ORM\Association', 'conditions'),
new ModalToGetSet('Cake\ORM\Association', 'bindingKey'),
new ModalToGetSet('Cake\ORM\Association', 'foreignKey'),
new ModalToGetSet('Cake\ORM\Association', 'dependent'),
new ModalToGetSet('Cake\ORM\Association', 'joinType'),
new ModalToGetSet('Cake\ORM\Association', 'property'),
new ModalToGetSet('Cake\ORM\Association', 'strategy'),
new ModalToGetSet('Cake\ORM\Association', 'finder'),
new ModalToGetSet('Cake\ORM\Association\BelongsToMany', 'targetForeignKey'),
new ModalToGetSet('Cake\ORM\Association\BelongsToMany', 'saveStrategy'),
new ModalToGetSet('Cake\ORM\Association\BelongsToMany', 'conditions'),
new ModalToGetSet('Cake\ORM\Association\HasMany', 'saveStrategy'),
new ModalToGetSet('Cake\ORM\Association\HasMany', 'foreignKey'),
new ModalToGetSet('Cake\ORM\Association\HasMany', 'sort'),
new ModalToGetSet('Cake\ORM\Association\HasOne', 'foreignKey'),
new ModalToGetSet('Cake\ORM\EagerLoadable', 'config'),
new ModalToGetSet('Cake\ORM\EagerLoadable', 'canBeJoined', 'canBeJoined', 'setCanBeJoined'),
// note: will have to be called after setMatching() to keep the old behavior
// ref: https://github.com/cakephp/cakephp/blob/4feee5463641e05c068b4d1d31dc5ee882b4240f/src/ORM/EagerLoader.php#L330
new ModalToGetSet('Cake\ORM\EagerLoadable', 'matching'),
new ModalToGetSet(
'Cake\ORM\EagerLoadable',
'autoFields',
'isAutoFieldsEnabled',
'enableAutoFields'
),
new ModalToGetSet('Cake\ORM\Locator\TableLocator', 'config'),
new ModalToGetSet('Cake\ORM\Query', 'eagerLoader'),
new ModalToGetSet('Cake\ORM\Query', 'hydrate', 'isHydrationEnabled', 'enableHydration'),
new ModalToGetSet('Cake\ORM\Query', 'autoFields', 'isAutoFieldsEnabled', 'enableAutoFields'),
new ModalToGetSet('Cake\ORM\Table', 'table'),
new ModalToGetSet('Cake\ORM\Table', 'alias'),
new ModalToGetSet('Cake\ORM\Table', 'registryAlias'),
new ModalToGetSet('Cake\ORM\Table', 'connection'),
new ModalToGetSet('Cake\ORM\Table', 'schema'),
new ModalToGetSet('Cake\ORM\Table', 'primaryKey'),
new ModalToGetSet('Cake\ORM\Table', 'displayField'),
new ModalToGetSet('Cake\ORM\Table', 'entityClass'),
new ModalToGetSet('Cake\Mailer\Email', 'entityClass'),
new ModalToGetSet('Cake\Mailer\Email', 'from'),
new ModalToGetSet('Cake\Mailer\Email', 'sender'),
new ModalToGetSet('Cake\Mailer\Email', 'replyTo'),
new ModalToGetSet('Cake\Mailer\Email', 'readReceipt'),
new ModalToGetSet('Cake\Mailer\Email', 'returnPath'),
new ModalToGetSet('Cake\Mailer\Email', 'to'),
new ModalToGetSet('Cake\Mailer\Email', 'cc'),
new ModalToGetSet('Cake\Mailer\Email', 'bcc'),
new ModalToGetSet('Cake\Mailer\Email', 'charset'),
new ModalToGetSet('Cake\Mailer\Email', 'headerCharset'),
new ModalToGetSet('Cake\Mailer\Email', 'emailPattern'),
new ModalToGetSet('Cake\Mailer\Email', 'subject'),
// template: have to be changed manually, non A → B change + array case
new ModalToGetSet('Cake\Mailer\Email', 'viewRender', 'getViewRenderer', 'setViewRenderer'),
new ModalToGetSet('Cake\Mailer\Email', 'viewVars'),
new ModalToGetSet('Cake\Mailer\Email', 'theme'),
new ModalToGetSet('Cake\Mailer\Email', 'helpers'),
new ModalToGetSet('Cake\Mailer\Email', 'emailFormat'),
new ModalToGetSet('Cake\Mailer\Email', 'transport'),
new ModalToGetSet('Cake\Mailer\Email', 'messageId'),
new ModalToGetSet('Cake\Mailer\Email', 'domain'),
new ModalToGetSet('Cake\Mailer\Email', 'attachments'),
new ModalToGetSet('Cake\Mailer\Email', 'configTransport'),
new ModalToGetSet('Cake\Mailer\Email', 'profile'),
new ModalToGetSet('Cake\Validation\Validator', 'provider'),
new ModalToGetSet('Cake\View\StringTemplateTrait', 'templates'),
new ModalToGetSet('Cake\View\ViewBuilder', 'templatePath'),
new ModalToGetSet('Cake\View\ViewBuilder', 'layoutPath'),
new ModalToGetSet('Cake\View\ViewBuilder', 'plugin'),
new ModalToGetSet('Cake\View\ViewBuilder', 'helpers'),
new ModalToGetSet('Cake\View\ViewBuilder', 'theme'),
new ModalToGetSet('Cake\View\ViewBuilder', 'template'),
new ModalToGetSet('Cake\View\ViewBuilder', 'layout'),
new ModalToGetSet('Cake\View\ViewBuilder', 'options'),
new ModalToGetSet('Cake\View\ViewBuilder', 'name'),
new ModalToGetSet('Cake\View\ViewBuilder', 'className'),
new ModalToGetSet('Cake\View\ViewBuilder', 'autoLayout', 'isAutoLayoutEnabled', 'enableAutoLayout'),
]),
]]);
$services->set(RenameMethodRector::class)
->call('configure', [[
RenameMethodRector::METHOD_CALL_RENAMES => ValueObjectInliner::inline([
new MethodCallRename('Cake\Network\Request', 'param', 'getParam'),
new MethodCallRename('Cake\Network\Request', 'data', 'getData'),
new MethodCallRename('Cake\Network\Request', 'query', 'getQuery'),
new MethodCallRename('Cake\Network\Request', 'cookie', 'getCookie'),
new MethodCallRename('Cake\Network\Request', 'method', 'getMethod'),
new MethodCallRename('Cake\Network\Request', 'setInput', 'withBody'),
new MethodCallRename('Cake\Network\Response', 'location', 'withLocation'),
new MethodCallRename('Cake\Network\Response', 'disableCache', 'withDisabledCache'),
new MethodCallRename('Cake\Network\Response', 'type', 'withType'),
new MethodCallRename('Cake\Network\Response', 'charset', 'withCharset'),
new MethodCallRename('Cake\Network\Response', 'cache', 'withCache'),
new MethodCallRename('Cake\Network\Response', 'modified', 'withModified'),
new MethodCallRename('Cake\Network\Response', 'expires', 'withExpires'),
new MethodCallRename('Cake\Network\Response', 'sharable', 'withSharable'),
new MethodCallRename('Cake\Network\Response', 'maxAge', 'withMaxAge'),
new MethodCallRename('Cake\Network\Response', 'vary', 'withVary'),
new MethodCallRename('Cake\Network\Response', 'etag', 'withEtag'),
new MethodCallRename('Cake\Network\Response', 'compress', 'withCompression'),
new MethodCallRename('Cake\Network\Response', 'length', 'withLength'),
new MethodCallRename('Cake\Network\Response', 'mustRevalidate', 'withMustRevalidate'),
new MethodCallRename('Cake\Network\Response', 'notModified', 'withNotModified'),
new MethodCallRename('Cake\Network\Response', 'cookie', 'withCookie'),
new MethodCallRename('Cake\Network\Response', 'file', 'withFile'),
new MethodCallRename('Cake\Network\Response', 'download', 'withDownload'),
# psr-7
new MethodCallRename('Cake\Network\Response', 'header', 'getHeader'),
new MethodCallRename('Cake\Network\Response', 'body', 'withBody'),
new MethodCallRename('Cake\Network\Response', 'statusCode', 'getStatusCode'),
new MethodCallRename('Cake\Network\Response', 'protocol', 'getProtocolVersion'),
new MethodCallRename('Cake\Event\Event', 'name', 'getName'),
new MethodCallRename('Cake\Event\Event', 'subject', 'getSubject'),
new MethodCallRename('Cake\Event\Event', 'result', 'getResult'),
new MethodCallRename('Cake\Event\Event', 'data', 'getData'),
new MethodCallRename('Cake\View\Helper\FormHelper', 'input', 'control'),
new MethodCallRename('Cake\View\Helper\FormHelper', 'inputs', 'controls'),
new MethodCallRename('Cake\View\Helper\FormHelper', 'allInputs', 'allControls'),
new MethodCallRename('Cake\Mailer\Mailer', 'layout', 'setLayout'),
new MethodCallRename('Cake\Routing\Route\Route', 'parse', 'parseRequest'),
new MethodCallRename('Cake\Routing\Router', 'parse', 'parseRequest'),
]),
]]);
$services->set(ChangeMethodVisibilityRector::class)
->call('configure', [[
ChangeMethodVisibilityRector::METHOD_VISIBILITIES => ValueObjectInliner::inline([
new ChangeMethodVisibility('Cake\Mailer\MailerAwareTrait', 'getMailer', 'protected'),
new ChangeMethodVisibility('Cake\View\CellTrait', 'cell', 'protected'),
]),
]]);
$services->set(RenameClassRector::class)
->call('configure', [[
RenameClassRector::OLD_TO_NEW_CLASSES => [
'Cake\Database\Schema\Table' => 'Cake\Database\Schema\TableSchema',
],
]]);
$services->set(NormalToFluentRector::class)
->call('configure', [[
NormalToFluentRector::CALLS_TO_FLUENT => ValueObjectInliner::inline([
new NormalToFluent('Cake\Network\Response', [
'withLocation',
'withHeader',
'withDisabledCache',
'withType',
'withCharset',
'withCache',
'withModified',
'withExpires',
'withSharable',
'withMaxAge',
'withVary',
'withEtag',
'withCompression',
'withLength',
'withMustRevalidate',
'withNotModified',
'withCookie',
'withFile',
'withDownload',
]),
]),
]]);
};