vilnius-technology/symfonys-facade

为 Laravel 框架提供的 Symfonys facade。

dev-master 2015-11-18 16:04 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:54:45 UTC


README

TravisBuild [![Scrutinizer 代码质量] (https://scrutinizer-ci.com/g/VilniusTechnology/symfony-facade/badges/quality-score.png?b=master)] (https://scrutinizer-ci.com/g/VilniusTechnology/symfony-facade/?branch=master) CodeCoverage

为 Laravel5 提供的 Symfonys facade

此包允许您在 Laravel5 应用程序中使用 Symfony2 特定的包。只需将您基于 Symfony 的包添加到 composer.json,安装它,配置它并享受它 ;)

它支持以下功能

  • 从标准 symfony 配置文件加载的 Symfony 依赖注入容器。

  • 路由迁移。配置在 routes.yml 文件中的路由可以从 Laravel 访问。

  • 可以通过 artisan 命令或管理员表单执行 Symfony 命令。

由于此包仍在早期测试版,并非所有功能和兼容性都已测试和开发。

安装和配置

将其添加到 composer

$ composer require vilnius-technology/symfonys-facade dev-master

注册包

将以下内容添加到您的 config\app.php 文件的 providers 键的底部

  /*
  * Custom
  */
 'VilniusTechnology\SymfonysFacade\SymfonysFacadeServiceProvider',

在命名空间 VilniusTechnology 中创建文件 SymfonyBundles.php,路径为 $LARVEL_PROJECT_ROOT/packages/VilniusTechnology/,内容如下

    <?php
    
    namespace VilniusTechnology;
    
    class SymfonyBundles
    {
        public static function getBundles()
        {
            return [
            ];
        }
    }

这里是注册您的 Symfony 包的地方。熟悉吗? :)

将包加载类命名空间添加到 composer.json

 "psr-4": {
             "App\\": "app/",
             "VilniusTechnology\\": "packages/VilniusTechnology/"
         }

您可以将其更改为您自己的,但如果您遵循教程,这是默认注册的包加载器。更多详细信息请参阅配置部分。

现在运行 composer dump-autoload

vendor/vilnius-technology/symfony-facade/Tests/symfony/config 目录的内容复制到 storage/app/symfony/config。您可以通过运行以下命令来完成此操作:mkdir storage/app/symfony/config ; cp -a vendor/vilnius-technology/symfonys-facade/Tests/symfony/config storage/app/symfony

在控制台运行命令:php artisan symfony:command 'debug:container'

如果您得到了 symfony 服务的列表,恭喜您。现在您可以转到 Laravel 5.1 的 symfonys 包安装教程。

遵循此示例教程 教程 以了解如何精确安装具有默认配置的 Symfony2 包

如您所注意到的,您可以通过将它们传递给 php artisan symfony:command '$SYMFONY2_COMMAND' 来使用 symfony 命令

可定制配置

首先,您可以在 app.php 文件中输入配置参数。

您可以通过向 app.php 文件添加以下行来完成此操作

    'symfonysfacade_app_dir' => 'storage/symfony', #relative to laravel app dir
    'symfonysfacade_log_dir' => 'storage/symfony/logs', #relative to laravel app dir
    'symfonysfacade_bundles' => '\VilniusTechnology\SymfonyBundles',

如果您不这样做,则默认设置在 $LARVEL_PROJECT_ROOT/storage/app/symfony/env 中,以您的项目部署环境结尾。

设置 symfonysfacade_app_dir - 指定 symfony 工作目录路径(其中存储缓存和 config.yml 文件)。缓存和日志目录也将存储在此。

设置 symfonysfacade_bundles - 指定注册 Symfonys 包的命名空间。在本教程中,请使用 \VilniusTechnology\SymfonyBundles,即按照本教程操作。换句话说,应使用

 "psr-4": {
            [ ... ]
            "VilniusTechnology\\": "packages/VilniusTechnology/",
            [ ... ]
         }

的命名空间。

在此文件中,您将注册您的 Symfony 包。

symfonysfacade_app_dirstorage/symfony)指定的路径下创建目录 config。在此目录中,您应该创建或复制常规的 symfonys 配置文件(config.yml、parameters.yml 和 security.yml)。

许可证

此包采用 MIT 许可证。

其他一些内容

可能有人会自然地问,为什么在 Laravel 中使用 Symfony 的包。答案是:因为我想要这么做... :D

是的,对于库,而不是包,没有必要使用这样的东西。但在万维网上有很多好的包,这些包正在使用实际的 Symfony 框架。

所以,既然我想在 Laravel5 项目中使用特定的 Symfony 包,而我没有看到可以轻易移植的包。最终,我们得到了这个包。

此外,如果需要快速原型设计,这个接口也可能很有用。只需包含它,注册它,您就在 Laravel5 中拥有了 Symfony ;)