Как можно было бы создать разобщенное приложение Laravel только с пакетами Composer?
Как бы вы реализовали двусторонние отношения, когда требуемые модели находятся в разных пакетах?
Как бы вы протестировали функции Laravel (например, Eloquent), которые пакет использует изолированно?
Как бы вы относились к представлениям, которые необходимо внедрить из одного компонента в другой, вы бы использовали систему ловушек?
Как бы вы относились к ресурсам, таким как js, css и images?
Я уже пытался сделать что-то подобное, но без пакетов я сделал что-то вроде этого:
/app
/Modules
/Module
/Database
/Migrations
/Seeds
ModelFactory.php
/Http
/Controllers
/Routes
web.php
api.php
/Lang
/en
/Models
/Views
config.php
Он работал довольно хорошо, но не совсем правильно, потому что я не мог разрабатывать и тестировать каждый модуль по отдельности и не мог создавать версии каждого модуля.
Изменение отношений модели без редактирования кода внутри этого модуля было сделано с помощью https://github.com/greabock/tentacles
Внедрение представлений из одного модуля в другой осуществлялось с помощью ловушек, которые перебирали бы представления модулей и проверяли, было ли предоставлено представление с соответствующим именем, и включали его, если это так.