我在Symfony的BaseContent类中添加了一些个性化方法 然而,还有其他开发人员正在研究Symfony应用程序,可能他们正在使用某种CRUD生成器生成代码(我对Symfony并不熟悉,因此我不确定使用的是什么)。 问题是当其他开发人员重新生成PHP类时,我的定制代码会被覆盖。
是否可以采取任何措施将定制方法保存在同一个BaseContent类文件中?
答案 0 :(得分:2)
您在Content类中添加或覆盖BaseContent参数和方法,这些参数和方法由symfony命令boost:build-model或doctrine:build-model(取决于您使用的ORM)以及Base类的父目录生成。这样,在更改架构时,您无需相应地重写个性化方法。
推动例子:
// lib/model/om/BaseContent.php
// Don't touch as it may be overwritten
abstract class BaseContent extends BaseObject implements Persistent {
...
public function getParameter()
{
return $this->parameter;
}
...
}
// lib/model/Content.php
// add or override here
class Content extends BaseContent {
public function getParameter()
{
//Do something more
return parent::getParameter();
}
}
在symfony项目中的任何地方,您始终使用继承基类的非Base类。
基类由PHP ORMs Propel(在文件夹'om'和'map'下)或Doctrine(在'base'文件夹下)生成,基于模式中定义的内容。