1

我在 Symfony 的 BaseContent 类中添加了一些个性化的方法,但是还有其他开发人员正在开发 Symfony 应用程序,他们可能正在使用某种 CRUD 生成器生成代码(我对 Symfony 不是很熟悉,所以我不确定是什么正在使用)。问题是当其他开发人员重新生成 PHP 类时,我的定制代码会被覆盖。

有什么办法可以将定制方法保存在同一个 BaseContent 类文件中?

4

1 回答 1

2

您在 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”下)基于模式中定义的内容生成。

于 2013-07-22T15:24:33.163 回答