Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: тестовое задание на php
Форумы портала PHP.SU » » Объектно-ориентированное программирование » тестовое задание на php

Страниц (1): [1]
 

1. lalexa - 25 Декабря, 2014 - 21:00:58 - перейти к сообщению
Возник вопрос архитектуры такого приложения. java разработчик предложил использовать следующий подход.

Создаю сущность User с полями соответствующими полям в таблице бд, геттерами и сеттерами к ним. Далее создаю DAO слой. UserDAO интерфейс, в котором основные методы для работы с бд (crud). Потом создаю класс UserDAOImpl, который имплементирует UserDAO. Далее создаю слой сервисов, схема такая же: интерфейс - UserService и класс UserServiceImpl. Потом создаю контроллер UserController.

В итоге получается такая схема: Controller-Service-DAO

Хочу попросить совет, насколько это правильный подход, используется ли он при разработке на php?

Спасибо!
2. DeepVarvar - 26 Декабря, 2014 - 02:55:40 - перейти к сообщению
Да, такой подход используется в php.
Есть CRUD, есть ActiveRecord.
В целом архитектура верна.

Но!
Хотя джавист прав, он прав отчасти и только со свей колокольни.
JAVA прекомпилируется единожды т.к. выполняется в виртуальной машине.

PHP же будет делать подключение+разбор+интерпретацию кучи файлов на каждый вызов.
И не важно каким макаром запущен интерпретатор, mod_apache или CGI/fpm - жрать все это будет нехилые ресурсы.

Если на ресурсы плевать - вперед и с песней.

Если не плевать - делать придется значительно проще, и чем меньше будет сущностей, тем быстрее это будет работать.
У меня есть успешный опыт такого подхода.
И, хотя многим, присутствующим на форуме, мой подход не нравится, он не джавистский, называют они его "экономия на спичках", все согласны с тем, что работает оно быстрее и жрет мало ресурсов.
Спичек я наэкономил мноого ))

 

Powered by ExBB FM 1.0 RC1