This project uses the following Yii2 Advanced template:
- Yii2-app is Fast and Ready-to-production advanced project template
- Dockerized, for development (mysql, nginx, php-fpm)
- Gentelella Admin template is beautiful and simple bootstrap, compatible with yii2 assets: yiister/yii2-gentelella, Demo
- Yii2 User is strong and proved user-module with many features: dektrium/yii2-user (login
admin
, passwordadminus
) - Frontend and Backend User Controllers are filtered (by
dektrium/yii2-user
) - File or DB cache, but I recommend Redis Cache - it is really fast
- Yii2 queue (DB table
queue
), but you can use Redis-queue or other yii2-queue docs - Queue Manager with backend (
/queuemanager/default/index
) using ignatenkovnikita/yii2-queuemanager - Log DB Target with backend (
/log/index
) - simply view log messages - .htaccess - config for pretty urls (rewrite index.php), may be later add nginx config
- UrlManagerFrontend for backend app (all url rules in file
frontend/config/urls.php
, hostInfo incommon/config/params.php
) - i18n translations in
common/messages
with config (current only English and Russian, language translation are welcome!) - ContactForm in frontend app is improved: himiklab/yii2-recaptcha-widget,
all email are saved to DB (
common/models/EmailForm
Model), optionally send message to Viber messenger via bot (install requirements Bogdaan/viber-bot-php and config, uncomment code in Model) - Gii generator:
- added yii2-queue Jobs generator
- yii2 migration generator (from existing table) Insolita/yii2-migrik
- schmunk42/yii2-giiant - really steroid, but in development with bugs
These modules can be easy installed to Yii2-App using Composer:
- Yii2 Super Blog Module (semantic, seo): akiraz2/yii2-blog
- Yii2 many web-statictic counters (all-in-one) (yandex, google, own db-counter): akiraz2/yii2-stat
- yii2 opengraph component: dragonjet/yii2-opengraph
- yii2 settings (db+cache): yii2mod/yii2-settings
- etc...
Yii2-app template can be installed using composer. Run following command to download and install Yii2-app:
composer create-project --prefer-dist akiraz2/yii2-app my-site
After installation run init
Install yii2-app using Docker:
- run command to create project
docker run --rm --interactive --tty \
--volume $PWD:/app \
--volume ${COMPOSER_HOME:-$HOME/.composer}:/tmp \
composer create-project --prefer-dist akiraz2/yii2-app my-site
- copy
.env-dist
to.env
, configure if needed - copy
/mysql/docker-entrypoint-initdb.d/createdb.sql.example
tocreatedb.sql
if you have ready DB (so dont run migrations) docker-compose build
(you can configure Docker PHP in /php/Dockerfile-debian before building, for example, add mongodb)docker-compose up -d
docker-compose exec php bash
, in terminal runcomposer install
, thenphp init
, then run other migrations (see next)- open http://localhost:8100 to test frontend (backend is on http://localhost:8200)
Access to Console App: docker-compose exec php bash
and php yii mycommand/action
NOTE: Make sure that you have properly configured
db
application component and run the following command
php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations
php yii migrate --migrationPath=@yii/log/migrations/
# php yii migrate --migrationPath=vendor/ignatenkovnikita/yii2-queuemanager/migrations/ # Needed only for DB based Queue
php yii migrate/up
login: admin
password: adminus
For newbies, I will recommend reading these instructions yiisoft/yii2-app-advanced/start-installation.md (apache, nginx, etc\hosts
Change in common/config/main.php
'language' => 'ru-RU',
'sourceLanguage' => 'en-US',
Add your language in common/messages/config.php
'languages' => [
'ru-RU',
],
In shell
php yii message/extract common/messages/config.php
If you have any questions or problems with Yii2-App you can ask them directly
by using following email address: [email protected]
.
If you'd like to contribute, please fork the repository and use a feature branch. Pull requests are warmly welcome. +PSR-2 style coding.
I can apply patch, PR in 2-3 days! If not, please write me [email protected]
Yii2-App is released under the BSD License. See the bundled LICENSE.md for details.