akiraz2/yii2-app

Yii2 my advanced project template (Redis-cache, DB-queue, gentelella-admin, dektrium-user, DB-log)

Installs: 897

Dependents: 0

Suggesters: 0

Security: 0

Stars: 49

Watchers: 11

Forks: 20

Open Issues: 1

Type:project

1.4.3 2021-01-22 07:55 UTC

This package is auto-updated.

Last update: 2024-10-22 18:35:52 UTC


README

Yii2-app is Fast and Ready-to-production advanced project template.

Dockerized, for development (mysql, nginx, php-fpm)

Please, enable php intl extension for better work.

Default, the template includes three tiers: frontend, backend, and console, each of which is a separate Yii application.

NOTE: Template is in initial development. Anything may change at any time.

Features

  • 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 adminus, password adminus)
  • 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 in common/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:
  1. added yii2-queue Jobs generator
  2. yii2 migration generator (from existing table) Insolita/yii2-migrik
  3. schmunk42/yii2-giiant - really steroid, but in development with bugs

Available modules

These modules can be easy installed to Yii2-App using Composer:

Installation

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

Docker

Install yii2-app using Docker:

  1. 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
  1. copy .env-dist to .env, configure if needed. You can change DB from mysql to postgresql - just change docker-compose.yml (and common/config/main-local.php after init)
  2. copy /mysql/docker-entrypoint-initdb.d/createdb.sql.example to createdb.sql if you have ready DB (so dont run migrations)
  3. docker-compose build (you can configure Docker PHP in /php/Dockerfile-debian before building, for example, add mongodb)
  4. docker-compose up -d
  5. docker-compose exec php bash, in terminal run composer install, then php init, then run other migrations (see next)
  6. 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

Migrations

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/
php yii migrate/up

Default User Credentials

login: adminus password: adminus

Web server config

For newbies, I will recommend reading these instructions yiisoft/yii2-app-advanced/start-installation.md (apache, nginx, etc\hosts

Development

Messages

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

Support

If you have any questions or problems with Yii2-App you can ask them directly by using following email address: akiraz@bk.ru.

Contributing

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 akiraz@bk.ru

Licensing

Yii2-App is released under the BSD License. See the bundled LICENSE.md for details.