我已经在我的symfony项目中的一些实例类中添加了一些功能,我希望我的所有实例类都具有这些功能.如果我对编辑核心symfony安装没有任何疑虑,我会直接将我的方法添加到sfDoctrineRecord类中.但是我当然不希望这样做,因为我的更改会在升级时中断,而且我的更改不会很好地移植到其他项目中.
如果我想在symfony中为我的所有实例类添加某些功能,那么"正确"的方法是什么?
(PS当我说"实例类"时,我的意思是lib/model/doctrine/Customer.class.php.)
脚步:
创建myDoctrineRecord
abstract class myDoctrineRecord extends sfDoctrineRecord
{
public function commonRecordMethod() { }
}
Run Code Online (Sandbox Code Playgroud)
我将此文件放在lib/record中,但您可以将其放在自动加载器将看到的任何位置.
设置Symfony以在ProjectConfiguration的configureDoctrine回调中使用此类:
public function configureDoctrine(Doctrine_Manager $manager)
{
sfConfig::set('doctrine_model_builder_options', array('baseClassName' => 'myDoctrineRecord'));
}
Run Code Online (Sandbox Code Playgroud)而已!Symfony不是很棒吗?:)