搭建getyii步骤

摘要:原始安装方法(推荐) 1、首先你要安装 Composer,然后你需要手动去新建一个数据库,比方说新建 getyii 数据库,如果想使用 emoji 表情的话,意见使用 utf8mb4 编码格式,不想用的话, 建议使用 utf8 编码格式。

原始安装方法(推荐)

1、首先你要安装 Composer,然后你需要手动去新建一个数据库,比方说新建 getyii 数据库,如果想使用 emoji 表情的话,意见使用 utf8mb4 编码格式,不想用的话, 建议使用 utf8 编码格式。

composer global require "fxp/composer-asset-plugin:~1.1.1"
git clone https://github.com/iiYii/getyii.git

cd getyii

composer install

php inittimg (36).jpg

2、然后使用运行我写的安装程序(帮你生成数据库表和假数据)

php yii install

####################安装过程##########################

apt-get install php-mbstring
apt-get install php-mcrypt

root@alex-virtual-machine:/www/getyii# php init
Yii Application Initialization Tool v1.0

Which environment do you want the application to be initialized in?

[0] Development
[1] Production

Your choice [0-1, or "q" to quit] 0

Initialize the application under \'Development\' environment? [yes|no] yes

Start initialization ...

generate backend/web/index-test.php
generate backend/web/index.php
generate backend/config/main-local.php
generate backend/config/params-local.php
generate console/config/main-local.php
generate console/config/params-local.php
generate frontend/web/index-test.php
generate frontend/web/index.php
generate frontend/config/main-local.php
generate frontend/config/params-local.php
generate yii
generate common/config/main-local.php
generate common/config/params-local.php
generate cookie validation key in backend/config/main-local.php
generate cookie validation key in frontend/config/main-local.php
chmod 0777 backend/runtime
chmod 0777 backend/web/assets
chmod 0777 frontend/runtime
chmod 0777 frontend/web/assets
chmod 0755 yii

... initialization completed.

