ale10257 / multi-site-cms
Installs: 50
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 2
Forks: 3
Open Issues: 0
Type:project
Requires
- php: >=7.1.0
- ale10257/yii2-ext-for-work-nested-set: dev-master
- creocoder/yii2-nested-sets: dev-master
- dmstr/yii2-adminlte-asset: ^2.1
- electrolinux/phpquery: dev-master
- elisdn/yii2-composite-form: ^1.0
- fishvision/yii2-migrate: *
- himiklab/yii2-recaptcha-widget: *
- kartik-v/yii2-widget-fileinput: @dev
- kartik-v/yii2-widget-select2: @dev
- newerton/yii2-fancybox-3: dev-master
- phpoffice/phpexcel: *
- vova07/yii2-imperavi-widget: *
- yidas/yii2-fontawesome: ^2.0
- yiisoft/yii2: ~2.0.5
- yiisoft/yii2-bootstrap: ~2.0.0
- yiisoft/yii2-jui: ~2.0.0
- yiisoft/yii2-swiftmailer: ~2.0.0
Requires (Dev)
- codeception/base: ^2.2.3
- codeception/specify: ~0.4.3
- codeception/verify: ~0.3.1
- yiisoft/yii2-debug: ~2.0.0
- yiisoft/yii2-faker: ~2.0.0
- yiisoft/yii2-gii: ~2.0.0
This package is not auto-updated.
Last update: 2025-03-02 06:52:52 UTC
README
Заготовка для простой CMS на основе Yii 2 Basic Template
Зависимости
Минимальная версия php - 7.1, база данных - MySql
Особенности
- Данная CMS изначально спроектирована для работы с несколькими сайтами в рамках одного web приложения. Т.е. одна админ панель, и одна БД, для нескольких сайтов с похожим функционалом (multiSite).
- Реализовано разделение на слои. Основной рабочий код в каталоге core. Репозитории работают только с БД, модели форм отвечают только за формы, сервисы работают с контроллерами. Вся логика приложения только в сервисах, которые или возвращают результат контроллеру, или выкидывают исключения.
- В основе работы приложения лежит паттерн DI. Зависимости описаны в файле config/bootstrap/SetUp.php
Установка
composer create-project ale10257/multi-site-cms my-directory
Начало работы
-
В каталоге с приложением переименовать файл config/db-test.php в config/db.php, прописать параметры подключения к базе данных MySql, и последовательно выполнить команды:
php yii migrate
php yii init
При инициализации приложения будет предложено ввести логин, пароль, email для суперпользователя с ролью root
-
Создать тестовый домен, например, test.loc, в качестве корневой директории прописать /path/your/application/web/startSite. После инициализации перейти по адресу: test.loc/admin/login, и залогиниться в админке.
Соглашение о константах
Все web директории для сайтов расположены в каталоге web установленного приложения. Например, изначально в папке web есть директория startSite с демо данными. В каталоге web/startSite - единственная точка входа на сайт (и в админ панель, и на фронтэнд) - файл index.php. В данном файле объявлены две глобальные константы SITE_ROOT_NAME и UPLOAD_DIR:
defined('SITE_ROOT_NAME') or define('SITE_ROOT_NAME', 'startSite');
defined('UPLOAD_DIR') or define('UPLOAD_DIR', 'uploads');
Для корректной работы приложения следующие каталоги должны быть названы так же, как константа SITE_ROOT_NAME, (например, если вы присвоили значение test):
- Web каталог web/test должен существовать.
- Конфигурационные файлы должно находиться в папке config/test
- Контроллеры и представления должны находиться в папке sites/test
Константа UPLOAD_DIR определяет название каталога для загружаемых файлов. По умолчанию 'uploads'. Каталог uploads создается автоматически, при первой загрузке какого-либо файла в web директорию.
Как добавить еще один домен в приложение
В каталоге с приложением выполнить команду:
php yii create-domain
Вам будет предложено определить значение константы SITE_ROOT_NAME и имя приложения (домена) - Application Name.
Предположим, что вы определили значение константы SITE_ROOT_NAME как test.
Результат работы команды php yii create-domain:
- В папке config приложения будет создан каталог config/test
- В папке sites приложения будет создан каталог sites/test
- В папке web приложения будет создан каталог web/test
Также необходимо создать новый домен, прописать корневую директорию (/path/your/application/web/test) для созданного домена в вашем web сервере (apache, или ngnix), и перезапустить web сервер, например: sudo service apache2 restart.
Как удалить домен в приложении
В каталоге с приложением выполнить команду:
php yii delete-domain
Вам будет предложено ввести значение константы SITE_ROOT_NAME.
Демо версия приложения
Вход в админ панель управления сайтом: http://kulagin-alex.ru/admin/login
Login: demo
Password: 123456