Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony 1.4为命令行任务设置默认应用程序_Php_Symfony1_Symfony 1.4_Command Line Interface - Fatal编程技术网

Php Symfony 1.4为命令行任务设置默认应用程序

Php Symfony 1.4为命令行任务设置默认应用程序,php,symfony1,symfony-1.4,command-line-interface,Php,Symfony1,Symfony 1.4,Command Line Interface,我正在寻找以下问题的解决方案: 在symfony 1.4项目中,我有两个应用程序:前端和后端。 每当我运行symfonycli任务时,比如php symfony-doctor:build--all-class,symfony都会使用 默认情况下,后端应用程序 如何使symfony cli使用frontend作为默认应用程序 我知道我可以运行与php-symfony--application=frontend-doctor:build--all-classes相同的命令,但必须有一种方法使它使用f

我正在寻找以下问题的解决方案:

在symfony 1.4项目中,我有两个应用程序:
前端
后端
。 每当我运行symfonycli任务时,比如
php symfony-doctor:build--all-class
,symfony都会使用 默认情况下,
后端
应用程序

如何使symfony cli使用
frontend
作为默认应用程序

我知道我可以运行与
php-symfony--application=frontend-doctor:build--all-classes
相同的命令,但必须有一种方法使它使用
frontend
应用程序作为默认值

编辑:

lib/vendor/symfony/lib/task/sfBaseTask.class.php

/**
 * Returns the first application in apps.
 *
 * @return string The Application name
 */
protected function getFirstApplication()
{
    if (count($dirs = sfFinder::type('dir')->maxdepth(0)->follow_link()->relative()->in(sfConfig::get('sf_apps_dir'))))
    {
        return $dirs[0];
    }

   return null;
}
看起来顺序是按字母顺序排列的


谢谢。

在没有特定应用程序的情况下运行
缓存:清除
任务时,Symfony会清除所有应用程序的缓存。这一点可以从中观察到。对于提供默认应用程序的任务(您自己创建的),您只需将其更改为您想要的任何内容。

当您在没有特定应用程序的情况下运行
缓存:清除
任务时,Symfony会清除所有应用程序的缓存。这一点可以从中观察到。对于提供默认应用程序的任务(您自己创建的),您可以简单地将其更改为您想要的任何内容。

签入任务的
配置
方法,您应该看到如下内容:

newsfcommandoption('application',null,sfCommandOption::参数_必需,'application name','backend'),
后端
替换为
前端

编辑:

根据您的发现(关于
getFirstApplication
),最好的解决方案是创建自己的任务(在
/lib/task/myDoctrineBuildTask.class.php
)来扩展当前的条令任务。然后在
configure
方法中定义
frontend
应用程序:

类myDoctrineBuildTask扩展了sfDoctrineBuildTask
{
/**
*@see-sfTask
*/
受保护的函数配置()
{
$this->addOptions(数组)(
新的sfCommandOption('application',null,sfCommandOption::PARAMETER_OPTIONAL,'application name','frontend'),
新的sfCommandOption('env',null,sfCommandOption::参数_必需,'environment','dev'),
新的sfCommandOption('no-confirmation',null,sfCommandOption::PARAMETER_NONE,'是否强制删除数据库'),
新的sfCommandOption('all',null,sfCommandOption::PARAMETER_NONE,'构建所有内容并重置数据库'),
新的sfCommandOption('all-classes',null,sfCommandOption::PARAMETER_NONE,'Build all classes'),
新的sfCommandOption('model',null,sfCommandOption::PARAMETER_NONE,'Build model classes'),
新的sfCommandOption('forms',null,sfCommandOption::PARAMETER_NONE,'Build form classes'),
新的sfCommandOption('filters',null,sfCommandOption::PARAMETER_NONE,'Build filter classes'),
新的sfCommandOption('sql',null,sfCommandOption::PARAMETER_NONE,'Build sql'),
新的sfCommandOption('db',null,sfCommandOption::PARAMETER_NONE',Drop,create,and insert SQL或migrate the database'),
新的sfCommandOption('and-migrate',null,sfCommandOption::PARAMETER_NONE,'migrate the database'),
新的sfCommandOption('and-load',null,sfCommandOption::参数_可选| sfCommandOption::IS_数组,'load fixture data'),
新的sfCommandOption('and-append',null,sfCommandOption::参数_可选| sfCommandOption::IS_数组,'append fixture data'),
));
$this->namespace='mydoctor';
$this->name='build';
$this->briefDescription='根据模式生成代码';
$this->detailedDescription='';//可以随意重新添加所有文档
}
}

然后,使用以下方法启动构建:
php-symfony-mydoctor:build--all-classes

签入任务的
configure
方法,您应该会看到如下内容:

newsfcommandoption('application',null,sfCommandOption::参数_必需,'application name','backend'),
后端
替换为
前端

编辑:

根据您的发现(关于
getFirstApplication
),最好的解决方案是创建自己的任务(在
/lib/task/myDoctrineBuildTask.class.php
)来扩展当前的条令任务。然后在
configure
方法中定义
frontend
应用程序:

类myDoctrineBuildTask扩展了sfDoctrineBuildTask
{
/**
*@see-sfTask
*/
受保护的函数配置()
{
$this->addOptions(数组)(
新的sfCommandOption('application',null,sfCommandOption::PARAMETER_OPTIONAL,'application name','frontend'),
新的sfCommandOption('env',null,sfCommandOption::参数_必需,'environment','dev'),
新的sfCommandOption('no-confirmation',null,sfCommandOption::PARAMETER_NONE,'是否强制删除数据库'),
新的sfCommandOption('all',null,sfCommandOption::PARAMETER_NONE,'构建所有内容并重置数据库'),
新的sfCommandOption('all-classes',null,sfCommandOption::PARAMETER_NONE,'Build all classes'),
新的sfCommandOption('model',null,sfCommandOption::PARAMETER_NONE,'Build model classes'),
新的sfCommandOption('forms',null,sfCommandOption::PARAMETER_NONE,'Build form classes'),
新的sfCommandOption('filters',null,sfCommandOption::PARAMETER_NONE,'Build filter classes'),
新的sfCommandOption('sql',null,sfCommandOption::PARAMETER_NONE,'Build sql'),
新的sfCommandOption('db',null,sfCommandOption::PARAMETER_NONE',Drop,create,and insert SQL或migrate the database'),
新的sfCommandOption('and-migrate',null,sfCommandOption::PARAMETER_NONE,'migrate the database'),
新的sfCommandOption('and-loa