Возможно ли иметь подмодули в Laravel? - PullRequest
0 голосов
/ 09 марта 2019

Существует несколько веб-сервисов, которые поддерживают несколько приложений для Android, написанных на Laravel.Каждый веб-сервис содержит несколько модулей.Совет директоров решил перенести все веб-сервисы в одну установку Laravel в виде модулей.Поэтому webServer1, который является независимым веб-сервисом, должен быть модулем набора веб-сервисов, интегрированных в одну установку Laravel.

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

Я хотел бы знать, поддерживает ли nwidart такую ​​вещь?и как я могу это сделать?

Кроме того, это вообще хорошая идея для такой вещи?Может быть, я могу отговорить совет директоров:)

Спасибо.

Ответы [ 2 ]

1 голос
/ 09 марта 2019

Вы можете сделать это, используя composer, например,

"psr-4": {
    "App\\": "app/",
    "SubModule\\": "SubModule/Path"
}

Затем создайте поставщика услуг внутри вашего модуля, например

<?php

namespace Your\Directory\Here;

use Illuminate\Support\ServiceProvider;

class CustomServiceProvider extends ServiceProvider
{
    protected $defer = true;

    /**
     * Bootstrap the application events.
     *
     * @return void
     */

    public function boot()
    {
        $this->loadViewsFrom(__DIR__ . '/resources/views', 'YOuCanNameHereAnyThing');
    }

    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        $this->mergeConfigFrom(__DIR__ . '/config/config.php', 'config');
    }
}
1 голос
/ 09 марта 2019

Вам не нужен любой сторонний пакет, чтобы сделать приложение Laravel модульным, и я бы сказал, что это создает ненужную зависимость.Composer позволяет вам автоматически загружать любую папку в определенном пространстве имен с помощью автозагрузки PSR4.

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

В целом, сделать ваш код более модульным - это хорошая идея, поскольку он допускает повторное использование кода.Например, если вы создали какую-то функциональность, которая будет полезна для других проектов, вы можете поместить ее в пакет отдельно и потребовать ее с помощью Composer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...