kaspiman/rector-longrunning-rules
Composer 安装命令:
composer require kaspiman/rector-longrunning-rules
包简介
Custom Rector rules for long-running PHP apps and more!
README 文档
README
Правила для анализатора Rector для поиска и устранения проблем в долгоживущих приложениях.
Внедрите Rector в пайплайн вашего проекта и постоянно контролируйте качество кода.
Используйте всё или то, что нужно.
Репозиторий подготовлен специально для конференции Podlodka PHP Crew (сезон 5) в рамках доклада "PHP будет долго жить. Переезжаем на Roadrunner" (будет ссылка на запись), презентация доступна по ссылке.
Использование
Установите Rector в проект:
composer require rector/rector --dev
Установите правила из этого репозитория:
composer require kaspiman/rector-longrunning-rules:^1.0 --dev
Добавьте и настройте правила в свой конфиг rector.php:
<?php use Rector\Renaming\Rector\ConstFetch\RenameConstantRector; return static function (RectorConfig $config): void { // общие настройки, к примеру директория с проектом... $config->paths([ 'src', ]); // Встроенное правило в Rector, запрещаем константу PHP_SAPI, меняя на несуществующую $config->ruleWithConfiguration(RenameConstantRector::class, [ 'PHP_SAPI' => 'FORBID', ]); // Правила без конфигурации $config->rules([ IncludeRequireRector::class, ExitAndDieRector::class, EchoForbidRector::class, ]); // Правила с возможностью настроить поведение // Список глобальных переменных находится в файле, можно указать свой набор $config->ruleWithConfiguration(GlobalVarsForbidRector::class, [ 'vars' => include 'src/Rector/Resources/global-vars.php' ]); // Список запрещённых находится в файле, можно указать свой набор или перезаписать список отдельными функциями $config->ruleWithConfiguration(ForbiddenFunctionsRector::class, [ 'functions' => include 'src/Rector/Resources/forbidden-functions.php', ]); // Поиск скрытых состояний $config->ruleWithConfiguration(ResetStateCheckerRector::class, [ 'className' => ResetInterface::class, // Имя интерфейса для сброса, например у Symfony это Symfony\Contracts\Service\ResetInterface (https://github.com/symfony/contracts/blob/main/Service/ResetInterface.php) 'methodName' => 'reset', // имя метод сброса у этого интерфейса 'ignoreClassNames' => [], // Игнорирование определённых имён классов 'ignoreClassPrefixes' => [ // Игнорирование определённых префиксов, например DTO и прочих объектов-переносчиков состояния 'Dto', 'Mock', 'Stub', 'Item', 'Builder', 'Collection', 'Filter', 'Criteria', 'Context', 'Container', 'Object', 'Aggregate', 'Request', 'Response', 'Payload', 'Event', 'Exception', 'Result', 'Message', 'Config', 'Param', 'Params', 'Data', ], 'ignoreAttributes' => [ // Игнорирование определённых аттрибутов, например сущностей Doctrine 'Doctrine\ORM\Mapping\Entity', ], ]); }
Запустите Rector в пробном режиме:
vendor/bin/rector --dry-run
Проверьте предложенные изменения, по необходимости проигнорируйте некоторые из них с помощью аннотации:
public function work(): { /** * @rector-suppress ForbiddenFunctionsRector */ ini_set('memory_limit', '42G'); }
Возможно игнорировать целый класс или его отдельные поля для правила ResetStateCheckerRector:
/** * @rector-suppress ResetStateCheckerRector */ class SomeBadService { /** * @rector-suppress ResetStateCheckerRector */ private array $cache = []; }
Запустите Rector в рабочем режиме и примените изменения в коду, проверьте корректность:
vendor/bin/rector
Готово.
kaspiman/rector-longrunning-rules 适用场景与选型建议
kaspiman/rector-longrunning-rules 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 14 次下载、GitHub Stars 达 13, 最近一次更新时间为 2024 年 09 月 29 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「state」 「rule」 「reset」 「rector」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 kaspiman/rector-longrunning-rules 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 kaspiman/rector-longrunning-rules 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 kaspiman/rector-longrunning-rules 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Doctrine implementation of the MetaborStd (Statemachine) for PHP 8.2+
ContentElement for Contao to generate hr. Simply choose element type "divider" and save.
Magento 2 Discount Amount Limiter
A simple state dropdown field for SilverStripe forms
Business rules engine tools.
A state Machine library for business processes
统计信息
- 总下载量: 14
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 13
- 点击次数: 10
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-09-29