Symfony:特定于应用程序的表单类


Symfony: Application-specific form classes?

根据Symfony文档和教程,似乎Form类只放在这里:

/%SF_BASE_DIR%/lib/form/

但是,如果您的站点有多个应用程序(前端,后端等),而您只需要为其中一个应用程序使用表单类,该怎么办?在应用程序目录下是否有任何特定的位置可以放置表单类,以便它自动加载?我尝试了以下操作,但没有自动加载:

/%SF_BASE_DIR%/apps/backend/lib/
/%SF_BASE_DIR%/apps/backend/lib/form/

我知道你可以改变自动加载的目录,但我想知道是否在应用程序目录中只有一些默认的位置应该进入。如果有的话,文档似乎没有说清楚,至少我可以看到…

这可以为您工作。

在我有应用/模块特定的表单明显不同于默认的情况下,但希望保持常规表单类完整(因为我在后端使用它),我把它们放在相关模块的目录中,如/%SF_BASE_DIR%/apps/frontend/modules/xyz/form/

它们不会自动加载,但只有一个文件需要它们。我只是把一个单一的require_once放在该模块的动作类的顶部,如:

# apps/frontend/modules/xyz/actions/actions.class.php
require_once dirname(__FILE__).'/../form/FrontendXyzForm.class.php';
class xyzActions extends sfActions {
...