linkorb / autotune
调整你的自动加载器
Requires (Dev)
- phpunit/phpunit: ~5.0
- psr/log: ^1.0
This package is auto-updated.
Last update: 2024-08-29 03:26:18 UTC
README
为什么使用AutoTune for Composer?
AutoTune非常适合库开发者。
通常你同时在工作库和调用应用程序上。
在AutoTune之前,你可以做两件事来测试你的库
- 提交库的新版本,所有更改,等待Packagist重新索引,然后在调用应用程序中更新composer.lock并测试。
- 在你的调用应用程序的composer.json中添加一个"repository"(不要忘记在提交时删除,并在之后放回)
两者都很繁琐。这就是AutoTune介入的地方!
autotune是如何工作的?
AutoTune期望在调用应用程序的路径中找到autotune.json
文件,紧挨着composer.json。以下是一个例子
{ "autoload": { "psr-4": { "Monolog\\": "~/git/monolog/monolog/src/Monolog" } } }
如果找到此文件,它将读取内容,并覆盖任何psr-0或psr-4命名空间,使用在autotune.json文件中定义的本地版本。
您可以将autotune.json添加到.gitignore
文件中,这样您可以保持代码目录干净并与远程存储库同步。
使您的应用程序准备好AutoTune
使您的应用程序准备好AutoTune需要三个简单的步骤
1. 在您的composer.json文件中包含来自Packagist的linkorb/autotune
require-dev": { "linkorb/autotune": "~1.0" }
然后运行composer update
2. 在您的应用程序中初始化AutoTune
在您的应用程序的某个地方,您包含了vendor/autoload.php
。有时它在web/index.php
或bin/console
中。找到这个位置,并添加以下这些行
$loader = require_once __DIR__.'/../vendor/autoload.php'; if (class_exists('AutoTune\Tuner')) { \AutoTune\Tuner::init($loader); }
将init
调用包裹在class_exists
块中确保只有在AutoTune已安装在您的(开发)环境中时才使用autotune(从composer.json的require-dev块安装)。在生产环境中,如果您使用--no-dev
安装依赖项,则不会调用它
3. 将一个autotune.json
文件添加到项目根目录。
示例内容
{ "autoload": { "psr-4": { "Monolog\\": "~/git/monolog/monolog/src/Monolog" } } }
理想情况下,您会将autotune.json
添加到.gitignore
文件中。
完成
当您的应用程序进行类似以下操作时,它将加载库的“本地”版本,而不是在您的vendor/
目录中的版本。
$logger = new \Monolog\Logger('example');
因此,从现在开始,您的主应用程序无需进行任何更改。所有内容都由您本地的autotune.json
文件管理。
许可证
MIT(见LICENSE.md)
由LinkORB工程团队提供
查看我们的其他项目linkorb.com/engineering。
顺便说一句,我们在招聘!