Я написал плагин wordpress, который отлично работает. Тем не менее, он просто работает, но здесь нет ООП, потому что в то время необходимо было что-то построить как можно скорее. Я прочитал некоторую литературу и обнаружил, что php не поддерживает множественное наследование из-за проблемы с алмазами.Нужно руководствоваться рефакторингом моего PHP-кода в концепции ООП
Текущий сценарий:
Flickr
--pic importer
----1. sql.php
----2. javascript.php
----3. call to show database contents
--photoset importer
----1. sql.php
----2. javascript.php
----3. call to show database contents
Здесь я создал 2 класс: picImporter
и photosetImporter
. Оба класса имеют общее содержимое от (1. sql.php
и 2. javascript.php
), но точка-3 (реализация отображения содержимого базы данных для них отличается).
Итак, моя идея: я должен создать еще один класс Global
и photosetImporter
, picImporter
класс должен расширять этот класс. В глобальном классе должен быть абстрактный класс, который должен определить дочерний класс. Таким образом, конструкция становится:
Class Global{
//$sql comes sql.php,
//$javacript comes javascript.php,
abstract protected function showDatabaseContents();
}
Class picImporter extends Global{
protected function showDatabaseContents() {
//implementation using **$sql** from base
}
}
Class photosetImporter extends Global{
protected function showDatabaseContents() {
//implementation using **$javascript** from base
}
}
Прежде чем продолжить, я просто хочу знать, если я нахожусь на правильном пути или нет и дальнейших инструкций, если это возможно.
Thanks, -S.
Вы когда-нибудь слышали о 'has-a/is-a' отношениях/зависимостях инъекций/твердых принципах? – Yang
Нет. Можете ли вы навестить меня на простом примере? Статья Википедии кажется пугающей с первого взгляда, поскольку я понятия не имею об этом. – seoul
Просто читайте и впитывайте сначала. Вероятно, это будет бессмысленно, пока оно уже не в вашей голове, и вы подходите к новой проблеме, и эти принципы приходят вам в качестве логического подхода к ее решению. – Jason