, (*1)
Yii Application Template
Application template for Yii 3 is best for rapidly creating projects
, (*2)
Web application template for Yii 3., (*3)
, (*4)
Requirements
Local installation
If you do not have Composer, you may install it by following the instructions
at getcomposer.org., (*5)
Create a project:, (*6)
composer create-project --stability=dev yiisoft/app myproject
cd myproject
To run the app:, (*7)
./yii serve
Now you should be able to access the application through the URL printed to console.
Usually it is http://localhost:8080
., (*8)
Installation with Docker
Fork the repository, clone it, then:, (*9)
cd myproject
make composer update
To run the app:, (*10)
make up
To stop the app:, (*11)
make down
The application is available at https://localhost
., (*12)
Directory structure
The application template has the following structure:, (*13)
config/ Configuration files.
docker/ Docker-specific files.
docs/ Documentation.
public/ Files publically accessible from the Internet.
assets/ Published assets.
index.php Entry script.
resources/ Application resources.
assets/ Asset bundle resources.
layout/ Layout view templates.
messages/
views/ View templates.
runtime/ Files generated during runtime.
src/ Application source code.
Asset/ Asset bundle definitions.
Command/ Console commands.
Controller/ Web controller classes.
EventHandler/
Handler/
ViewInjection/
tests/ A set of Codeception tests for the application.
vendor/ Installed Composer packages.
Makefile Config for make command.
Configuration
You can find configuration in config
directory. There are multiple configs,
and the most interesting is common\params.php
. Below there are details about its sections:, (*14)
Application Services
There are multiple pre-configured application services., (*15)
Aliases
'yiisoft/aliases' => [
'aliases' => [
// standard directory aliases
'@root' => dirname(__DIR__),
'@assets' => '@root/public/assets',
'@assetsUrl' => '/assets',
'@npm' => '@root/node_modules',
'@public' => '@root/public',
'@resources' => '@root/resources',
'@runtime' => '@root/runtime',
'@views' => '@root/resources/views'
],
],
See "Aliases" in the guide., (*16)
Cache
'yiisoft/cache-file' => [
'file-cache' => [
// cache directory path
'path' => '@runtime/cache'
],
],
Log Target File
use Psr\Log\LogLevel;
'yiisoft/log-target-file' => [
'file-target' => [
// route directory file log
'file' => '@runtime/logs/app.log',
// levels logs target
'levels' => [
LogLevel::EMERGENCY,
LogLevel::ERROR,
LogLevel::WARNING,
LogLevel::INFO,
LogLevel::DEBUG,
],
],
'file-rotator' => [
// maximum file size, in kilobytes. Defaults to 10240, meaning 10MB.
'maxfilesize' => 10,
// number of files used for rotation. Defaults to 5.
'maxfiles' => 5,
// the permission to be set for newly created files.
'filemode' => null,
// Whether to rotate files by copy and truncate in contrast to rotation by renaming files.
'rotatebycopy' => null
],
],
See "Logging" in the guide., (*17)
Session
'yiisoft/session' => [
'session' => [
// options for cookies
'options' => ['cookie_secure' => 0],
// session handler
'handler' => null
],
],
View
'yiisoft/view' => [
// Custom parameters that are shared among view templates.
'defaultParameters' => [
'applicationParameters' => 'App\ApplicationParameters',
'assetManager' => 'Yiisoft\Assets\AssetManager',
],
'theme' => [
// Apply pathMap example: ['@resources/layout' => '@resources/theme'] in yiisoft/app
// Apply pathMap example: ['@resources/layout' => '@modulealiases/theme'] in module
'pathMap' => [],
'basePath' => '',
'baseUrl' => '',
],
],
Yii Debug
'yiisoft/yii-debug' => [
// enabled/disabled debugger
'enabled' => true
],
Application Layout Parameters
'app' => [
'charset' => 'UTF-8',
'language' => 'en',
'name' => 'My Project',
],
Testing
The template comes with ready to use Codeception configuration.
To execute tests, in local installation run:, (*18)
./vendor/bin/codecept build
./yii serve > ./runtime/yii.log 2>&1 &
./vendor/bin/codecept run
For Docker:, (*19)
make codecept build
make codecept run
Static analysis
The code is statically analyzed with Psalm. To run static analysis:, (*20)
./vendor/bin/psalm
or, using Docker:, (*21)
make psalm
Support
If you need help or have a question, the Yii Forum is a good place for that.
You may also check out other Yii Community Resources., (*22)
License
The Yii application template is free software. It is released under the terms of the BSD License.
Please see LICENSE
for more information., (*23)
Maintained by Yii Software., (*24)
Support the project
, (*25)
Follow updates
, (*26)