Php Symfony 1.4为命令行任务设置默认应用程序
我正在寻找以下问题的解决方案: 在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
前端
和后端
。
每当我运行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