【发布时间】:2012-01-18 12:19:02
【问题描述】:
如何在 Symfony 1.4 项目中自动加载模块的 lib 文件夹?可能你知道这个问题:
如果我创建插件,我会将模块操作的基类存储在 lib 文件夹中。存储在actions/actions.class.php 中的每个动作类都继承自该基类。这允许在项目级别覆盖插件操作:
myModule
actions
actions.class.php
lib
BasemyModuleActions.class.php
但不幸的是,Symfony 不会自动加载 BasemyModuleActions,您必须手动包含相应的文件:
require_once(dirname(__FILE__) .'/lib/BasemyModuleActions.class.php');
class myModuleActions extends BasemyModuleActions
{
}
这行得通,但它真的很烦人。此外,我想将更多文件放在模块的 lib 文件夹中,例如表格。
有没有办法将这些目录添加到自动加载器?
在它们的相关模块中存储表单对我有好处,因为我只在少数情况下为不同的模块重复使用相同的表单。
您的解决方案是否也与 Doctrine 表单生成任务兼容? IE。 Symfony 是否知道现有表单,或者如果将其移出lib/form/doctrine 是否会再次创建它? (没问题,如果你不能回答这个问题。但如果你知道这种情况下的解决方法会很好)
【问题讨论】:
-
据我所知应该是自动加载的。你清除缓存了吗?
-
看上面的例子。即使在 sfDoctrineGuardPlugin 的操作中,您也会发现
require_once解决方法。我确定它们没有自动加载。
标签: php symfony1 doctrine symfony-1.4 autoload