Yii 2 Base App for Purists
Features
The main tenet of this template is: Keep it simple! The idea was to only include
the absolutely necessary features - and optimize some of the configuration issues
of the original Yii2 base template., (*1)
- Very flat configuration file structure
- Provide local configuration files that won't get committed
- Move
YII_DEBUG
and YII_ENV
to configuration files
- SiteController with login, logout, signup and password forget actions
Configuration
All configuration lives in 4 (or 5) files in the config/
directory., (*2)
-
web.php
configuration of the web app
-
local.php
local overrides to the web config. This file is not committed.
-
console.php
configuration of the console. Here you can reuse parts of the merged web.php
and local.php
configuration. See the example file for how this works.
-
params.php
application parameters for both web and console application
-
console-local.php
an optional file with local overrides to the console configuration. This file is not committed.
Workflow
Before you can create new applications on a host, you first have to install the composer asset plugin:, (*3)
composer global require "fxp/composer-asset-plugin:1.0.0-beta2"
To create a new application you will usually follow this workflow:, (*4)
- Install the template with
composer create-project --prefer-dist --stability=dev mikehaertl/yii2-base-app .
- Add optional dependencies to
composer.json
and run composer update
- Add local configuration to
config/local.php
(DB, etc.)
- Check
config/params.php
, config/web.php
and config/console.php
and add project wide configuration
- Check
migrations/m140328_144900_init
to suit your user table schema.
- Check the models in
models/
and add/remove attributes.
- Run migrations with
yii migrate
This should get you started. Your app should now run in a base version and is ready to be
committed to your project repository., (*5)
Note: After the composer create-command
step a unique cookie validation key is automatically
generated and added to config/local.php
for you., (*6)
Note 2: composer update
above may fail with an error about github rate limit exceeded.
Have a look here
for how to resolve this issue., (*7)
Development
To keep this template updated with the latest package version, we should run composer update
from time to time and then commit composer.lock
., (*8)