如果您想在操作之间共享某些代码部分,您可以创建一个自定义类,该类将实现您需要的一些方法。您可以将类放在lib
应用程序或整个项目的目录中。
例如创建一个apps/frontend/lib/myUtil.class.php
class myUtil
{
public static function addNumbers($a, $b)
{
return $a + $b;
}
}
然后在您的操作中,您可以使用:
$sum = myUtil::addNumbers(2, 3);
如果您的代码依赖于其他一些对象,最好不要实现静态方法而是创建该类的对象。例如
class myUtil
{
protected $request;
public function __construct(sfWebRequest $request)
{
$this->request = $request;
}
public function sumFromRequest()
{
return $this->request->getParameter('a') + $this->request->getParameter('b');
}
}
然后在你的行动中
public function executeSomething(sfWebRequest $request)
{
$util = new myUtil($request);
$this->sum = $util->sumFromRequest();
}
如果您的代码严格用于表单字段的验证,您可以创建一个自定义验证器,然后可以在您的表单中使用该验证器。(这绝对是最好的解决方案)。您可以在 Symfony 文档中阅读有关创建自定义验证器的信息。