创建一个只使用 Symfony2 的控制台组件的项目

Posted

技术标签:

【中文标题】创建一个只使用 Symfony2 的控制台组件的项目【英文标题】:Creating a project that only uses Symfony2's Console Component 【发布时间】:2012-02-16 10:44:25 【问题描述】:

如何创建一个只使用 Symfony2 控制台组件的新项目?

我还没有弄清楚我需要做的最基本的设置,只使用控制台组件(以及任何其他必须具备的依赖项)。

我应该将组件文件放在哪里,我需要在自己的代码文件中包含什么?

在线教程严重缺乏关于如何将各种组件用作独立组件而不是 Symfony 标准分发的一部分的详细逐步说明。

找到解决方案:

我创建了一份详细的分步指南,介绍如何在您的项目中使用 Symfony 2 Console Component。我希望这有助于填补文档空白。

【问题讨论】:

感谢您的分步指南,它非常有用! 【参考方案1】:

最简单的方法之一是使用Composer。您可以在项目的根目录中设置composer.json,然后从命令行调用composer.phar install

控制台的示例 composer.json:


    "require": 
        "symfony/console": "2.*"
    

之后,您可以只包括作曲家自动加载,您应该一切顺利。

// in your bootstrap or what have you
require 'path/to/project/root/vendor/.composer/autoload.php';

尽管 jsut 已设置好一切并准备好使用...您仍然需要弄清楚如何以一种在您的项目中有意义的方式集成它。您实际上可能会查看 Composer 本身或 Doctrine 2 以了解如何做到这一点,因为它们都将其用作控制台界面。

还只是一些验证...您不是唯一一个因缺少有关在完整堆栈之外使用独立组件的文档而烦恼的人。 :-)

【讨论】:

Composer 会很好地完成这项工作。我建议阅读这个组件的专用文档(很新,你可能还没有看过):symfony.com/doc/current/components/console.html。您可以选择 ClassLoader 组件或 composer autoload.php 来自动加载文件。 在几乎放弃 composer 因为运行php composer.phar install 没有做任何事情之后,我终于尝试在没有 php 的情况下运行它(composer.phar install),它就像一个魅力。太糟糕了,作曲家网站上的文档坚持打电话给php composer.phar 我仍然希望我知道如何使用 ClassLoader 来完成它,并且没有像 @Nanocom 建议的作曲家,但我无法正确配置它。有什么建议?你知道我在哪里可以看到一个只有 ClassLoader 的示例项目,也许还有另一个模块......没有整个框架的所有内容。 要使用 ClassLoader 组件:在您的前端控制器中,需要 'path/to/UniversalClassLoader.php';然后创建一个类似于这个的 autoload.php 文件:github.com/symfony/symfony-standard/blob/master/app/…(来自标准版),也将它包含在您的前端控制器中。你就完成了。 并在此处阅读专用文档:symfony.com/doc/current/components/class_loader.html

以上是关于创建一个只使用 Symfony2 的控制台组件的项目的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2 - 将安全访问控制设置为只允许匿名身份验证

Symfony2 独立表单组件 v2.3 - 设置表单

如何创建将在 Symfony2 中过期/销毁会话的命令控制台?

如何对 Symfony2 控制器进行单元测试?

Symfony2 - 重载注册表单导致 CSRF 错误(添加 github repo)

Symfony2 - 基于 CSS 的 .html 控制器响应