Laravel по-русски

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

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

#1 13.07.2018 15:32:51

Несколько приложений

Все привет! Только начал смотреть в сторону laravel потому не пинайте больно если ответ на мой вопрос уже есть на данном форуме smile

Есть проект со структурой доменов:

main.ru - основной сайт
admin.main.ru - админка
stores.main.ru - поддомены для магазинов
service.main.ru - служебный домен
... и куча других

как разложить laravel по типу yii2 advanced, где каждое приложение, находится в своей директории со всеми необходимыми запчастями, а общие элементы вынесены в common?

Изменено Wizardev (13.07.2018 15:34:49)

Не в сети

#2 14.07.2018 01:49:19

Re: Несколько приложений

Провел день в поисках решения, танцевал с бубном... есть определенные решения но это все не то...

Не в сети

#3 17.07.2018 10:11:17

Re: Несколько приложений

сам не шибко опытен, но
1. добавил вхост
2. прописал в web.php
https://laravel.com/docs/5.6/routing#ro … in-routing

если не выносить роуты основного домена в отдельную группу то есть нюансы:
- прописывать роуты субдоменов необходимо ДО роутов основного домена, иначе роуты основного домена будут перекрывать идентичные роуты для субдомена(например get('/')
- роуты основного домена в любом случае доступны для вызова на субдомене(только если не переопределены специально для субдомена ДО роутов основного домена)
-роуты субдоменов не доступны на основном домене

если роуты основного домена вынести в отдельную группу, то, конечно же, субдомены будут практически максимально независимыми

запчасти как разложить по подпапкам во view, думаю, разобраться не сложно

Изменено Listed_Illusion (17.07.2018 10:14:31)

Не в сети

#4 17.07.2018 11:02:51

Re: Несколько приложений

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

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

вариант с хранением маршрутов для всех приложений по понятным причинам просто не целесообразно! и к примеру у меня есть домен stores.site.ru на который ссылается домены store1.site.ru store2.site.ru и так далее... в этом случае вообще без вариантов писать маршруты для каждого домена.

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

Изменено Wizardev (17.07.2018 11:06:49)

Не в сети

#5 17.07.2018 21:29:05

Re: Несколько приложений

Можно, например, сделать несколько подпапок вроде структуры yii2-app-advanced, где в каждой будет public, app и т.п. сразными корневыми неймспейсами.

Не в сети

#6 17.07.2018 22:15:39

Re: Несколько приложений

Дмитрий, да, именно по примеру advanced и хотелось бы сконфигурировать.

к примеру хотелось бы получить примерно такую структуру

############################

common
--config
----session.php
----database.php
...и прочие общие конфиги

############################

backend
--app
----Http
------Controllers
------Providers
--config
----view.php
--storage
-----views
--routes
--Tests
--прочие запчасти

############################

frontend
--app
----Http
------Controllers
------Providers
--config
----view.php
--storage
----views
------themes
--------base
--routes
--Tests
--прочие запчасти

############################

multidomain
--app
----Http
------Controllers
------Providers
--config
----view.php
--storage
----views
------themes
--------base
--routes
--Tests
--прочие запчасти

############################

storage
--files
----common
-------images
----stores
-------[1]
----------offers

############################

при этом, приложения должны обмениваться запчастями такими как маршрутизация, и при этом маршруты не должны лежать в общем конфиге (НИ В КОЕМ СЛУЧАЕ!!!))) Есть еще много других нюансов... Например есть нюанс с правами доступа для каждого приложения. но подобного плана структуру сконфигурировать у меня не удалась. теоретически все понятно. на практике... Структура каждого приложения должна быть индивидуальная, приложения могут добавляться, удаляться и поддерживаться разными разработчиками и ни в коем случае косвенно не должны влиять друг на друга. Общее только то что есть в коммон, статические файлы такие как картинки, кеш (redis), база...

Изменено Wizardev (17.07.2018 22:37:31)

Не в сети

#7 21.07.2018 19:21:53

Re: Несколько приложений

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

Елинственное исключение которое приходит в голову, это если есть функционально одинаковые сайты на разных доменах, только имеющие разные темы оформления и фильтры контента. Тогда можно всё в одном месте хранить, только над загрузкой конфигов поколдовать.


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#8 21.07.2018 22:19:55

Re: Несколько приложений

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

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

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

Удобный пример необходимого результата это yii2 advanced, но сам фреймворк не всех устраивает.

Изменено Wizardev (21.07.2018 22:25:42)

Не в сети

#9 23.07.2018 21:27:45

Re: Несколько приложений

А чем не устраивает разбиение на пакеты и сборка через composer? Можно ведь ссылки на [ приватный ] репозиторий git указывать, не обязательно публиковать на packagist.
Разные приложения будут собираться из пересекающегося но неодинакового набора компонент. Всё по феншую.


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#10 07.09.2018 15:48:34

Re: Несколько приложений

Собственно да, http://laravel.su/docs/5.4/packages
Это то что надо!)) Но до этого еще надо было дойти в мануале))

Не в сети

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