我有一个结构如下的小项目:
-- bin
-- init.php
-- app
-- all app directories here
-- tests
-- temp
我已经使用作曲家安装了symfony2控制台捆绑包:
{
"require": {
"symfony/console": "2.3.*"
}
}
它将捆绑包安装到供应商目录中。 因此,我最终得到以下结构:
-- bin
-- init.php
-- app
-- all app directories here
-- tests
-- temp
-- vendor
-- composer
-- symfony
-- autoload.php
我如何构建东西,以便在bin/init中.php它使用symfony控制台。 本质上,我想创建一个可以从 bin/init 调用的自定义命令.php
一个好的起点始终是控制台组件的文档。
IgorW的composer-yaml可以作为单个文件控制台应用程序的示例。
此外,您可以通过查看作曲家的bin/composer,src/bootstrap.php,src/Console/Application.php以及即src/Command/AboutCommand.php来找到灵感。
只需将作曲家的bin/composer
和src/bootstrap.php
结合到您的bin/init.php
中......
。然后将 PSR-0 自动加载/基本命名空间设置为composer.json
中的应用程序文件夹(作曲家的 composer.json)...
....创建app/<vendor>/Command/WhateverCommand.php
...
创建app/<vendor>/Console/Application.php
(扩展SymfonyComponentConsoleApplication
)...
。然后在您的应用程序中注册该命令bin/init.php
...
use <vendor>ConsoleApplication;
use <vendor>CommandWhateverCommand;
$application = new Application();
$application->add(new WhateverCommand());
.. 终于run()
了应用程序。
$application->run();
如果您只想使用单命令应用程序,请查看文档章节 - 构建单命令应用程序。