Записи с меткой ‘refactoring’
Использование ruby-like модулей в PHP
Недавно мне пришлось работать с очень длинными классами, примерно 1000-1300 строк. Они, знаете ли, не очень удобны для работы. Все время хотелось их разнести по разным модулям, как в ruby, чтобы не мешались в одной куче. А потом подключать эти модули в класс, возможно даже не в один. В итоге я сделал следующее:
Избавляемся от операторов if и foreach в шаблонах
Часто в шаблонах приходится использовать вывод по условию. В результате шаблон обрастает трудно читаемыми конструкциями, типа:
< ? if(isset($comments)): ?>
< ? foreach($comments as $comment): ?>
< ?= include_view("comment", array("comment" => $comment)) ?>
< ? endforeach ?>
< ? endif ?>
< ? if($reader->canWriteComments()): ?>
< ?= include_view("comment_form") ?>
< ? endif ?>
< ? foreach($comments as $comment): ?>
< ?= include_view("comment", array("comment" => $comment)) ?>
< ? endforeach ?>
< ? endif ?>
< ? if($reader->canWriteComments()): ?>
< ?= include_view("comment_form") ?>
< ? endif ?>
или
<div <? if($page->isActive()):?> class="active"< ? endif ?></div>
Можно написать помощника, который будет выводить текст по условию.

(4 голосов, средний: 4.75 из 5)