带继承的PHP MVC模型?

带继承的PHP MVC模型?,php,oop,inheritance,Php,Oop,Inheritance,我正在尝试将项目迁移到MVC框架中(在CI和Yii之间做出决定) 现在,为了论证,我有两个对象,文本和图像,我想基于对象类构建它们 家长: class Object() extends Somemodel{ protected $x; protected $y; protected $page; ... methods()... } 儿童: class Image() extends Object{ protected $width; protected $height; ... method

我正在尝试将项目迁移到MVC框架中(在CI和Yii之间做出决定)

现在,为了论证,我有两个对象,文本和图像,我想基于对象类构建它们

家长:

class Object() extends Somemodel{
protected $x;
protected $y;
protected $page;
...
methods()...
}
儿童:

class Image() extends Object{
protected $width;
protected $height;
...
methods()...
}

class Text() extends Object{
protected $text;
protected $font;
...
methods()...
}
现在,据我所知,这是一个很好的方法,因为一些常见的函数,如获取x/y坐标等,将被放置在对象中,而所有特定的东西将被放置在子类中

我希望数据库中有一个表来存储对象

然而,框架给了我很长的时间来尝试并使其工作。。。这让我想到,我可能做错了什么,因为如果每个人都这样做,我想,框架会很容易支持这一点


有什么想法吗?

你不应该这样做。您违反了Liskov替换原则(),它基本上说您应该能够用父类的实例替换任何子类的实例


顺便说一句,这只是我的观点,但我要警告你不要使用你提到的两种框架。它们都有重大的设计缺陷和其他问题。(如果你想了解详情,请访问房间..这里没有燃烧的必要)

你不应该这样做。您违反了Liskov替换原则(),它基本上说您应该能够用父类的实例替换任何子类的实例


顺便说一句,这只是我的观点,但我要警告你不要使用你提到的两种框架。它们都有重大的设计缺陷和其他问题。(如果您想了解详细信息,请访问room..这里没有任何理由火冒三丈)

如果您认为每个框架都有自己的ORM,那么您的问题是有意义的。然而,我认为Symfony的想法是正确的:与良好的、单独维护的ORM系统集成,以便核心团队能够专注于框架本身


因此,我会看一下Propel或Doctrine(两者都得到了很好的维护,并且都支持afaik的模型继承),然后选择您的框架,根据它可以提供与您选择的ORM的良好集成级别。

如果您认为每个框架都有自己的ORM,那么您的问题是有意义的。然而,我认为Symfony的想法是正确的:与良好的、单独维护的ORM系统集成,以便核心团队能够专注于框架本身


因此,我会研究一下Propel或Doctrine(两者都得到了很好的维护,都支持模型继承afaik),然后选择您的框架,该框架为您选择的ORM提供了良好的集成级别。

您为应用程序逻辑(业务模型)编写的对象独立于CI或YII中的数据库模型。但是,您可以在模型中重用来自数据库模型的数据。也许这就是丢失的链接?试试DooPHP。hakre:请详细说明(我对MVC概念还比较陌生),如果答案是好的,我可以接受。您为应用程序逻辑(业务模型)编写的对象独立于CI或YII中的数据库模型。但是,您可以在模型中重用来自数据库模型的数据。也许这就是丢失的链接?试试DooPHP。哈克雷:请详细说明(我对MVC概念还比较陌生),可能是以一种回答的形式,这样我可以接受它,如果它好的话:)。顺便说一句,虽然我推荐Symfony,但我不打算建议这是你唯一的选择。例如,我相信人们已经让CI与我提到的两种ORM一起工作。顺便说一句,虽然我推荐Symfony,但我并不打算建议这是您唯一的选择。例如,我相信人们已经让CI与我提到的两种ORM一起工作。