- 一、启动Yii2高级应用程序项目
- 二、美化路由
- 三、省略掉index.php的方法
- 四、修改yii2默认控制器
- 五、语言包的配置
启动Yii2高级应用程序项目
基础版只有一个只有一个web应用,高级版则生成前后台。建议使用高级版
- 2、mac下双击项目目录下的
init
美化路由
【方案】在config/web.php
文件的components关键字中添加如下
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
// 'suffix' => '.html', // 启动后缀
// 'rules' => [
// ],
],
原先 ...?r=site/about
=> .../site/about
yii2 省略掉index.php的方法
【方案】在入口文件(index.php)同级目录下(一般web目录下)新建.htaccess文件, 内容如下
# 用于去掉index.php
RewriteEngine on
# 如果是一个目录或者文件,就直接访问目录或文件
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
# otherwise forward it to index.php
RewriteRule . index.php
原先 http://localhost/basic/web/index.php?site/about
=> http://localhost/basic/web/site/about
修改yii2默认控制器
【方案】在./config/web.php
配置文件中的$conifg=[] 里添加了一行代码
'defaultRoute' => 'index', // 默认index控制器
添加后,实际效果是覆盖了框架自带的在./vendor/yiisoft/yii2/web/Application.php的第28行找到了:public $defaultRoute = ‘site’; 默认的site控制器
语言包的配置
- 1、在
./frontend/config/main.php
中return[...]
插入'language' => 'zh-CN',
- 2、在
main.php
中的component关键字中加入如下(i18n
和urlManager、request等同级
)
'i18n' => [
'translations' => [
'*' => [
// 引入语言包的配置类
'class' => 'yii\i18n\PhpMessageSource',
// 指向语言包的文件目录
'basePath' => '/messages',
// 语言包的指向文件
'fileMap' => [
'translate' => 'common.php',
],
]
],
],
- 3、
frontend
目录下新建文件夹messages
,再建zh-CN
中文翻译包文件夹下common.php
。即新建./frontend/messages/zh-CN/common.php
// common.php中对应字段翻译
<?php
return[
'Blog' => '博客',
];
4、使用语言包
./frontend/views/layouts/main.php
中将'brandLabel' => 'My Company',
改成
'brandLabel' => Yii::t('translate','Blog'),
44、或者使用存在的
yii
默认语言包Yii::t('yii', 'Home')
,