我在 Symfony 的 BaseContent 类中添加了一些个性化的方法,但是还有其他开发人员正在开发 Symfony 应用程序,他们可能正在使用某种 CRUD 生成器生成代码(我对 Symfony 不是很熟悉,所以我不确定是什么正在使用)。问题是当其他开发人员重新生成 PHP 类时,我的定制代码会被覆盖。
有什么办法可以将定制方法保存在同一个 BaseContent 类文件中?
我在 Symfony 的 BaseContent 类中添加了一些个性化的方法,但是还有其他开发人员正在开发 Symfony 应用程序,他们可能正在使用某种 CRUD 生成器生成代码(我对 Symfony 不是很熟悉,所以我不确定是什么正在使用)。问题是当其他开发人员重新生成 PHP 类时,我的定制代码会被覆盖。
有什么办法可以将定制方法保存在同一个 BaseContent 类文件中?
您在 Content 类中添加或覆盖 BaseContent 参数和方法,这些参数和方法由 symfony 命令 propel:build-model 或教义: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 项目中,你总是使用继承基类的非基类。
基类由 PHP ORMs Propel(在文件夹“om”和“map”下)或 Doctrine(在文件夹“base”下)基于模式中定义的内容生成。