Merge pull request #90 from yiichina/doc

Doc
This commit is contained in:
cuiliang
2018-11-04 19:27:20 +08:00
committed by GitHub
5 changed files with 51 additions and 51 deletions

View File

@ -260,7 +260,7 @@ $array = [
['id' => '123', 'name' => 'aaa', 'class' => 'x'], ['id' => '123', 'name' => 'aaa', 'class' => 'x'],
['id' => '124', 'name' => 'bbb', 'class' => 'x'], ['id' => '124', 'name' => 'bbb', 'class' => 'x'],
['id' => '345', 'name' => 'ccc', 'class' => 'y'], ['id' => '345', 'name' => 'ccc', 'class' => 'y'],
); ];
$result = ArrayHelper::map($array, 'id', 'name'); $result = ArrayHelper::map($array, 'id', 'name');
// 结果是: // 结果是:

View File

@ -25,7 +25,7 @@ RESTful 的 API 都是关于访问和操作 *资源*可将资源看成MVC模
当 RESTful API 响应中包含一个资源时,该资源需要序列化成一个字符串。 当 RESTful API 响应中包含一个资源时,该资源需要序列化成一个字符串。
Yii将这个过程分成两步首先资源会被 [[yii\rest\Serializer]] 转换成数组, Yii将这个过程分成两步首先资源会被 [[yii\rest\Serializer]] 转换成数组,
然后,该数组会通过 [[yii\web\ResponseFormatterInterface|response formatters]] 然后,该数组会通过 [[yii\web\ResponseFormatterInterface|response formatters]]
根据请求格式(如JSON, XML)被序列化成字符串。 根据请求格式(如 JSONXML被序列化成字符串。
当开发一个资源类时应重点关注第一步。 当开发一个资源类时应重点关注第一步。
通过覆盖 [[yii\base\Model::fields()|fields()]] 和/或 通过覆盖 [[yii\base\Model::fields()|fields()]] 和/或
@ -44,7 +44,7 @@ http://localhost/users?fields=id,email
// 返回 fields() 方法申明的所有字段,以及 extraFields() 方法中的 profile 字段 // 返回 fields() 方法申明的所有字段,以及 extraFields() 方法中的 profile 字段
http://localhost/users?expand=profile http://localhost/users?expand=profile
// 返回fields()extraFields()方法中提供的id, email 和 profile字段 // 返回 fields() 方法中的 id, email以及 extraFields() 方法中 profile 字段
http://localhost/users?fields=id,email&expand=profile http://localhost/users?fields=id,email&expand=profile
``` ```
@ -92,8 +92,8 @@ public function fields()
> Warning: 模型的所有属性默认会被包含到API结果中 > Warning: 模型的所有属性默认会被包含到API结果中
> 应检查数据确保没包含敏感数据,如果有敏感数据, > 应检查数据确保没包含敏感数据,如果有敏感数据,
> 应覆盖`fields()`过滤掉,在上述例子中,我们选择过滤掉 `auth_key`, > 应覆盖 `fields()` 过滤掉,在上述例子中,我们选择过滤掉 `auth_key`
> `password_hash` 和 `password_reset_token`. > `password_hash` 和 `password_reset_token`
### 覆盖 `extraFields()` 方法 <span id="overriding-extra-fields"></span> ### 覆盖 `extraFields()` 方法 <span id="overriding-extra-fields"></span>
@ -117,7 +117,7 @@ public function extraFields()
} }
``` ```
`http://localhost/users?fields=id,email&expand=profile` 的请求可能返回如下JSON 数据: `http://localhost/users?fields=id,email&expand=profile` 的请求可能返回如下 JSON 数据
```php ```php
[ [
@ -211,10 +211,10 @@ class UserResource extends Model implements Linkable
资源对象可以组成 *集合* 资源对象可以组成 *集合*
每个集合包含一组相同类型的资源对象。 每个集合包含一组相同类型的资源对象。
集合可被展现成数组,更多情况下展现成 [data providers](output-data-providers.md). 集合可被展现成数组,更多情况下展现成 [data providers](output-data-providers.md)
因为 data providers 支持资源的排序和分页,这个特性在 RESTful API 返回集合时也用到, 因为 data providers 支持资源的排序和分页,这个特性在 RESTful API 返回集合时也用到,
例如 This is because data providers support sorting and pagination 例如 This is because data providers support sorting and pagination
如下操作返回post资源的data provider: 如下操作返回 post 资源的 data provider
```php ```php
namespace app\controllers; namespace app\controllers;
@ -238,11 +238,11 @@ class PostController extends Controller
[[yii\rest\Serializer]] 会取出资源的当前页并组装成资源对象数组, [[yii\rest\Serializer]] 会取出资源的当前页并组装成资源对象数组,
[[yii\rest\Serializer]] 也通过如下 HTTP 头包含页码信息: [[yii\rest\Serializer]] 也通过如下 HTTP 头包含页码信息:
* `X-Pagination-Total-Count`: 资源所有数量; * `X-Pagination-Total-Count`资源所有数量
* `X-Pagination-Page-Count`: 页数; * `X-Pagination-Page-Count`页数
* `X-Pagination-Current-Page`: 当前页(从1开始); * `X-Pagination-Current-Page`当前页(从 1 开始);
* `X-Pagination-Per-Page`: 每页资源数量; * `X-Pagination-Per-Page`每页资源数量
* `Link`: 允许客户端一页一页遍历资源的导航链接集合. * `Link`允许客户端一页一页遍历资源的导航链接集合
可在[快速入门](rest-quick-start.md#trying-it-out) 一节中找到样例. 可在[快速入门](rest-quick-start.md#trying-it-out) 一节中找到样例

View File

@ -43,15 +43,15 @@ $url = Url::to(['post/view', 'id' => 100]);
- 默认URL格式 - 默认URL格式
- 美化URL格式。 - 美化URL格式。
默认URL格式用一个参数`r`表示路由, 默认URL格式使用一个参数`r`表示路由,
并且用一般的参数格式表示请求参数。例如,`/index.php?r=post/view&id=100`表示路由为`post/view`,参数`id`为100。 并且使用一般的参数格式表示请求参数。例如,`/index.php?r=post/view&id=100`表示路由为`post/view`,参数`id`为100。
默认URL格式不需要为[[yii\web\UrlManager|URL管理器]]做任何配置, 默认URL格式不需要为[[yii\web\UrlManager|URL管理器]]做任何配置,
并且在任何Web服务器都可以正常用。 并且在任何Web服务器都可以正常使用。
美化URL格式在脚本名称后面使用更多的路径信息表示路由和参数信息。 美化URL格式在脚本名称后面使用更多的路径信息表示路由和参数信息。
例如,用适当的[[yii\web\UrlManager::rules|URL规则]]`/index.php/post/100`中附加的路径信息`/post/100`表示 例如,用适当的[[yii\web\UrlManager::rules|URL规则]]`/index.php/post/100`中附加的路径信息`/post/100`表示
路由为`post/view`,参数`id`为100。 路由为`post/view`,参数`id`为100。
用美化的URL格式你需要根据实际的需求 使用美化的URL格式你需要根据实际的需求
设计一组[[yii\web\UrlManager::rules|URL规则]]来规定URL的样式。 设计一组[[yii\web\UrlManager::rules|URL规则]]来规定URL的样式。
你可以仅设置[[yii\web\UrlManager|URL管理器]]中的[[yii\web\UrlManager::enablePrettyUrl|开启美化URL]]来切换两种URL格式 你可以仅设置[[yii\web\UrlManager|URL管理器]]中的[[yii\web\UrlManager::enablePrettyUrl|开启美化URL]]来切换两种URL格式
@ -69,7 +69,7 @@ $url = Url::to(['post/view', 'id' => 100]);
如果使用默认URL格式解析请求到路由只是简单的从`GET`请求中得到命名为`r`的参数。 如果使用默认URL格式解析请求到路由只是简单的从`GET`请求中得到命名为`r`的参数。
用美化URL格式时[[yii\web\UrlManager|URL管理器]]将检查注册的[[yii\web\UrlManager::rules|URL规则]] 使用用美化URL格式时[[yii\web\UrlManager|URL管理器]]将检查注册的[[yii\web\UrlManager::rules|URL规则]]
找到一条可以匹配的将请求转到路由的规则。 找到一条可以匹配的将请求转到路由的规则。
如果找不到任何匹配的规则,系统将抛出[[yii\web\NotFoundHttpException]]异常。 如果找不到任何匹配的规则,系统将抛出[[yii\web\NotFoundHttpException]]异常。
@ -280,7 +280,7 @@ echo Url::previous();
> Note: 如果你想在URL中隐藏入口脚本名称除了要设置 [[yii\web\UrlManager::showScriptName|showScriptName]] 为 false > Note: 如果你想在URL中隐藏入口脚本名称除了要设置 [[yii\web\UrlManager::showScriptName|showScriptName]] 为 false
同时应该配置 Web 服务,处理当请求 URL 没有特殊指定入口脚本时确定要执行哪个PHP文件 同时应该配置 Web 服务,处理当请求 URL 没有特殊指定入口脚本时确定要执行哪个PHP文件
如果你用 Apache Web server你可以参考[安装](start-installation.md#recommended-apache-configuration)中推荐的配置。 如果你使用 Apache Web server你可以参考[安装](start-installation.md#recommended-apache-configuration)中推荐的配置。
@ -685,7 +685,7 @@ URL规范器可以针对URL管理器全局配置也可以针对规则单独
在开发复杂的 Web 应用程序时,优化 URL 规则非常重要,以便解析请求和创建 URL 所需 在开发复杂的 Web 应用程序时,优化 URL 规则非常重要,以便解析请求和创建 URL 所需
的时间更少。 的时间更少。
通过使用参数化路由,您可以减少 URL 规则的数量,这可以显提高性能。 通过使用参数化路由,您可以减少 URL 规则的数量,这可以显提高性能。
当解析或创建URL时[[yii\web\UrlManager|URL manager]] 按照它们声明的顺序检查 URL 规则。 当解析或创建URL时[[yii\web\UrlManager|URL manager]] 按照它们声明的顺序检查 URL 规则。
因此,您可以考虑调整 URL 规则的顺序,以便在较少使用的规则之前放置更具体和/或更常用的规则。 因此,您可以考虑调整 URL 规则的顺序,以便在较少使用的规则之前放置更具体和/或更常用的规则。

View File

@ -13,8 +13,8 @@ use yii\jui\DatePicker;
<?= DatePicker::widget(['name' => 'date']) ?> <?= DatePicker::widget(['name' => 'date']) ?>
``` ```
Yii提供许多优秀的小部件比如[[yii\widgets\ActiveForm|active form]], [[yii\widgets\Menu|menu]], Yii提供许多优秀的小部件比如 [[yii\widgets\ActiveForm|active form]][[yii\widgets\Menu|menu]]
[jQuery UI widgets](widget-jui.md), [jQuery UI widgets](widget-jui.md)
[Twitter Bootstrap widgets](widget-bootstrap.md)。 [Twitter Bootstrap widgets](widget-bootstrap.md)。
接下来介绍小部件的基本知识,如果你想了解某个小部件请参考对应的类 API 文档。 接下来介绍小部件的基本知识,如果你想了解某个小部件请参考对应的类 API 文档。
@ -42,7 +42,7 @@ use yii\jui\DatePicker;
一些小部件可在 [[yii\base\Widget::begin()]] 一些小部件可在 [[yii\base\Widget::begin()]]
和 [[yii\base\Widget::end()]] 调用中使用数据内容。 和 [[yii\base\Widget::end()]] 调用中使用数据内容。
例如如下代码使用 [[yii\widgets\ActiveForm]] 小部件生成一个登录表单, 例如如下代码使用 [[yii\widgets\ActiveForm]] 小部件生成一个登录表单,
小部件会在`begin()`0 `end()`执行处分别生成`<form>`的开始标签和结束标签, 小部件会在 `begin()``end()` 执行处分别生成 `<form>` 的开始标签和结束标签,
中间的任何代码也会被渲染。 中间的任何代码也会被渲染。
```php ```php
@ -74,13 +74,13 @@ use yii\helpers\Html;
### 配置全局默认值 ### 配置全局默认值
小部件的全局默认值可以通过 DI 容器配置: 小部件的全局默认值可以通过 DI 容器配置
```php ```php
\Yii::$container->set('yii\widgets\LinkPager', ['maxButtonCount' => 5]); \Yii::$container->set('yii\widgets\LinkPager', ['maxButtonCount' => 5]);
``` ```
详见 [依赖注入容器 "实践中的应用" 一节](concept-di-container.md#practical-usage) 。 详见 [依赖注入容器实践中的应用一节](concept-di-container.md#practical-usage) 。
## 创建小部件 <span id="creating-widgets"></span> ## 创建小部件 <span id="creating-widgets"></span>
@ -88,7 +88,7 @@ use yii\helpers\Html;
继承 [[yii\base\Widget]] 类并覆盖 [[yii\base\Widget::init()]] 和/或 继承 [[yii\base\Widget]] 类并覆盖 [[yii\base\Widget::init()]] 和/或
[[yii\base\Widget::run()]] 方法可创建小部件。通常`init()` 方法处理小部件属性, [[yii\base\Widget::run()]] 方法可创建小部件。通常`init()` 方法处理小部件属性,
`run()` 方法包含小部件生成渲染结果的代码。 `run()` 方法包含小部件生成渲染结果的代码。
渲染结果可`run()`方法中直接"echoed"输出或以字符串返回。 渲染结果可以直接“输出”或通过 `run()` 方法作为字符串返回。
如下代码中 `HelloWidget` 编码并显示赋给 `message` 属性的值, 如下代码中 `HelloWidget` 编码并显示赋给 `message` 属性的值,
如果属性没有被赋值,默认会显示 "Hello World"。 如果属性没有被赋值,默认会显示 "Hello World"。

View File

@ -54,7 +54,7 @@ $redis = Yii::$app->redis;
// 判断 key 为 username 的是否有值,有则打印,没有则赋值 // 判断 key 为 username 的是否有值,有则打印,没有则赋值
$key = 'username'; $key = 'username';
if ($val = $redis->get($key);) { if ($val = $redis->get($key)) {
var_dump($val); var_dump($val);
} else { } else {
$redis->set($key, 'marko'); $redis->set($key, 'marko');