2010-04-04 43 views
3

我想要呈现的部分在Symfony的任务,有没有运气。我在1.1中发现了一些文档,只是打电话给get_partial(),但显然这在1.4中不再适用。我试着用sfLoader::getHelpers('Partial');手动加载助手,但我得到“Class sfLoader not found”。任何帮助将不胜感激。渲染从任务部分中的Symfony 1.4

仅供参考什么,我试图做的是产生从我的全局头部分在所有我的布局纳入第三方论坛,我整合使用所谓的“header.html中”一个HTML文件(简单机械/ SMF)。

回答

6

第一负载:

sfContext::getInstance()->getConfiguration()->loadHelpers('Partial'); 

然后只需拨打电话:

get_partial() 
+1

对SF不起作用1.4 – scube 2012-07-31 15:00:22

+0

@scube这里只是测试了1.4.4工作正常。 – 2012-08-16 12:59:44

1

sfLoader在symfony 1.2中已被弃用 - 我认为你需要从你熟悉的任何版本中查看1.4 API和升级帮助,因为这些将成为你需要参考的资源。

解决您的问题的诀窍是使用sfApplicationConfiguration类提供的loadHelpers()方法加载帮助程序 - 您的任务应该将此方法挂接到其方法configure()中。我以前没自己,心中做到了......

+0

的唯一配置我都在执行方法访问是在ProjectConfiguration例如'$这个 - > configuration',任何想法如何获得sfApplicationConfiguration的实例?我发现你可以在一个动作中执行$ this-> getContext() - > getConfiguration() - > loadHelpers(...),但是我无法访问该配置或上下文。如果我尝试使用'sfContext :: getInstance'获取当前上下文,则会得到“'缺省'上下文不存在”。使用'sfContext :: createInstance()创建一个新的上下文'我需要一个ApplicationConfiguration来传递: - /。 – nortron 2010-04-04 23:26:35

0

你可以用

$this->configuration 

访问当前的配置,也可以定义taskClass)方法的应用程序命令选项::配置((如果你有使用symfony generate:task来生成您应该具有前端作为默认应用程序选项的任务类)。 (可选)您可以在调用任务时使用cli中的--application = appName传递应用程序。

3

不要忘了在你的任务的选项添加应用程序的名称。寻找这一行:

new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED,'The application name', 'frontend') 

现在$this->configuration返回你所需要的sfApplicationConfiguration

+0

好点。我有错误'传递给sfContext :: createInstance建立(参数1)必须是sfApplicationConfiguration的一个实例,ProjectConfiguration实例given' – 2015-09-21 15:34:22

3

这将这样的伎俩:

//load the Partial helper to be able to use get_partial() 
$contextInstance = sfContext::createInstance($this->configuration); 
$contextInstance->getConfiguration()->loadHelpers('Partial'); 
1

刚打来电话使用的任务的部分在这里发送免费试用唠叨电子邮件的代码:

//combines the partial with passed variables and puts the results in a string variable 
$contextInstance = sfContext::createInstance($this->configuration); 
$contextInstance->getConfiguration()->loadHelpers('Partial'); 

$partial_in_a_string = $contextInstance->getController() 
      ->getAction('module_name', 'action_name') 
      ->getPartial('module_name/partial_name', array('var_name'=>'var_value'));