2 приложения Laravel 8 с собственными пакетами, провайдерами и кешем, но с общими классами приложений

Я хотел бы запустить 2 приложения Laravel 8. Оба должны иметь свои собственные пакеты, провайдеры, контроллеры и кеш, но команды, модели, исключения, .env и Config должны использовать одно и то же. У меня есть следующая структура:

/main/ <- Laravel Main Package with Models, etc
/sub/ <- 2nd Laravel Package
/.env

composer.json вспомогательного приложения:

    "autoload": {
    "psr-4": {
        "App\\Console\\": "./../main/app/Console/",
        "App\\Exceptions\\": "./../main/app/Exceptions/",
        "App\\Http\\": "app/Http/",
        "App\\Models\\": "./../main/app/Models/",
        "App\\Providers\\": "app/Providers/"
    }
},

Мой бутстрап\app.php:

//...
if (!class_exists('Application')) {
    class Application extends OriginApplication
    {
        /**
         * Get the path to the application configuration files.
         *
         * @param  string  $path Optionally, a path to append to the config path
         * @return string
         */
        public function configPath($path = '')
        {
            return $this->basePath.DIRECTORY_SEPARATOR.'../main/config'.($path ? DIRECTORY_SEPARATOR.$path : $path);
        }
    }
}

//...

$app->useEnvironmentPath(
    dirname(__DIR__, 2)
);

Работает тоже пока что .env берется правильно, но с классами из основного не грузятся, приходит Undefined namespace 'Console' и Unable to detect application namespace. Кто-нибудь знает, как мне лучше всего реализовать свой план?


person Norman Huth    schedule 02.03.2021    source источник
comment
Пожалуйста, поделитесь более подробной информацией, например кодом, который помогает понять и воспроизвести вашу проблему.   -  person Nico Haase    schedule 02.03.2021
comment
Проблема в том, что это не работает. Laravel возвращает Unable to detect application namespace. @NicoHaase ` App\\Console\\: ./../main/app/Console/, App\\Exceptions\\: ./../main/app/Exceptions/, App\\Models\\: ./ ../главное/приложение/Модели/, `   -  person Norman Huth    schedule 02.03.2021


Ответы (1)


Я создал Симлинки.

Например, sub/app/Console/ Симлинк на main/app/Console/

И теперь проект в папке sub использует app/Console/ файлов проекта в папке main.

person Norman Huth    schedule 03.03.2021