symfony1.2のComponentの呼び出しについてのいろいろ

Action内で呼び出す

<?php
$this->getComponent('module_name', 'component_name')->someAction();

Template内で呼び出す

<?php include_component('component_name', 'partial_name', array('some', 'params')) ?>

Requestの扱い

Template内

include_component()では、常にsfContext::getRequest()が渡されるようになっている。

<?php
public executeComponentMethod(sfRequest $request)
{
  $request->getParameter('name', 'default scalar');
}
Action内

自分で渡す必要がある。

<?php
public executeSomeAction(sfRequest $request)
{
  $this->getComponent('module_name', 'component_name')->someAction($request);
}

include_component()の第3引数で指定したvarの取得

<?php
$this->getRequestParameter('name', 'default scalar');
// or
$this->getRequest()->getParameterHolder()->get('name');