root@alex-virtual-machine:/www/getyii# clear
root@alex-virtual-machine:/www/getyii# ls
ali-pay.png common composer.lock doc docker-files frontend init.bat README.md tests wechat-pay.png yii.bat
backend composer.json console Dockerfile environments init LICENSE.md requirements.php vendor yii
root@alex-virtual-machine:/www/getyii# cat yii
#!/usr/bin/env php
<?php
/**
* Yii console bootstrap file.
*
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/

defined(\'YII_DEBUG\') or define(\'YII_DEBUG\', true);
defined(\'YII_ENV\') or define(\'YII_ENV\', \'dev\');

// fcgi doesn\'t have STDIN and STDOUT defined by default
defined(\'STDIN\') or define(\'STDIN\', fopen(\'php://stdin\', \'r\'));
defined(\'STDOUT\') or define(\'STDOUT\', fopen(\'php://stdout\', \'w\'));

require(__DIR__ . \'/vendor/autoload.php\');
require(__DIR__ . \'/vendor/yiisoft/yii2/Yii.php\');
require(__DIR__ . \'/common/config/bootstrap.php\');
require(__DIR__ . \'/console/config/bootstrap.php\');

$config = yiihelpersArrayHelper::merge(
require(__DIR__ . \'/common/config/main.php\'),
require(__DIR__ . \'/common/config/main-local.php\'),
require(__DIR__ . \'/console/config/main.php\'),
require(__DIR__ . \'/console/config/main-local.php\')
);

$application = new yiiconsoleApplication($config);
$exitCode = $application->run();
exit($exitCode);
root@alex-virtual-machine:/www/getyii# clear

####先创建数据库####


create database getyii;

#######################################3

root@alex-virtual-machine:/www/getyii# php yii install


- Step 1 数据库配置
==================================================
默认数据库配置文件未找到,将进入数据库配置创建流程
请输入数据库主机地址: [localhost]
请输入数据库名称: [getyii]
请输入数据库访问账号: [root]
请输入数据库访问密码: 123456
请输入数据库表前缀(默认不使用):
请输入数据默认的字符集: [utf8mb4]
是否测试数据库可用? (yes|no) [yes]:yes
数据连接成功
生成数据库配置文件...
恭喜! 数据库配置完毕!


- Step 2 初始化数据库数据
==================================================

开始迁移数据库结构和数据
** 如无特殊需求,当询问是否迁移数据是回复yes既可 **


默认目录迁移: /www/getyii/console/migrations
Yii Migration Tool (based on Yii v2.0.11-dev)

Creating migration history table "migration"...Done.
Total 30 new migrations to be applied:
m130524_201442_init
m150104_071047_init_blog
m150104_091352_init_user
m150115_081356_create_user_info
m150201_142415_update_user
m150205_085033_update_post_comment
m150209_015931_setting_init
m150209_090406_create_user_account
m150211_070335_update_user_info
m150212_030127_update_user_info_and_post_meta
m150212_132400_create_topics_table
m150214_070754_update_post_meta
m150412_034147_update_site_setting
m150416_134819_create_notification_table
m150420_060807_update_post_table
m150424_025409_update_table_engine
m150424_031429_update_notification_table
m150424_100155_update_post_meta_table
m150425_031844_create_right_link
m150626_073539_create_nav
m150626_073559_create_nav_url
m150702_130239_create_session_init
m150805_085832_create_search_log_table
m150808_025734_update_table_character
m150829_091943_update_post_table
m160320_093621_create_merit_table
m160321_132724_add_donate_table
m160719_093527_modify_user
m190908_053628_init_admin
m190908_055507_init_data

Apply the above migrations? (yes|no) [no]:yes
*** applying m130524_201442_init
> create table {{%user}} ... done (time: 0.007s)
*** applied m130524_201442_init (time: 0.028s)

*** applying m150104_071047_init_blog
> create table {{%post_meta}} ... done (time: 0.007s)
> create index type on {{%post_meta}} (type) ... done (time: 0.011s)
> create table {{%post}} ... done (time: 0.014s)
> create index post_meta_id on {{%post}} (post_meta_id) ... done (time: 0.015s)
> create index tags on {{%post}} (tags) ... done (time: 0.008s)
> create index user_id on {{%post}} (user_id) ... done (time: 0.013s)
> create table {{%post_tag}} ... done (time: 0.005s)
> create table {{%post_comment}} ... done (time: 0.012s)
> create index post_id on {{%post_comment}} (post_id) ... done (time: 0.006s)
> create index user_id on {{%post_comment}} (user_id) ... done (time: 0.005s)
*** applied m150104_071047_init_blog (time: 0.104s)

*** applying m150104_091352_init_user
> add column avatar string DEFAULT NULL COMMENT \'头像\' AFTER `username` to table {{%user}} ... done (time: 0.002s)
> create table {{%user_meta}} ... done (time: 0.003s)
> create index type on {{%user_meta}} (type) ... done (time: 0.004s)
> create index user_id on {{%user_meta}} (user_id) ... done (time: 0.003s)
> create index target_id on {{%user_meta}} (target_id) ... done (time: 0.002s)
> create index target_type on {{%user_meta}} (target_type) ... done (time: 0.002s)
> create table {{%user_auth}} ... done (time: 0.003s)
> create index type on {{%user_auth}} (type) ... done (time: 0.003s)
> create index user_id on {{%user_auth}} (user_id) ... done (time: 0.003s)
*** applied m150104_091352_init_user (time: 0.029s)

*** applying m150115_081356_create_user_info
> create table {{%user_info}} ... done (time: 0.003s)
*** applied m150115_081356_create_user_info (time: 0.007s)

*** applying m150201_142415_update_user
> add column location string(10) DEFAULT NULL COMMENT "城市" AFTER `info` to table {{%user_info}} ... done (time: 0.002s)
> add column company string(40) DEFAULT NULL COMMENT "公司" AFTER `info` to table {{%user_info}} ... done (time: 0.002s)
> add column website string(100) DEFAULT NULL COMMENT "个人主页" AFTER `info` to table {{%user_info}} ... done (time: 0.002s)
> add column github string(100) DEFAULT NULL COMMENT "GitHub 帐号" AFTER `info` to table {{%user_info}} ... done (time: 0.001s)
> add column tagline string(40) DEFAULT NULL COMMENT "一句话介绍" AFTER `email` to table {{%user}} ... done (time: 0.001s)
*** applied m150201_142415_update_user (time: 0.014s)

*** applying m150205_085033_update_post_comment
> add column updated_at integer UNSIGNED NOT NULL DEFAULT \'0\' COMMENT \'修改时间\' to table {{%post_comment}} ... done (time: 0.002s)
> add column like_count integer UNSIGNED NOT NULL DEFAULT \'0\' COMMENT \'喜欢数\' AFTER `user_id` to table {{%post_comment}} ... done (time: 0.003s)
*** applied m150205_085033_update_post_comment (time: 0.008s)

*** applying m150209_015931_setting_init
> execute SQL: DROP TABLE IF EXISTS {{%setting}}; ... done (time: 0.001s)
> create table {{%setting}} ... done (time: 0.003s)
> create index parent_id on {{%setting}} (parent_id) ... done (time: 0.002s)
> create index code on {{%setting}} (code) ... done (time: 0.003s)
> create index sort_order on {{%setting}} (sort_order) ... done (time: 0.002s)
> execute SQL: INSERT INTO {{%setting}} (`id`, `parent_id`, `code`, `type`, `store_range`, `store_dir`, `value`, `sort_order`) VALUES
(11, 0, \'info\', \'group\', \'\', \'\', \'\', \'50\'),
(21, 0, \'basic\', \'group\', \'\', \'\', \'\', \'50\'),
(31, 0, \'smtp\', \'group\', \'\', \'\', \'\', \'50\'),
(41, 0, \'github\', \'group\', \'\', \'\', \'\', \'50\'),
(51, 0, \'google\', \'group\', \'\', \'\', \'\', \'50\'),
(1111, 11, \'siteName\', \'text\', \'\', \'\', \'Your Site\', \'50\'),
(1112, 11, \'siteTitle\', \'text\', \'\', \'\', \'Your Site Title\', \'50\'),
(1113, 11, \'siteKeyword\', \'text\', \'\', \'\', \'Your Site Keyword\', \'50\'),
(2111, 21, \'timezone\', \'select\', \'-12,-11,-10,-9,-8,-7,-6,-5,-4,-3.5,-3,-2,-1,0,1,2,3,3.5,4,4.5,5,5.5,5.75,6,6.5,7,8,9,9.5,10,11,12\', \'\', \'8\', \'50\'),
(2112, 21, \'commentCheck\', \'select\', \'0,1\', \'\', \'1\', \'50\'),
(3111, 31, \'smtpHost\', \'text\', \'\', \'\', \'localhost\', \'50\'),
(3112, 31, \'smtpPort\', \'text\', \'\', \'\', \'\', \'50\'),
(3113, 31, \'smtpUser\', \'text\', \'\', \'\', \'\', \'50\'),
(3114, 31, \'smtpPassword\', \'password\', \'\', \'\', \'\', \'50\'),
(3115, 31, \'smtpMail\', \'text\', \'\', \'\', \'\', \'50\'),
(4111, 41, \'githubLogin\', \'select\', \'0,1\', \'\', \'1\', \'50\'),
(4112, 41, \'githubClientId\', \'text\', \'\', \'\', \'\', \'50\'),
(4113, 41, \'githubClientSecret\', \'text\', \'\', \'\', \'\', \'50\'),
(5111, 51, \'googleLogin\', \'select\', \'0,1\', \'\', \'1\', \'50\'),
(5112, 51, \'googleClientId\', \'text\', \'\', \'\', \'\', \'50\'),
(5113, 51, \'googleClientSecret\', \'text\', \'\', \'\', \'\', \'50\')
... done (time: 0.002s)
*** applied m150209_015931_setting_init (time: 0.017s)

*** applying m150209_090406_create_user_account
> execute SQL: DROP TABLE IF EXISTS {{%user_auth}}; ... done (time: 0.001s)
> create table {{%user_account}} ... done (time: 0.004s)
> create index client_id on {{%user_account}} (client_id) ... done (time: 0.003s)
> create index user_id on {{%user_account}} (user_id) ... done (time: 0.003s)
*** applied m150209_090406_create_user_account (time: 0.016s)

*** applying m150211_070335_update_user_info
> add column like_count integer DEFAULT 0 COMMENT "被赞次数" AFTER `location` to table {{%user_info}} ... done (time: 0.002s)
> add column thanks_count integer DEFAULT 0 COMMENT "被感谢次数" AFTER `location` to table {{%user_info}} ... done (time: 0.002s)
> add column post_count integer DEFAULT 0 COMMENT "发布文章数" AFTER `location` to table {{%user_info}} ... done (time: 0.002s)
> add column comment_count integer DEFAULT 0 COMMENT "发布评论数" AFTER `location` to table {{%user_info}} ... done (time: 0.002s)
> add column view_count integer DEFAULT 0 COMMENT "个人主页浏览次数" AFTER `location` to table {{%user_info}} ... done (time: 0.002s)
*** applied m150211_070335_update_user_info (time: 0.014s)

*** applying m150212_030127_update_user_info_and_post_meta
> add column hate_count integer DEFAULT 0 COMMENT "喝倒彩次数" AFTER `like_count` to table {{%user_info}} ... done (time: 0.002s)
*** applied m150212_030127_update_user_info_and_post_meta (time: 0.006s)

*** applying m150212_132400_create_topics_table
> add column type string(32) DEFAULT "blog" COMMENT "内容类型" AFTER `id` to table {{%post}} ... done (time: 0.028s)
> alter column tags in table {{%post}} to string DEFAULT NULL COMMENT \'标签 用英文逗号隔开\' ... done (time: 0.030s)
> alter column post_meta_id in table {{%post}} to integer UNSIGNED NOT NULL COMMENT \'版块ID\' ... done (time: 0.002s)
> create index type on {{%post}} (type) ... done (time: 0.012s)
*** applied m150212_132400_create_topics_table (time: 0.075s)

*** applying m150214_070754_update_post_meta
> add column alias string(32) DEFAULT NULL COMMENT \'变量(别名)\' AFTER `name` to table {{%post_meta}} ... done (time: 0.003s)
> create index alias on {{%post_meta}} (alias) ... done (time: 0.002s)
*** applied m150214_070754_update_post_meta (time: 0.011s)

*** applying m150412_034147_update_site_setting
> execute SQL: DELETE FROM {{%setting}} WHERE `id` IN (
51, 5111, 5112, 5113
) ... done (time: 0.001s)
> execute SQL: UPDATE {{%setting}} SET `code` = \'account\' WHERE `id` = 41 ... done (time: 0.001s)
> execute SQL: INSERT INTO {{%setting}} (`id`, `parent_id`, `code`, `type`, `store_range`, `store_dir`, `value`, `sort_order`) VALUES
(1114, 11, \'siteAnalytics\', \'text\', \'\', \'\', \'Your Site Analytics\', \'50\'),
(4114, 41, \'googleLogin\', \'select\', \'0,1\', \'\', \'1\', \'50\'),
(4115, 41, \'googleClientId\', \'text\', \'\', \'\', \'\', \'50\'),
(4116, 41, \'googleClientSecret\', \'text\', \'\', \'\', \'\', \'50\'),
(4117, 41, \'weiboLogin\', \'select\', \'0,1\', \'\', \'1\', \'50\'),
(4118, 41, \'weiboClientId\', \'text\', \'\', \'\', \'\', \'50\'),
(4119, 41, \'weiboClientSecret\', \'text\', \'\', \'\', \'\', \'50\'),
(4120, 41, \'qqLogin\', \'select\', \'0,1\', \'\', \'1\', \'50\'),
(4121, 41, \'qqClientId\', \'text\', \'\', \'\', \'\', \'50\'),
(4122, 41, \'qqClientSecret\', \'text\', \'\', \'\', \'\', \'50\')
... done (time: 0.000s)
*** applied m150412_034147_update_site_setting (time: 0.005s)

*** applying m150416_134819_create_notification_table
> create table {{%notification}} ... done (time: 0.002s)
> create index type on {{%notification}} (type) ... done (time: 0.002s)
> create index post_id on {{%notification}} (post_id) ... done (time: 0.002s)
> create index user_id on {{%notification}} (user_id) ... done (time: 0.002s)
> add column notification_count integer UNSIGNED DEFAULT 0 COMMENT "通知条数" AFTER `tagline` to table {{%user}} ... done (time: 0.001s)
*** applied m150416_134819_create_notification_table (time: 0.013s)

*** applying m150420_060807_update_post_table
> add column follow_count integer UNSIGNED NOT NULL DEFAULT \'0\' COMMENT \'讨厌数\' AFTER `view_count` to table {{%post}} ... done (time: 0.026s)
*** applied m150420_060807_update_post_table (time: 0.033s)

*** applying m150424_025409_update_table_engine
> execute SQL: ALTER TABLE {{%notification}} ENGINE = InnoDB; ... done (time: 0.021s)
> execute SQL: ALTER TABLE {{%post}} ENGINE = InnoDB; ... done (time: 0.023s)
> execute SQL: ALTER TABLE {{%post_meta}} ENGINE = InnoDB; ... done (time: 0.015s)
> execute SQL: ALTER TABLE {{%user}} ENGINE = InnoDB; ... done (time: 0.013s)
> execute SQL: ALTER TABLE {{%user_info}} ENGINE = InnoDB; ... done (time: 0.014s)
> execute SQL: ALTER TABLE {{%user_meta}} ENGINE = InnoDB; ... done (time: 0.014s)
*** applied m150424_025409_update_table_engine (time: 0.106s)

*** applying m150424_031429_update_notification_table
> add column status boolean UNSIGNED NOT NULL DEFAULT \'1\' COMMENT \'状态 1显示 0不显示\' AFTER `data` to table {{%notification}} ... done (time: 0.035s)
*** applied m150424_031429_update_notification_table (time: 0.041s)

*** applying m150424_100155_update_post_meta_table
> add column parent integer UNSIGNED DEFAULT NULL COMMENT \'父级ID\' AFTER `name` to table {{%post_meta}} ... done (time: 0.019s)
*** applied m150424_100155_update_post_meta_table (time: 0.023s)

*** applying m150425_031844_create_right_link
> execute SQL: DROP TABLE IF EXISTS {{%rightlink}} ... done (time: 0.001s)
> create table {{%right_link}} ... done (time: 0.002s)
> create index type_index on {{%right_link}} (type) ... done (time: 0.002s)
*** applied m150425_031844_create_right_link (time: 0.008s)

*** applying m150626_073539_create_nav
> execute SQL: DROP TABLE IF EXISTS {{%nav}} ... done (time: 0.001s)
> create table {{%nav}} ... done (time: 0.005s)
*** applied m150626_073539_create_nav (time: 0.010s)

*** applying m150626_073559_create_nav_url
> execute SQL: DROP TABLE IF EXISTS {{%nav_url}} ... done (time: 0.001s)
> create table {{%nav_url}} ... done (time: 0.129s)
*** applied m150626_073559_create_nav_url (time: 0.134s)

*** applying m150702_130239_create_session_init
> create table {{%session}} ... done (time: 0.005s)
> add primary key idx on {{%session}} (id) ... done (time: 0.018s)
> create index idx_expire on {{%session}} (expire) ... done (time: 0.010s)
> add column session_id string(100) DEFAULT NULL AFTER `last_login_ip` to table {{%user_info}} ... done (time: 0.019s)
*** applied m150702_130239_create_session_init (time: 0.056s)

*** applying m150805_085832_create_search_log_table
> create table {{%search_log}} ... done (time: 0.002s)
> create index keyword on {{%search_log}} (keyword) ... done (time: 0.003s)
> create index user_id on {{%search_log}} (user_id) ... done (time: 0.002s)
*** applied m150805_085832_create_search_log_table (time: 0.013s)

*** applying m150808_025734_update_table_character
> execute SQL: ALTER TABLE {{%post_comment}} MODIFY COLUMN `comment` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ... done (time: 0.003s)
> execute SQL: ALTER TABLE {{%post}} MODIFY COLUMN `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ... done (time: 0.021s)
> execute SQL: ALTER TABLE {{%notification}} MODIFY COLUMN `data` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ... done (time: 0.019s)
*** applied m150808_025734_update_table_character (time: 0.049s)

*** applying m150829_091943_update_post_table
> add column last_comment_username string(20) DEFAULT NULL COMMENT "最后评论用户" AFTER `tags` to table {{%post}} ... done (time: 0.018s)
> add column last_comment_time integer DEFAULT NULL COMMENT "最后评论用户" AFTER `tags` to table {{%post}} ... done (time: 0.016s)
*** applied m150829_091943_update_post_table (time: 0.039s)

*** applying m160320_093621_create_merit_table
> execute SQL: DROP TABLE IF EXISTS {{%merit_template}};
DROP TABLE IF EXISTS {{%merit}};
DROP TABLE IF EXISTS {{%merit_log}};
... done (time: 0.001s)
> create table {{%merit_template}} ... done (time: 0.008s)
> create index type on {{%merit_template}} (type) ... done (time: 0.004s)
> create index unique_id on {{%merit_template}} (unique_id) ... done (time: 0.008s)
> create table {{%merit}} ... done (time: 0.006s)
> create index type on {{%merit}} (type) ... done (time: 0.006s)
> create index user_id on {{%merit}} (user_id) ... done (time: 0.006s)
> create table {{%merit_log}} ... done (time: 0.008s)
> create index type on {{%merit_log}} (type) ... done (time: 0.005s)
> create index user_id on {{%merit_log}} (user_id) ... done (time: 0.008s)
> create index merit_template_id on {{%merit_log}} (merit_template_id) ... done (time: 0.009s)
*** applied m160320_093621_create_merit_table (time: 0.071s)

*** applying m160321_132724_add_donate_table
> create table {{%donate}} ... done (time: 0.003s)
> create index user_id on {{%donate}} (user_id) ... done (time: 0.002s)
*** applied m160321_132724_add_donate_table (time: 0.011s)

*** applying m160719_093527_modify_user
> create unique index idx_username on {{%user}} (username) ... done (time: 0.008s)
*** applied m160719_093527_modify_user (time: 0.012s)

*** applying m190908_053628_init_admin

请先创建创始人账户:
请输入创始人用户名 [admin]
请输入创始人邮箱 [admin@admin.com] hyrxb@163.com
请输入创始人密码 [123456]
创始人创建成功
*** applied m190908_053628_init_admin (time: 14.117s)

*** applying m190908_055507_init_data
是否生成测试问题数据? (yes|no) [yes]:yes
[> ] 0% (0/100) ETA: n/a > execute SQL: INSERT INTO {{%merit_template}} (`id`, `type`, `title`, `unique_id`, `method`, `event`, `action_type`, `rule_key`, `rule_value`, `increment`, `status`, `created_at`, `updated_at`) VALUES
(1, 1, \'登录\', \'site/login\', 2, 0, 2, 1, 1, 2, 1, 1458657160, 1458823425),
(2, 1, \'发帖\', \'topic/default/create\', 2, 0, 2, 0, NULL, 6, 1, 1458657218, 1458657218),
(3, 1, \'回复\', \'topic/comment/create\', 2, 0, 2, 0, NULL, 4, 1, 1458657251, 1458657251),
(4, 1, \'发动弹\', \'tweet/default/create\', 2, 0, 2, 0, NULL, 4, 1, 1458657296, 1468647701);
... done (time: 0.000s)
[====================================================================================================================================================================================] 100% (100/100) ETA: 0 sec.
*** applied m190908_055507_init_data (time: 6.180s)


30 migrations were applied.

Migrated up successfully.
恭喜, 站点配置成功!

配置nginx 虚拟主机


server {
charset utf-8;
client_max_body_size 128M;

listen 80; ## listen for ipv4
#listen [::]:80 default_server ipv6only=on; ## listen for ipv6

server_name www.bbs.com;
root /www/getyii/frontend/web/;
index index.php index.html;

access_log /www/log/access.log;
error_log /www/log/error.log;

location / {
# Redirect everything that isn\'t a real file to index.php
try_files $uri $uri/ /index.php$is_args$args;
}

# uncomment to avoid processing of calls to non-existing static files by Yii
#location ~ .(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
# try_files $uri =404;
#}
#error_page 404 /404.html;

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}


location ~* /. {
deny all;
}
}

https://github.com/iiYii/getyii