Laravel по-русски

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

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

#1 Re: Laravel » Как правильно организовать добавление услуг? » 20.02.2017 06:53:42

myname пишет:

constb, а как это на нагрузке и количестве запросов скажется? А вообще, вариант мне нравится.

Глупый вопрос задал и не могу удалить сообщение. Спасибо за наводку, мысль действительно очень интересная. Удивлен, как я сам не догадался.

#2 Re: Laravel » Как правильно организовать добавление услуг? » 20.02.2017 05:37:19

constb, а как это на нагрузке и количестве запросов скажется? А вообще, вариант мне нравится.

#3 Laravel » Как правильно организовать добавление услуг? » 19.02.2017 10:45:05

myname
Ответов: 3

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

На сайте есть возможность заказа разных услуг, например:
Доступ к сайту
Веб-хостинг
СМС-шлюз
Что-то еще

У каждой услуги должен быть свой обработчик, так как услуги разные, соответственно с разными API по разным принципам работают. Но методы одинаковые у них:
create(), delete(), block(), unblock().

Хочу сделать общую таблицу с заказами, где будет ID заказа, тип заказа, срок заказа, статус заказа.
А для разных услуг разные таблицы. Например, доступ к сайту - таблица custon_sites, веб-хостинг - custom_webhostings и т.д..
У услуг таблица custom_ и подставляется тип услуги из таблицы с заказами.

Так делать правильно?
Получается, что для добавления услуги нужно:
создать миграцию с таблицей custom_TYPE
создать обработчик для этого типа услуги

Но чтобы можно было этот тип услуги добавлять к продаже, надо ведь сделать возможность его выбора при добавлении. Каким образом в laravel это можно упростить? Может в контроллере услуг сделать парсинг каталога с классами услуг, в каждом классе услуг добавить статический метод, который будет выводить имя услуги, чтобы было визуально понятно какая услуга добавляется на "витрину".
А в базе тогда что хранить, чтобы скрипт знал к какому классу-обработчику обращаться при заказе услуги? Хранить название класса и обращаться напрямую \App\Components\Handlers\Handler?
А хранить в таблице с заказами тип Handler? \App\Components\Handlers\ - этот путь будет статичным.

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