@adiletmurzaliev

Как создать новое приложение (объект) в Yii2 basic шаблоне?

Почитал документации по Yii2 и не до конца понял как следует правильно создавать новое приложение. Также в инете нет подробной инструкции.

Пытаюсь разместить новое приложение в новой директории, туда закинул папки с контроллерами, моделями и видами.
Если я правильно понимаю, основные изменения коснутся конфигурации (id, basePath, aliases, controllerNamespace) для web и console (чтобы юзать миграции и т.п.), и namespace для всех внутренних файлов данного приложения.

По идее все должно работать, однако я получаю подобного рода ошибки:
The file or directory to be published does not exist: E:\XAMPP\htdocs\local.dev\new_app\vendor\bower/jquery/dist


В общем Вы создаете новое приложение? Нормальная ли это практика создавать поддиректории для каждого нового приложения?
Задача что-то наподобие этого: есть разные проекты типа shop.local.dev, blog.local.dev и т.д., соответственно хотелось бы отделить весь данный функционал на отдельные приложения с отдельными бд.
  • Вопрос задан
  • 278 просмотров
Пригласить эксперта
Ответы на вопрос 4
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Создайте виртуальный хост, для каждого свою document root и server name
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "C:\xampp\htdocs\test\web"
    ServerName test
    ServerAlias www.test
    ErrorLog "logs/test-error.log"
    CustomLog "logs/test-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "C:\xampp\htdocs\test1\web"
    ServerName test1
    ServerAlias www.test1
    ErrorLog "logs/test1-error.log"
    CustomLog "logs/test1-access.log" common
</VirtualHost>

Соответственно эти директории должны быть созданы в C:\xampp\htdocs и там развёрнуты приложения. Для каждого своя база данных, настройка через config/web.php в каждом приложении.
Адреса для доступа к каждому проекту должны быть такими:
http://test
http://test.1
Хотя ошибка
The file or directory to be published does not exist: E:\XAMPP\htdocs\local.dev\new_app\vendor\bower/jquery/dist

может говорить о том, что у Вас проблема с самим framework.
Какую версию Вы используете?
Существует ли vendor\bower/jquery/dist?
Ответ написан
Комментировать
bitver
@bitver
Удалите /vendor & composer.lock
composer global require "fxp/composer-asset-plugin:^1.3.1"
composer install
Ответ написан
Комментировать
@adiletmurzaliev Автор вопроса
Всем спасибо. На самом деле ошибка возникла из-за того, что я не определил алиас для папки vendor:
@vendor, the Composer vendor directory. Defaults to @app/vendor.

В итоге разбросал приложения по отдельным директориям. Все работает. На входном скрипте прописал небольшой код для определения имени субдомена, в зависимости от которого будет построено отдельное приложение. Также насоздавал несколько консольных приложений. Не знаю насколько это правильно) Но в целом удобно и работает)
Ответ написан
Комментировать
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Если нужно более 1 приложения - зачем тогда basic шаблон? То что Вы сделали - это advanced шаблон. И рационально было бы взять его. Там и алиасы вынести и куча других вещей более правильно реализованы для 2-x и более приложений.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы