×
关于 Yii(About Yii)从 Yii 1.1 升级

入门(Getting Started)

安装 Yii运行应用第一次问候使用 Forms玩转 Databases用 Gii 生成代码更上一层楼(Looking Ahead)

应用结构

结构概述(Overview)入口脚本(Entry Scripts)应用(Applications)应用组件(Components)控制器(Controllers)模型(Models)视图(Views)模块(Modules)过滤器(Filters)小部件(Widgets)前端资源(Assets)扩展(Extensions)

请求处理

运行概述(Overview)引导(Bootstrapping)路由引导与创建 URL请求(Requests)响应(Responses)Sessions and Cookies错误处理(Handling Errors)日志(Logging)

关键概念(Key Concepts)

组件(Components)属性(Properties)事件(Events)行为(Behaviors)配置(Configurations)别名(Aliases)类自动加载(Class Autoloading)服务定位器(Service Locator)依赖注入容器

配合数据库工作

数据库访问(Data Access)查询生成器(Query Builder)活动记录(Active Record)数据库迁移(Migrations)SphinxRedisMongoDBElasticSearch

接收用户数据

创建表单(Creating Forms)输入验证(Validating Input)文件上传(Uploading Files)收集列表输入多模型同时输入在客户端扩展 ActiveForm

显示数据

格式化输出数据分页(Pagination)排序(Sorting)数据提供器(Data Providers)数据小部件(Data Widgets)操作客户端脚本主题(Theming)

安全(Security)

认证(Authentication)授权(Authorization)处理密码(Passwords)加密(Cryptography)客户端认证(Auth Clients)安全领域的最佳实践

缓存(Caching)

概述(Overview)数据缓存(Data Caching)片段缓存(Fragment Caching)分页缓存(Page Caching)HTTP 缓存(HTTP Caching)

RESTful Web 服务

快速入门(Quick Start)资源(Resources)控制器(Controllers)路由(Routing)格式化响应(Response Formatting)授权验证(Authentication)速率限制(Rate Limiting)版本化(Versioning)错误处理(Error Handling)

开发工具

调试工具栏和调试器使用 Gii 生成代码TBD 生成 API 文档

测试(Testing)

概述(Overview)搭建测试环境单元测试(Unit Tests)功能测试(Functional Tests)验收测试(Acceptance Tests)测试夹具(Fixtures)

高级专题(Special Topics)

高级应用模版从头构建自定义模版控制台命令核心验证器(Core Validators)Docker国际化(Internationalization)收发邮件(Mailing)性能优化共享主机环境模板引擎集成第三方代码使用 Yii 作为微框架

小部件(Widgets)

Bootstrap 小部件jQuery UI 小部件

助手类(Helpers)

助手一览(Overview)Array 助手(ArrayHelper)Html 助手(Html)Url 助手(Url)

共享主机环境(Shared Hosting Environment)


共享的托管环境常常会对目录结构以及配置文件有较多的限制。然而,在大多数情况下,你仍可以通过少量的修改以在共享托管环境下运行 Yii 2.0。

部署一个基础应用模板

由于共享托管环境往往只有一个 webroot,如果可能,请优先使用基础项目模板( basic project template )构建你的应用程序。参考 安装 Yii 章节在本地安装基础项目模板。当你让应用程序在本地正常运行后,我们将要做少量的修改以让它可以在共享托管服务器运行。

重命名 webroot

用FTP或者其他的工具连接到你的托管服务器,你可能看到类似如下的目录结构:

config
logs
www

在以上,www 是你的 web 服务器的 webroot 目录。不同的托管环境下名称可能各不相同,通常是类似: wwwhtdocs, 和public_html 之类的名称。

对于我们的基础项目模板而言,其 webroot 名为 web 。 在你上传你的应用程序到 web 服务器上去之前,将你的本地 webroot 重命名以匹配服务器。 即: 从 web 改为 wwwpublic_html 或者其他你的托管环境的 webroot 名称。

FTP 根目录可写

如果你有 FTP 根目录的写权限,即,有 configlogs 和 www 的根目录,那么,如本地根目录相同的结构上传 assets,commands 等目录。

增加 web 服务器的额外配置

如果你的 web 服务器是 Apache,你需要增加一个包含如下内容的 .htaccess 文件到你的 web 目录(或者 public_html 根据实际情况而定,是你的 index.php 文件所在的目录)。

Options +FollowSymLinks
IndexIgnore */*

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

对于nginx而言,你不需要额外的配置文件。

检查环境要求

为了运行 Yii ,你的 web 服务器必须匹配它的环境要求。最低的要求必须是 PHP 5.4。为了检查环境配置,将 requirements.php 从你的根目录拷贝到 webroot 目录,并通过浏览器输入 URL http://example.com/requirements.php 运行它。最后,检查结束后别忘了删除这个文件哦!

部署一个高级应用程序模板

部署一个高级应用程序到共享的托管环境比基础应用要麻烦的原因在于它包含有两个 webroot 目录,而共享的托管环境不支持两个。对于这种情况,我们需要调整目录结构。

将入口文件移动到同一个 webroot

首先我们需要一个 webroot 目录,如重命名 webroot一节所述,创建一个新的跟你的托管环境 webroot 同名的目录,如类似 www 或者public_html 的名字。创建如下的目录结构,其中 www 目录指代你刚刚创建的 webroot 目录。

www
    admin
backend
common
console
environments
frontend
...

www 目录是我们的前台目录,所以将 frontend/web 里面的内容移到这个目录。 将 backend/web 里面的内容移到 www/admin 目录。对于每种情况下,你需要调整`index.php 和 index-test.php` 里面引用的目录结构。

分离 Session 和 Cookie

通常情况下,backend 和 frontend 运行在不同的域下,当我们将其都移到同一个域时, frontend 和 backend 将会共享相同的 cookie,这样会造成冲突。为了修复这个问题,如下调整 backend 的应用程序配置文件 backend/config/main.php

'components' => [
    'request' => [
        'csrfParam' => '_backendCSRF',
        'csrfCookie' => [
            'httpOnly' => true,
            'path' => '/admin',
        ],
    ],
    'user' => [
        'identityCookie' => [
            'name' => '_backendIdentity',
            'path' => '/admin',
            'httpOnly' => true,
        ],
    ],
    'session' => [
        'name' => 'BACKENDSESSID',
        'cookieParams' => [
            'path' => '/admin',
        ],
    ],
],

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)