a9f / lifter
使用Rector和其他工具自动项目升级的工具
dev-main
2024-08-30 08:11 UTC
Requires
- php: ^8.2
- a9f/fractor: ^0.3
- rector/rector: ^1.0
- symfony/config: ^6.4 || ^7.0
- symfony/console: ^6.4 || ^7.0
- symfony/dependency-injection: ^6.4 || ^7.0
- symfony/process: ^6.4 || ^7.0
- symfony/yaml: ^6.4 || ^7.0
- thecodingmachine/safe: ^2.5
Requires (Dev)
- ergebnis/composer-normalize: ^2.42
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^11.0
- symplify/easy-coding-standard: ^12.1
- thecodingmachine/phpstan-safe-rule: ^1.2
This package is auto-updated.
Last update: 2024-08-30 08:12:15 UTC
README
Lifter是一个强大的工具,旨在自动化PHP项目的软件更新。利用Composer和Rector等工具的能力,Lifter简化了更新依赖项和迁移代码到新版本的流程。
无论是管理多个项目的开发者还是在大型代码库中工作的团队成员,Lifter都能简化更新过程,节省时间并降低出错的风险。
功能
- 自动依赖项更新:Lifter自动更新您composer.json文件中指定的依赖项,确保您的项目始终使用最新版本。
- 使用Rector进行代码迁移:与Rector集成,Lifter有助于平滑地迁移代码,以便在更新库或框架的新版本时。Rector自动进行代码重构,使采用最佳实践和利用新功能变得更加容易。
- 可定制配置:Lifter提供灵活的配置选项,允许您根据项目的特定需求定制更新过程。自定义要更新的依赖项,配置Rector规则等。
入门指南
按照以下步骤在您的PHP项目中开始使用Lifter
-
安装:通过运行以下命令使用Composer安装Lifter
$ composer require a9f/lifter
-
配置:在项目的根目录中创建一个lifter.php配置文件。以下是一个基本示例
return static function (\a9f\Lifter\Configuration\LifterConfig $config) { $config->withWorkingDirectory(__DIR__) ->withRectorBinary('vendor/bin/rector') ->withRectorConfigFile(__DIR__ . '/rector.php'); $config->withSteps([ new \a9f\Lifter\Upgrade\Step\ShellStep( 'Add Hello World', <<<SCRIPT DATE=$(date +%s) echo "Hello World" | tee \$DATE.txt git add \$DATE.txt SCRIPT ), new \a9f\Lifter\Upgrade\Step\RectorStep( 'Apply PHP 8.3 set list', static function (\Rector\Config\RectorConfig $rectorConfig) { $rectorConfig->sets([ \Rector\Set\ValueObject\LevelSetList::UP_TO_PHP_83, ]); } ) ]); };
-
使用:从项目的命令行运行Lifter
$ vendor/bin/lifter run -f lifter.php
此命令将按照文件中的顺序应用您在
lifter.php
中指定的步骤。每个步骤将导致一个单独的Git提交。
贡献
如果您遇到任何问题或有改进建议,我们欢迎社区贡献。以下是如何贡献的方法
- 分支仓库。
- 做出您的更改。
- 提交带有更改描述和为什么需要的pull请求。
支持
有关Lifter的任何问题或支持,请在本GitHub上创建一个问题。我们将尽力迅速协助您。
许可证
Lifter采用MIT许可证。
致谢
Lifter不可能没有Composer和Rector团队的出色工作。我们对他们对PHP生态系统的贡献表示感谢。
感谢您使用Lifter简化软件更新过程!我们希望它有助于使您的开发工作流程更高效、更愉快。如果您有任何反馈或建议,我们非常乐意听取您的意见。
编码愉快!🚀