Евгений Николаев, этот список выше делает не программиста, а обезьянку, которая умеет только составлять в разных комбинациях заученные команды.
Программирование - это не набор функций. Это умение создавать новое. самостоятельно. Умение решать проблемы. Умение писать расширяемый и поддерживаемый код.
книга Котерова и КостАрева вышла 10 лет назад. Версий РНР, которые она описывает, давно не существует в природе. Равно как и функций mysql_.
Я очень надеюсь, что через несколько лет вы хоть чему-то научитесь и поймете, какой детский лепет этот список, который вы тут составили.
Евгений Вольф, Спасибо, увидел что код есть на гитхабе.
Ну что можно сказать? Старую лошадь научить новым трюкам сложно
В общем, учитывая, что последние правки в коде сделаны 3 года назад, можно сказать что книга не затрагивает актуальные версии РНР. Я думаю, надо искать новых авторов, не отягощенных багажом РНР4.
Евгений Вольф, у них есть редакция, где учитываются изменения, сделанные в семерке?
Мне кажется, эта книга писалась на матариале 4/5.2 и при всем моем уважении к авторам, немного устарела с тех пор.
alex-1917, ну, есть как минимум две причины.
Первая - это абстрагирование от низкоуровневого АПИ.
Вторая - есть вещи, которых не хватает в пдо, например та же функция, которая позволяет выполнить подготовленный запрос за 1 вызов.
Алексей Скобкин, публик затем, что в пдо есть много разных методов и в текущей реализации это единственный способ к ним обратиться.
Пароль в конструкторе не очень хорошая идея, надо по крайней мере сделать его массивом, а то иначе он попадет в стек трейс.
по-хорошему, я сейчас считаю, что автору на данном этапе вообще вреден класс ДБ, ему надо начать с чистого пдо.
Sergei Abramov, только не этот ужас с implode. Передавать надо массив. Который потом пойдет либо в шаблон, либо в джейсон. И кидать исключение надо прямо в registrationUser. Возврат null - это какой-то каменный век. только не BadRequestHttpException, а ValidationException.
А не create ли должен дергать validate внутри себя?
Можно и так. Я просто не придумал красивый метод коммуникации в этом случае между контроллером и сервисом.
Я просто почему-то не очень люблю ловить исключения. Ме это кажется не очень красивым кодом. Но по сути почему бы и нет - в контроллере заключаем сохранение в трай-кетч, в котором ловим ValidationException, у которого есть метод getValidationErrors().