Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Общий раздел » Проектирование предметной области. » 21.10.2016 17:26:06

Так я привел пример по ссылке https://habrahabr.ru/post/37576/. Он там даже с кодом. Я понимаю, что проектирование обширная тема, и не прошу научить меня проектировать либо спроектировать что-то за меня. Я хочу на таком простом примере уловить суть, ибо мануалы и документация не дают мне ответ на вопрос, т.к. везде банальные примеры, сущность-модель, сущность-модель. Буду рад даже, если направление дадите.

#2 Re: Общий раздел » Проектирование предметной области. » 20.10.2016 17:03:02

stuchin пишет:

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

Спасибо большое за совет. И какими же надеждами я себя тешу, поясните? Разобраться в том, что мне непонятно на данный момент? Для чего тогда вообще нужен форум? Если вы не читали сообщения, то объясню специально для вас, что у меня нет конкретной задачи, и я не прошу кого-то что-то сделать за меня, а интересует общий подход. Я, по-моему, вполне адекватно изложил мысль, и не пойму вашей реакции.

#3 Re: Общий раздел » Проектирование предметной области. » 20.10.2016 13:09:05

Господа, ладно спрошу в лоб. Как в Laravel реализовать простой пример, приведенный в этой статье https://habrahabr.ru/post/37576/ ? Наш базовый класс Publication мы должны наследовать от Model? Говоря в общем, мы должны строить свою иерархию классов, наследуя наши супер-классы от Model? Или мы делаем отдельную иерархию? Заранее спасибо.

#5 Re: Общий раздел » Проектирование предметной области. » 19.10.2016 09:28:13

Вооот. Именно этот момент мне и непонятен. Я полностью понимаю все, что вы пишете. Ну а как же использование такого замечательного принципа, как полиморфизм. Если типов публикаций будет не 3, а 103. Для вывода всех публикаций на одной странице нам нужно будет написать 103 строки кода? Опять же, хочу напомнить, что я привожу элементарный пример с целью понять общий смысл. То есть получается, что от проектирования все сводится к кодингу методов модели?

#6 Re: Общий раздел » Проектирование предметной области. » 18.10.2016 22:12:53

Давайте пока отойдем от этой конкретной задачи и прибегнем к классическим примерам. Допустим у нас есть сайт, где мы присутствует новостная лента. На ней мы должны выводит публикации 3 типов - новости, статьи и объявления. В чем-то они схожи - у них есть заголовок и текст, в чем-то различаются - у статей есть авторы, а у новостей источники. По примеру многих мануалов, мы должны создать следующие модели - News, Article, Announcement, верно? Но мы хотим работать с этими публикациями через один интерфейс. Для этого мы создаем абстрактный класс Publications, в котором описываем абстрактные методы. Как нам это сделать в данном случае? Вот линк откуда взят пример - https://habrahabr.ru/post/37576/

#7 Re: Общий раздел » Проектирование предметной области. » 18.10.2016 17:28:34

Androbim пишет:

Маленькие "пять капель".
MVC, по-сути, к предметной области, как к таковой, никакого отношения не имеет, это парадигма программирования. С ней, или без нее, задачи решаются.
Насколько я понимаю, "в разрезе" ничего специально проектировать не нужно, начать следует с описания процессов предметной области.
Есть, к примеру, какой-нибудь ее фрагмент, для рассмотрения? Самый простой процесс?
Можно было бы прикинуть.
А уж когда дойдет дело до кода, то вовсе не обязательно использовать весь спектр PHP ООП. Ну, к чему, например, объявлять абстрактный класс, если задача тривиальна а пишете на фреймворке? :-) Там "все украдено до нас" :-)

Спасибо за ответ. Постараюсь в общих чертах объяснить, что я хочу понять. Приведу небольшой фрагмент предметной области. Есть некий отдел продажи запчастей(ЗЧ) для автомобилей. Есть сама сущность ЗЧ, обзовем ее Part, заказы от клиентов - Orders. Существует множество складов предприятия на которых эти ЗЧ хранятся. Чтобы запросить ЗЧ со склада у нас есть документ - Запрос на склад(RequestToStock). Если на данном складе требуемых ЗЧ не оказалось, то мы создаем документ - Перемещение(Transfer).  На данном этапе можно пока остановиться. И RequestToStock и Transfer являются документами, содержащими перечень ЗЧ, т.е. напрашивается описать для них общий интерфейс. Создаем абстрактный Document, в котором определяем абстрактные методы - getPartList(получить перечень ЗЧ в документе), addPart(добавить ЗЧ в документ), close(Закрыть документ) и т.д. Подскажите, пожалуйста, как реализовать данную задачу в рамках Laravel. Или я чего-то не понимаю?

#8 Общий раздел » Проектирование предметной области. » 18.10.2016 13:31:51

NuclearNinja
Ответов: 14

Добрый день, господа. Заранее прошу не бить, только начал погружаться в ООП. В данный момент читаю книжку "PHP. Объекты, шаблоны и методики программирования", разбираюсь с принципами ООП, дошел до паттернов. Также параллельно затронул тему MVC, а конкретнее практическое применения в фреймворке Laravel. И у меня возник вопрос. Как и где в разрезе MVC проектировать предметную область, я имею ввиду описание интерфейсов, иерархии классов, связей между ними? Где должна быть описана бизнес-логика? Пока только по мануалам я вижу модель, которая, по-моему, представляет только обертку для работы с БД. Допустим, я хочу описать какой-то абстрактный класс или интерфейс - что я должен сделать? Заранее спасибо и прошу прощения, если где-то выражаюсь некорректно, только учусь. Помогите, пожалуйста, разобраться и встать на путь истинный.

Подвал раздела