cookyii / project
Base application for Cookyii CMF
Installs: 42
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 2
Forks: 1
Open Issues: 0
Type:yii2-extension
Requires
- php: >=5.5.0
- cookyii/base: dev-master
- cookyii/module-account: dev-master
- cookyii/module-client: dev-master
- cookyii/module-feed: dev-master
- cookyii/module-media: dev-master
- cookyii/module-page: dev-master
- cookyii/module-postman: dev-master
- cookyii/module-translation: dev-master
- rmrevin/yii2-favicon-widget: ~1.2
- rmrevin/yii2-fontawesome: ~2.12
- rmrevin/yii2-imperavi-bundle: ~1.0
- rmrevin/yii2-ionicon: ~1.1
- rmrevin/yii2-minify-view: ~1.9
- rmrevin/yii2-rbac-command: ~1.3
- rmrevin/yii2-socicon: ~1.0
- yiisoft/yii2: ~2.0
- yiisoft/yii2-authclient: ~2.0
- yiisoft/yii2-composer: ~2.0
- yiisoft/yii2-imagine: ~2.1
- yiisoft/yii2-queue: dev-master
- yiisoft/yii2-swiftmailer: ~2.0
Requires (Dev)
- codeception/codeception: ~2.0
- codeception/phpbuiltinserver: ~1.2
- codeception/specify: ~0.4
- codeception/verify: ~0.2
- yiisoft/yii2-debug: ~2.0
- yiisoft/yii2-faker: ~2.0
Suggests
- predis/predis: For redis queue need predis client.
This package is not auto-updated.
Last update: 2024-10-26 18:33:16 UTC
README
cookyii/project
это каркас приложения Yii 2
оптимизированный под средние и большие проекты, которые состоят из нескольких приложений
(как правило - админа + публичный сайт, но могут добавляться и другие виды.
Например rest, erp, crm, мобильное приложение и тд).
Каркас включает базовые функции для работы cms, а также предоставляет инфраструктуру для работы готовых модулей, реализующий ту или иную функциональность.
Структура директорий
На данный момент в шаблоне представлено три приложения - frontend
, backend
и crm
.
Это всего лишь пример набора приложений.
Можно смело удалять любые приложения, либо создавать свои собственные.
conf.d/ файлы конфигурации для окружения (например nginx или rabbitmq)
common/ общие компоненты для всех приложений
frontend-app/ код приложения frontend
frontend-assets/ ресурсы для приложения frontend
frontend-modules/ модули приложения frontend
backend-app/ код приложения backend
backend-assets/ ресурсы для приложения backend
backend-modules/ модули приложения backend
crm-app/ код приложения crm
crm-assets/ ресурсы для приложения crm
crm-modules/ модули приложения crm
messages/ переводы языковых строк для всех приложений
resources/ модели ActiveRecord для всех приложений
vendor/ пакеты сторонних разработчиков
Структура директорий внутри проиложения
frontend-assets/ исходники ресурсов, которые будут опубликованны в публичной части приложения
frontend-app/
assets/ бандлы с ресурсами приложения
components/ компоненты приложения
config/ конфигурация приложения
controllers/ контроллеры приложения
tests/ автоматические тесты приложения
views/ представления (view) приложения
web/ публичная часть приложения, доступная из веба
widgets/ виджеты приложения
Структура директорий внутри модуля
frontend-modules/
ModuleName/
assets/ ресурсы и бандлы для модуля
commands/ контроллеры команд для выполнения в терминале (cli)
components/ компоненты модуля
controllers/ контроллеры модуля
views/ представления (view) модуля
widgets/ виджеты модуля
Системные требования
- PHP 5.4 или выше
- NodeJS 0.10 или выше
- Composer
- npm
Установка (first deploy)
-
В консоли выполните команду
composer create-project --prefer-dist --stability=dev cookyii/project new-project
-
Перейдите в директорию
new-project
и запустите процес инсталяции с помощью команды./build install
. Скрипт задаст несколько вопросов и выполнит следующие действия:- Создаст новую схему в базе данных (
install/database
) - Создаст нового пользователя в базе данных и даст ему права на доступ к новой схеме (
install/mysqlUserName
) - Скопирует файл
.env.dist.php
в.env.php
и заполнит некоторые поля автоматически.
- Создаст новую схему в базе данных (
-
Проверьте, что в созданном файле конфигурации
.env.php
заполнены все необходимые поля. -
(опционально) Скопируйте файлы
~/*-app/.credentials.dist.php
в~/*-app/.credentials.php
(в директориях приложений), заполнить необходимые данные. -
Соберите билд с помощью команды
./build
(для продакшена./build prod
). -
Создайте нового пользователя - администратора с помощью команды
./yii account/add
-
(опционально) Если Вам не нужны приложения
crm
иbackend
, Вы можете удалить директорииcrm-app
,crm-assets
,crm-modules
,backend-app
,backend-assets
иbackend-modules
. Аналогично, если Вам нужно какое-то дополнительное приложение (напримерrest
), Вы можете создать схожие директории. -
Настройте виртуальные хосты для Ваших приложений, например:
new-project.com -> .../frontend-app/web backend.new-project.com -> .../backend-app/web crm.new-project.com -> .../crm-app/web
Вот и всё, восемь простых шагов =)
После всех этих манипуляций, Ваш новый сайт должен быть доступен по адресу new-project.com
.
Обновление проекта (deploy)
- Обновите кодовую базу проекта из Вашего репозитория (например
git pull
). - Соберите билд с помощью команды
./build
(для продакшена./build prod
).
Настройка
Вы можете изменять любые настройки в директориях
./common/config/
, ./frontend-app/config/
, ./backend-app/config/
, ./crm-app/config/
, ./console-app/config/
и в конфигурации билда проекта.
Доступные команды ./build
./build install
- запустить процесс установки../build
или./build dev
- собрать проект для dev площадки../build demo
- собрать проект для demo площадки../build prod
- собрать проект для продакшена.
Дополнительно доступны следующие команды (они выполняются в рамках set/*
команд, и сюда добавлены только для справки):
./build map
- показать список всех команд../build self/update
- обновить библиотеку сборкиbuild.phar
../build clear
- удалить все временные файлы и логи во всех приложениях../build clear/*
- удалить все временные файлы и логи в конкретном приложении../build composer
- установитьcomposer
зависимости изcomposer.lock
../build composer/update
- скачать новые версииcomposer
зависимостей и обновитьcomposer.lock
../build composer/install
- скачать новые версииcomposer
зафиксированные вcomposer.lock
../build composer/install-prod
- скачать новые версииcomposer
зафиксированные вcomposer.lock
безrequire-dev
../build composer/selfupdate
- обновитьcomposer
../build composer/update-fxp
- обновить плагинfxp/composer-asset-plugin
../build npm/install
- установить зависимостиnpm
../build npm/update
- обновить зависимостиnpm
../build bower/install
- установить зависимостиbower
../build bower/update
- обновить зависимостиbower
../build migrate
- выполнить все новые миграции для всех приложений../build migrate/*
- выполнить все новые миграции для конкретного приложения../build rbac
- обновить правилаrbac
для всех приложений../build rbac/*
- обновить правилаrbac
для конкретного приложения../build less
- скомпилироватьless
для всех приложений../build less/*
- скомпилироватьless
для конкретного приложения.