Pull to refresh

Comments 9

UFO just landed and posted this here
Это так трогательно, смотреть на метания вроде Blog\Post\Entities и Blog\Post\Post.
> Почему такие вопросы появляются только у php разработчиков?
возможно потому что у php эта фича появилась совсем недавно?
Такие вопросы появляются либо у новичков (в любом языке), либо у «старичков» которые ещё 4.х помнят и любят (и главное — привыкли).

А вообще — программист/разработчик — он не на языке программирования, он алгоритмами оперирует. Так что догда уже php-кодер.
Боюсь показаться невежественным но собственно при чем тут NameSpace?

Проблема:
> Нам не нравятся толстые, неуклюжие Контроллеры, которые, как слон в посудной лавке, по неосторожности могут раздавить все приложение.
> Нам не нравятся также толстые Модели. Ну а кому они нравятся? Они должны быть достойны подиума!

И решение: назвать обёртку для PDO моделью…
вот это фокус! :) а нэймспейсы ради нэймспейсов нет?
У вас хороший стиль, красивые обороты, но я не увидел как вы использовали Namespace, чтобы у вас и контроллер и модель стали тонкими.

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

Они не просто «хорошо связаны». Они замурованы друг в друга насмерть и во веки веков, аминь. Для тестовой конфигурации вам придется кромсать класс модели.

где каждый класс выполняет свою задачу. Контроллер у нас тонкий и в то же время мощный. Модель под стать ему. Идеальная семья!

Вся мощь контроллера кроется в фабричном методе… =/
И все багодаря Namespace.

Как?

Так в чем же соль и сахар рассказа? В удивительном autoload?) Я серьезно не понял((((
Именования выносят мозг (назвать модель — DB, приэтом смешать доступ к базе и собственно управление моделью данных — это надо уметь).

Может быть вам сначала стоит разобраться как использовать MVC, а потом уже идти дальше?
PS А суть неймспейсов так и не раскрыта… Исходя из написанного — только в удобстве подключением автолоадером
В результате нам удалось создать структуру приложения, где все компоненты хорошо связаны, при этом мы добились четкого разделения классов, где каждый класс выполняет свою задачу.


Почитайте пожалуйста значения, смысл и разницу между Cohesion и Coupling.

Также посмотрите реализацию многих компонент (для примера Symfony HTTP kernel, Symfony Routing) и проанализируйте, почему они реализованы именно так, а не иначе.

Ну и также я думаю этот материал будет полезен для чтения. Желательно читать полностью, особенно про namespace

P.S. В описанном в статье решении сами namespace не имеют абсолютно никакого значения. То же самое можно было реализовать и на более старой версии PHP без их поддержки.
Sign up to leave a comment.

Articles