0

我有一个具有以下结构的小项目:

 -- bin
    -- init.php
 -- app
    -- all app directories here
 -- tests
 -- temp

我已经使用 composer 安装了 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 调用的自定义命令

4

1 回答 1

0

一个好的起点总是控制台组件的文档

IgorW 的composer-yaml可以作为单个文件控制台应用程序的示例。

此外,您可以通过查看作曲家的bin/composersrc/bootstrap.phpsrc/Console/Application.phpsrc/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(扩展Symfony\Component\Console\Application)...

...然后在您的应用程序中注册命令bin/init.php...

use <vendor>\Console\Application;
use <vendor>\Command\WhateverCommand;

$application = new Application();
$application->add(new WhateverCommand());

..终于 run()申请了。

$application->run();

如果您只想拥有一个单命令应用程序,请查看文档章节 -构建单命令应用程序

于 2013-10-04T12:37:51.443 回答