Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Посоветуйте MVC фрэймворк


Автор: Vasay 21.6.2010, 01:13
Доброго времени.

Посоветуйте php-MVC фрэймворк который не был бы завязан на работу с базой данных.

А то нужно вместо БД использовать web-сервис. 



Ну или можно завязанный на БД фреймворк, но без "Черной Магии", чтоб после работы скриптов scaffolding-а оставались DAO, которые можно отрефакторить на работу с web-сервисом вместо работы с БД. 

Автор: Fortop 21.6.2010, 11:01
Гм.
Я несколько не в курсе, а какие фреймворки завязаны на работу с БД?

Автор: Vasay 21.6.2010, 11:40
Цитата(Fortop @  21.6.2010,  11:01 Найти цитируемый пост)
Гм.
Я несколько не в курсе, а какие фреймворки завязаны на работу с БД? 



Я не скажу, что я хорошо разбираюсь в PHP фрэймворках. Пользоваться приходилось только  Yii. Насколько я понимаю, завязка с БД там жесткая.

Из не PHP - Grails завязан на БД. 

Автор: SamDark 21.6.2010, 13:20
Vasay, 
В Yii нет никакой завязки на БД: хочешь используй, хочешь нет. Компонент ActiveRecord — да, завязан на БД, всё остальное — нет.

Автор: Vasay 21.6.2010, 15:44
SamDark, 


Цитата

В Yii нет никакой завязки на БД: хочешь используй, хочешь нет. Компонент ActiveRecord — да, завязан на БД, всё остальное — нет. 


но scaffolding без БД работать не будет? 

Автор: SamDark 21.6.2010, 16:10
Vasay
А что именно вы хотите скаффолдить без БД?

Автор: Vasay 21.6.2010, 16:21
Цитата(SamDark @  21.6.2010,  16:10 Найти цитируемый пост)
Vasay
А что именно вы хотите скаффолдить без БД? 



Ну, впринципе, можно построить каркас по классам модели или по вспомогательным файлам (типа yml). Другое дело, что ДАО должны остаться пустыми. 

Хотя я так подумал - что ничего страшного нет, если будут созданы ДАО и структура БД - отрефакторить на работу с web-сервисом будет несложно.

Перефразирую вопрос так:

Посоветуйте MVC фрэймворк с качественной функцией скаффолдинга и инкапсулирующий работу с БД в ДАО.

Автор: SamDark 21.6.2010, 17:15
Похоже, что вам нужен Symfony + Propel.

Автор: Fortop 21.6.2010, 17:19
Цитата(Vasay @  21.6.2010,  16:21 Найти цитируемый пост)
Посоветуйте MVC фрэймворк с качественной функцией скаффолдинга и инкапсулирующий работу с БД в ДАО.

Это же совсем другой вопрос smile

Посоветовать что-то не смогу, но знаю два фреймворка, с развитым скаффолдингом

Zend, Symfony

Автор: Vasay 22.6.2010, 02:42
SamDark, 
Fortop, 

Спасибо.  Буду разбираться.

Посмотрел исходники демо приложения "jobeet" на Symfony+Propel, что-то с ходу не разобрался как там все устроено.
Что они вообще под моделью понимают ( http://svn.jobeet.org/trunk/lib/model/ ) ? Я бы сказал, что это DAO, но где тогда модель?

Автор: SamDark 22.6.2010, 07:09
Vasay, 
Модель в Propel делится на две части (peer и собственно модель). Если проводить аналогию с упомянутым Yii, то это Post::model() и new Post(). По идее, тема раскрыта тут: http://www.symfony-project.org/jobeet/1_2/Propel/en/16

Автор: Vasay 22.6.2010, 19:43
Цитата

Модель в Propel делится на две части (peer и собственно модель).


Хм,  похоже, чисто модели там просто нет. Есть какая-то смесь Модели с Дао.
Что явно усложняет задачу замены БД на WEB-сервис.

Например, в классе http://svn.jobeet.org/trunk/lib/model/om/BaseJobeetJob.php находится модель, но кроме нее еще и такие методы, как doSave

Т.е. под требование "инкапсулирующий работу с БД в ДАО."  Symfony+Propel явно не подходит.



Цитата(SamDark @  22.6.2010,  07:09 Найти цитируемый пост)
По идее, тема раскрыта тут: http://www.symfony-project.org/jobeet/1_2/Propel/en/16 

Я быстро пробежал глазами - там, вроде, рассказывается как организовать web сервис на базе Symfony, а не как использовать его как источник данных для приложения. Или я что-то упустил? 

Автор: Vasay 22.6.2010, 20:58
Извиняюсь, в  предыдущем посте накасячил с терминологией. Сказывается работа Grails.


Цитата

Хм,  похоже, чисто модели там просто нет. Есть какая-то смесь Модели с Дао.
Что явно усложняет задачу замены БД на WEB-сервис.


Конечно я хотел сказать не "модель" а "сущность (entity)"

Добавлено через 7 минут и 7 секунд
Сейчас читаю ввоhttp://framework.zend.com/manual/en/learning.quickstart.create-model.html в  Zend Framework 

Вроде похоже на то что я ищу. 

Т.е. в том примере с гостевой для смены БД на иной источник информации достаточно будет отрефакторить Mapper классы.

Автор: solenko 23.6.2010, 15:07
Цитата(Vasay @  22.6.2010,  18:43 Найти цитируемый пост)
Symfony+Propel явно не подходит.

ну просто нужно написать свой класс-генератор, который заменит Creole уровень propel на работу с вашим веб-сервисом

Автор: SamDark 23.6.2010, 15:52
solenko, Vasay, 
Если свой генератор писать, то можно сделать это практически на любом фреймворке. На том же Yii никто не мешает использовать CModel,  а не CActiveRecord. В большинстве других фреймворков ситуация примерно та же.

Одно только непонятно… какая выгода в описывании модели при помощи XML или yaml, если то, что сгенерируется будет совершенно голым? Думаю, именно поэтому, генерации пустых моделей почти нигде нет.

Автор: Fortop 23.6.2010, 16:44
Vasay, я тебя огорчу, Mapper классы не генерируются в ZF
во всяком случае пока.

Автор: Vasay 24.6.2010, 21:40
Цитата(Fortop @  23.6.2010,  16:44 Найти цитируемый пост)
Vasay, я тебя огорчу, Mapper классы не генерируются в ZF


Именно их генерация, в моем случае и не нужна smile  

Вообще, по структуре и коду приложения, ZF на первый взгляд мне понравился.  Но я прочитал, что приложения созданные на ZF работают далеко не на каждом хостинге.  Так ли это? Или речь шла о совсем уж "левых" предложениях по хостингу.

Просто, приложение будет распространяться среди партнеров и не хотелось бы, что бы у многих возникли проблемы с работой на их хостингах ( достанут вопросами службу поддержки  smile  ).  

Требования на офф сайте я прочел, но вот насколько им удовлетворяют сегодняшние конфигурации серверов у более-менее вменяемых хостинговых компаний - понятия не имею. 

Автор: Fortop 26.6.2010, 14:40
Цитата(Vasay @  24.6.2010,  21:40 Найти цитируемый пост)
Так ли это? Или речь шла о совсем уж "левых" предложениях по хостингу.

16М бесплатный шаред хостинг - кое-как бегает.
Хотя да - прожорлив сильно. И не быстрый без кеширования.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)