Смысл только в том, что для начала неплохо, как минимум, избавиться от копипастинга.
А развивать и улучшать дальше можно практически бесконечно.
Тесты при таком хранении и использовании, конечно обязательны.
Лучше даже не «запускаете тесты», а «запускаются тесты и шлют вам на e-mail сведения об ошибках».
Думаю, — высосали далеко не всё, а только надкусили.
Код из наследника Lego:
return $this->fetch("lego_fotos.tpl");
Очень нехороший хардкод шаблона для контроллера.
Варианты решения:
1. Нужно определять в закрытом поле класса, например
private $_template = 'lego_fotos.tpl';
2. Принять стандарты именования и вообще
больше не определять имя шаблона.
Пусть родитель (Lego) сам автоматом ориентируясь
по имени наследника, либо по пути, где он живёт
сам определяет шаблон.
Статья хорошая и правильная.
Но возникает один вопрос, — если модули в проекты (цитирую автора) копипастятся,
то совершенно неудобной становится их поддержка.
Есть модуль, нашли в нём ошибку, либо решили доработать, — каким образом
вносить изменения во все проекты, куда он включен?
Я предлагаю такое решение:
Модули хранятся в репозитории.
На сервере для работы хранятся в одном месте, скажем
/webhome/lib/modules
Этот путь прописан в include_path.
Таким образом, не только разные проекты в пределах одного сервера,
но и проекты находящиеся на разных серверах используют один и тот же конкретный
модуль из репозитория.
Если же где-то модуль должен быть подточен под конкретные нужды, то
локальный уже наследуется от общего.
А развивать и улучшать дальше можно практически бесконечно.
Тесты при таком хранении и использовании, конечно обязательны.
Лучше даже не «запускаете тесты», а «запускаются тесты и шлют вам на e-mail сведения об ошибках».
Код из наследника Lego:
Очень нехороший хардкод шаблона для контроллера.
Варианты решения:
1. Нужно определять в закрытом поле класса, например
2. Принять стандарты именования и вообще
больше не определять имя шаблона.
Пусть родитель (Lego) сам автоматом ориентируясь
по имени наследника, либо по пути, где он живёт
сам определяет шаблон.
PS.
fotophotoНо возникает один вопрос, — если модули в проекты (цитирую автора) копипастятся,
то совершенно неудобной становится их поддержка.
Есть модуль, нашли в нём ошибку, либо решили доработать, — каким образом
вносить изменения во все проекты, куда он включен?
Я предлагаю такое решение:
/webhome/lib/modules
Таким образом, не только разные проекты в пределах одного сервера,
но и проекты находящиеся на разных серверах используют один и тот же конкретный
модуль из репозитория.
Если же где-то модуль должен быть подточен под конкретные нужды, то
локальный уже наследуется от общего.