Когда использовать ORM фреймворки?

Deserved

Новичок
Если смотреть с этой стороны, тогда вопрос: какие средства для масштабирования БД есть в доктрине ? или что ты планируешь делать, когда БД на 1 сервере перестанет справляться с нагрузкой ?
Заранее извиняюсь за необразованность в данном вопросе, поэтому и задал его, чтобы узнать у людей кторые может уже сталкивались и могут дать совет.

- Начиная с 2.3 есть продвижения по поддержки шардов, но если я правельно понял, ф-циал отчасти прийдётся самому писать . Я не имел дело с шардами, но судя по первоиу впечетлению, вникать прийдёться тщательно.
- Начиная с 2.2 есть поддержка Master/Slave, опять же на сколька она хорошо, сказать не могу.


запросы оптимизировать не пробовал?
Проблем небыло с производительностью, просто зафиксировать на сколько можно повысить производительность используя APC.
 

Deserved

Новичок
Deserved
из всех ваших пунктов ни в одном не было ничего о том. чтобы использовать преимущества объектов. так что вам без разницы что использовать.

orm и доктрина это прожде всего объекты, а значит разные мутаторы и аццесоры для доступа к данным, это дополнительная логика при CRUD в теперешней доктрине это фильтры и подписка на евенты, это расширение сущностей, это использование методанных для кодогенерации, это умное размазывание по серверам, эти атамарность и Identity Map, это кастомные типы полей и т.д.

для быстрой разработки вам больше подойдёт простой active record. у доктрины есть куча своих граблей о которые постоянно будете спотыкаться. доктрину следует использовать когда вам действительно нужно орм, а не абстракция над базой данных или если используете симфони. Вот ZF2 это первое от чего нужно избавляться, если из той же категории, то лучше Symfony, если из дургих то Yii, Laravel etc.
Очень желательно было бы увидеть примеры, если возможно, а то так и не понятно чем и где доктрин плох.

Что касается ZF2, тоже не понятно зачем избавлятся.
 

AmdY

Пью пиво
Команда форума
Ragazzo
угу, я решил стать зейтером ZF2 и обличать его при каждом удобном моменте, плюс пиарить Symfony и Laravel.
 

AmdY

Пью пиво
Команда форума
Deserved
а ты напиши CRUD на различных фреймворках и сравни сколько кода нужно писать при том же функционале. Что ZF2, что Doctrine 2 просто ад в этом плане.
 

Deserved

Новичок
Deserved
а ты напиши CRUD на различных фреймворках и сравни сколько кода нужно писать при том же функционале. Что ZF2, что Doctrine 2 просто ад в этом плане.
Быстро прошёлся. Отличается от ZF2 наличием собственного ORM с Relationships, который ну очень похож по сути на TableGateway, который не имеет Relationships. По сути не могу найти драматических различий, между Доктриной, в ней всё закрученно вокру мэнэджера, тут вокруг наследуемого класса.
 

Gas

может по одной?
в laravel, так же как и в yii, kohana, RoR (c него мода в php и началась) - ActiveRecord, не TableGateway
а доктрина чистый Data Mapper.

AR - проще в работе, но нарушает принцип single responsibility и якобы для крупных проектов не тру.
Data Mapper - сущности отдельно, логика по работе со стореджами в менеджерах, всё круто, но сложнее.

как уже сказали - нет единственно верного инструмента
 
  • Like
Реакции: AmdY

Фанат

oncle terrible
Команда форума
Проблем не было с производительностью, просто зафиксировать на сколько можно повысить производительность используя APC.
Понятно
- Требуется найти способ всегда выигрывать на скачках.
- Задача решена, но пока только для частного случая сферического коня в вакууме.
 

Deserved

Новичок
Фанат
Я писал о том, что было много туфтологии вокруг Доктрины и приходилось на практики, доказывать, что она может, как бы это печально не звучало. Я лично, понимаю, что не открыл америку ибо всё это есть в документации доступно и понятно. Меня интересует толька опыт людей, которые пользовали её под нагружанные проекты и каково ихнее впечетление.

Хотя лично для меня это счас смешно выглядит, ибо оптимизировать до нужного уровня определённый запрос или бизнес логику проблем никак не составить, это ведь зависит не толька от Доктрины но и от самой архитектуры, да и не только, много чего можно крутить винтеть.
 

AmdY

Пью пиво
Команда форума
Deserved
Фанат
Я писал о том, что было много туфтологии вокруг Доктрины и приходилось на практики, доказывать, что она может
Зачем что-то доказывать, если уже всё доказано, погугли, тысячи проектов успешно используют доктрину под нагрузками. Большой плюс в том, что доктрину можно относительно легко патчить для повышения производительности, а встроенные оптимизации и кеши покрывают надобности большинства проектов.

Другое дело что во второй доктрине большой оверхед как по ооп, так и по коду который нужно писать и генерировать.
 

Deserved

Новичок
AmdY
И этот оверхед, вы думаете, что он лишний или он оправдан архитектурой/принципами? Лично каждый раз убеждаюсь, что ООП это не раз плюнуть, хочешь иметь хорошую быструю поддержку, независимы компоненты/классы, гибкость в добавлении новых возможностей, то да будет много классов и много ООП. Также, нужен контроль и обучение, чтобы люди следовали этим принципам в дальнейшей разработке.

Там где я работаю, всё построенно часто на предрасудках и догадках и если не доказать, то закончат писаниной relationships используя ZF2 DB компонент, тоесть своих колёс. Ужасает, не важно, я закрепил своё мнение и выбор в пользу Доктрины. Всем спасибо.
 

AmdY

Пью пиво
Команда форума
Deserved
я в первом посте по теме описал когда этот оверхед не лишний. Другое дело, что я практически нигде не видел чтобы эти преимущества доктрины активно использовались, обычно используют как простую астракцию над БД, что явный оверхед.
 

Deserved

Новичок
AmdY
Правельно ли я тебя понял, если тебе нужно просто работать с таблицами по типу CRUD, то ActiveRecord, TableGateway это максимум, что требуется. Если у тебя что-то типа, 1 репозитарий который содержит ф-циал для бизнес логики, кторый включает в себя 10 таблиц, которые по сути являются сущностями и несколько из них могут быть возвращенны репозитарием в зависимости от имплементации вызова (порой частично заполненные), то Доктрина тогда лучше вариант?
 

AmdY

Пью пиво
Команда форума
Deserved
Да. мне кажется в большинстве обычного AR хватит с лихвой, меня воротит от всех этих мепперов и т.д. http://www.phpactiverecord.org/projects/main/wiki/Associations

Только ещё. Если вы собираетесь использовать ZF2, то вы должны пользоваться и писать собственные модули http://modules.zendframework.com/ , с доктриной часть из них будет недоступна. Так что оптимальный выход всё же мучаться со стандартным средством фреймворка.
 

WMix

герр M:)ller
Партнер клуба
AmdY
будет недоступна
я поспорил бы... но ZF2 знаю плохо...
а с activerecord полностью согласен... доктрина очень удобно, но
Когда в товарищах согласья нет,
На лад их дело не пойдёт,
И выйдет из него не дело, только мука.
ею нужно уметь пользоваться
 
Сверху