carlosv2/allegro

Symfony扩展自动加载器

1.0.0 2016-11-27 20:47 UTC

This package is not auto-updated.

Last update: 2024-09-15 01:20:03 UTC


README

Symfony扩展自动加载器。

License Build Status SensioLabsInsight

为什么

你为你的Symfony项目需要了多少次Composer包,然后你还需要将它添加到AppKernel中?

对于某些项目,没有直接的关联,但对于大多数项目来说,需要它们的原因只是为了将扩展添加到Symfony项目中。

对于这些情况,本项目试图通过允许自动加载来最小化添加第三方扩展所需的工作。

使用方法

使用Allegro就像将它注入到你的项目的AppKernel文件中一样简单。例如

use carlosV2\Allegro\Allegro;
use Symfony\Component\HttpKernel\Kernel;

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = [
            // Any bundle that you want to have manually added
        ];
        Allegro::appendTo($bundles);

        if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
            // Any bundle that you want to have manually added for tests
            Allegro::appendDevsTo($bundles);
        }

        return $bundles;
    }

    ...
}

就这样。下次读取AppKernel时,Allegro将自动附加任何额外的扩展。

工作原理

Allegro通过检查特定配置的Composer包来工作。如果找到,它将读取并处理它,使得使扩展与Allegro兼容就像在其composer文件中提供正确的配置一样简单。

这是Allegro在所需包的每个composer.json文件中寻找的配置

{
    "extra": {
        "symfony": {
            "bundles": ["Namespace\\BundleClass"]
        }
    }
}

当然,你可以在数组中设置所需的所有扩展类。此外,根包(这意味着使用Allegro的Symfony项目的composer.json文件)也可以有这个配置以自动加载扩展。

Allegro假设require键内的包用于生产,而require-dev键内的包仅用于开发。

安装

为了使用Allegro,你首先需要通过composer安装它

$ composer require carlosv2/allegro