diff --git a/1.php/readme.md b/1.php/readme.md index c9a4415..99afc6f 100644 --- a/1.php/readme.md +++ b/1.php/readme.md @@ -19,4 +19,54 @@ при этом дополнительно метод может обрабатывать параметр для указания родителя - и вывода всех его потомков, если параметр не указан - то выводятся все записи *(это условие не обязательно)* # Постановка задачи Необходимо написать страницу на php, которая будет выводить информацию из модели о его родителях и наследниках. При этом, дополнительно предусмотреть возможность вывода наследников отдельного родителя, введённого в параметрах *(это условие не обязательно)* -# Реализация \ No newline at end of file +# Реализация +## Разработка модели +Поскольку вывод информации происходит из абстрактной модели, нам необходимо сделать собственную реализацию модели. Далее, обеспечить модульность, чтобы можно было менять практическую реализацию модели *(например, заменить запросы к БД на запросы к файловой системе и т.д.)*. +При разработки модели было принято решение реализовать класс для модели и для её реализации: +```php +class Realization { + public function getElement ($root = null) { + // ... код реализации + /* + Возвращает объект: + { + isElement : bool (Является ли объект элементом или же группой (имеет ли потомков)) + data : string (информация об объекте в текстовом виде) + } + + Все возвращённые объекты находятся на одном уровне: + ========================== + element 1 + -element 1.1 + --element 1.1.2 + -element 1.2 + element 2 + ========================== + + При getElement(); вернёт + element 1 + element 2 + + При getElement("element 1"); вернёт элементы element 1 на нижележащем уровне: + element 1.1 + element 1.2 + + При getElement("element 1.1"); вернёт элементы element 1.1 на нижележащем уровне: + element 1.1.2 + + И т.д. + */ + } +} + +class Model { + private $realization; + + public function __construct( $realization ) { + $this->name = $realization; + } + + public function getModelElement ($root = null) { + } +} +``` \ No newline at end of file