Как в Yii2 правильно организовать структуру для мобильной версии сайта?
Здравствуй, уважаемое сообщество.
Признаю, что название не очень хорошо передает суть вопроса.
Я столкнулся с проблемой. Мне необходимо, для уже работающего сайта, разработать мобильную версию которая будет находится на субдомене m.site.com, соответственно основная версия на site.com. По ряду причин использовать адаптивную верстку мы не можем.
Проект разработан на yii2.
На данный момент я, подключился к autoload.php основного проекта и к yii2 так же установленного через composer.
Скопировал от основного сайта контроллер с основными страницами (ошибки (500, 404) и главная страница) и разумеется папку views/layout и views/site. Фреймворк стартовал, но посыпались ошибки:
1. Не нашел app/models/Contact.
Я создал файл Contact.php в папке models объявлил namespace через include подключил данную модель с основного сайта, забыв что они лежат в одной области имен я объявил новый класс и унаследовал от основного - ест-но конфликт имен, я удалил объявление класса, но оставил include. Модель заработала!
Конечно, наследование, является более правильным решением, нежели то как оно работает в текущем виде. И что бы реализовать "правильно", думаю необходимо, либо иметь разные namespace на разных версиях сайта, меня это устраивает, либо создать в другой области имен базовые модели например в app\base\models\Contact и в каждой из версий сайта наследоваться от него.
2. Есть еще множество конфликтов с областью видимости и путями, так например в yii\web\Assets (Если не ошибаюсь), подгружает bower/jqury/dist из папки vendor, но папку эту он ищет в директории m.site.com.
Вопрос к сообществу, разумеется заключается в том как правильно организовать архитектуру проекта и как избежать всех текущих и будущих подводных камней максимально "правильно"?
Как я полагаю необходимо сделать так, что бы все имеющиеся неймспейсы app\models, app\controllers и т.д подгружались из основной версии, включая папку vendor.
А вот для второго сайта необходимо объявить какой нибудь mobile\models и mobile\controllers, при всем при этом папки views должны подгружаться к каждому свои.
Мне кажется, что смотреть нужно в сторону composer (autoload.php), в котором я сказать к слову ничего не понимаю (подскажите, что необходимо переписать, дописать и т.д в данном файле, куда вообще смотреть?) и как-то указать новые немспейсы для yii, не гвоздями ведь у нее прибито использование app\controllers для подгрузки контроллеров?
Простите, возможно я несколько не внимателен. Однако, касаемо моего вопроса данный каркас сохранил все теже самые ограничения. Не могли бы Вы несколько развернуть Ваш ответ. Спасибо.