linkorb/autotune

调整你的自动加载器

v1.2.0 2016-02-01 12:45 UTC

This package is auto-updated.

Last update: 2024-08-29 03:26:18 UTC


README

为什么使用AutoTune for Composer?

AutoTune非常适合库开发者。

通常你同时在工作库和调用应用程序上。

在AutoTune之前,你可以做两件事来测试你的库

  1. 提交库的新版本,所有更改,等待Packagist重新索引,然后在调用应用程序中更新composer.lock并测试。
  2. 在你的调用应用程序的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.phpbin/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

顺便说一句,我们在招聘!