rector/config/set/cakephp34.php
Tomas Votruba 9a376d98e5
[Arguments] New rule set from former generics (#5637)
* [Transform] Move SingleToManyMethodRector

* [Transform] Move WrapReturnRector here

* [DependencyInjectoin] Move AddMethodParentCallRecto here

* [Arguments] Create new package from old generics only around arguments

* composer docs uild
2021-02-21 00:21:19 +01:00

266 lines
16 KiB
PHP

<?php
declare(strict_types=1);
use Rector\CakePHP\Rector\MethodCall\ModalToGetSetRector;
use Rector\CakePHP\ValueObject\ModalToGetSet;
use Rector\Core\ValueObject\Visibility;
use Rector\Defluent\Rector\ClassMethod\NormalToFluentRector;
use Rector\Defluent\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\PropertyFetchToMethodCallRector;
use Rector\Transform\ValueObject\PropertyFetchToMethodCall;
use Rector\Visibility\Rector\ClassMethod\ChangeMethodVisibilityRector;
use Rector\Visibility\ValueObject\ChangeMethodVisibility;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(PropertyFetchToMethodCallRector::class)
->call('configure', [[
PropertyFetchToMethodCallRector::PROPERTIES_TO_METHOD_CALLS => ValueObjectInliner::inline([
// source: https://book.cakephp.org/3.0/en/appendices/3-4-migration-guide.html
new PropertyFetchToMethodCall('Cake\Network\Request', 'params', 'getAttribute', null, ['params']),
new PropertyFetchToMethodCall('Cake\Network\Request', 'data', 'getData'),
new PropertyFetchToMethodCall('Cake\Network\Request', 'query', 'getQueryParams'),
new PropertyFetchToMethodCall('Cake\Network\Request', 'cookies', 'getCookie'),
new PropertyFetchToMethodCall('Cake\Network\Request', 'base', 'getAttribute', null, ['base']),
new PropertyFetchToMethodCall('Cake\Network\Request', 'webroot', 'getAttribute', null, ['webroot']),
new PropertyFetchToMethodCall('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', Visibility::PROTECTED),
new ChangeMethodVisibility('Cake\View\CellTrait', 'cell', Visibility::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',
]),
]),
]]);
};