我正在通过编写自己的“简单”CMS 系统来扩展我的 php 和一般编码知识。
我的数据库结构如下:
USERS --< WEBSITES --< PAGES
在我的逻辑中,我有三个类,aUser和Website类Page。未继承
该类User具有USER TABLE加一个属性的所有$_website属性,
该类具有对象Website的所有属性WEBSITE TABLE加上一个 ARRAYPage
我决定这样做的方式是,在页面加载时,将创建这些类并用数据库数据填充。
因此,在 html 中,我可以简单地通过调用类来回显结果,如下所示:
$USER -> name;
$USER -> website -> get_pages();
$USER -> website -> pages[0] -> get_header();
我意识到这些类可以被继承,所以Page继承Website和Website继承User
但是如果我这样做,那么我将Page像这样实例化该类:
$PAGES = array();
$PAGES[] = new Page( $constructor_data_to_construct_user_website_and_page );
现在,如果我这样做,该对象$PAGES[0]将具有与该页面有关的所有信息,与网站有关的所有信息(第一个父级),以及与用户有关的所有信息(第二个父级)
如果我再创建另一个Page,我只是复制相同的User细节Website是吗?
因此,如果我要var_dump $PAGES[0]获取所有相关信息,USER, WEBSITE并且PAGE
如果我要var_dump $PAGES[1]获得USERSAND的所有相同信息WEBSITE,但只是不同的Page数据。
因此,继承会导致不必要的用户和网站对象复制
因为我基本上可以做到:
$PAGES[0] -> username // username is a property of the Users class
$PAGES[1] -> username
两者都将返回完全相同的值。
这肯定很糟糕,因为数据被不必要地复制了!
这个对吗?
或者这个问题是一堆垃圾,而不是使用这种情况inheritance?