Skip to content

Commit 0270f2a

Browse files
committed
doc: trait 应用
1 parent 485e0b9 commit 0270f2a

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

laravel/readme/30. 2019-07-28-新特性trait在Laravel中的应用.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
## 新特性trait在Laravel中的应用
1+
## 新特性 trait 在 Laravel 中的应用
22

33
## trait 是什么?
44

55
Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用 method。Trait 和 Class 组合的语义定义了一种减少复杂性的方式,避免传统多继承和 Mixin 类相关典型问题。
66

77
Trait 和 Class 相似,但仅仅旨在用细粒度和一致的方式来组合功能。 无法通过 trait 自身来实例化。它为传统继承增加了水平特性的组合;也就是说,应用的几个 Class 之间不需要继承。
88

9-
简单来说trait就是解决php不能实现多继承的
9+
简单来说 trait 就是解决 php 不能实现多继承的
1010

1111

1212
## 具体的案例
1313

14-
如我们定义类的时候,很多都要做成单例模式,因此我们只需要定一个trait在需要单例的时候use trait就可以了。下面看下代码
14+
如我们定义类的时候,很多都要做成单例模式,因此我们只需要定一个 trait 在需要单例的时候 use trait 就可以了。下面看下代码
1515

1616
```php
1717

@@ -44,19 +44,19 @@ class Db {
4444

4545
```
4646

47-
## trait在Laravel中的应用
47+
## trait 在 Laravel 中的应用
4848

49-
laravel中大量的使用到了trait,下面我来拿比较那用的的Laravel Auth来看,首先执行
49+
laravel 中大量的使用到了 trait, 下面我来拿比较那用的的 Laravel Auth 来看,首先执行
5050

5151
```bash
5252
php artisan make:auth
5353
```
5454

55-
然后到app/Http/Controllers/Auth/ 目录下找到LoginController,你会发现LoginController中的代码比较少,只定义了一个use AuthenticatesUsers; 处理数据,登录之类的核心功能都不在这个控制器中。我们然后打开这个AuthenticatesUsers,你会发现所有有关login的功能都在这个文件里面
55+
然后到 app/Http/Controllers/Auth/ 目录下找到 LoginController,你会发现 LoginController 中的代码比较少,只定义了一个 use AuthenticatesUsers; 处理数据,登录之类的核心功能都不在这个控制器中。我们然后打开这个 AuthenticatesUsers,你会发现所有有关 login 的功能都在这个文件里面
5656

57-
那有同学就会感到疑问了,为什么不直接写到LoginController呢?下面我来给大家说下
57+
那有同学就会感到疑问了,为什么不直接写到 LoginController 呢?下面我来给大家说下
5858

59-
AuthenticatesUsers 这个里面实现了根login的业务逻辑,但是呢?所有的可配置的参数,可重写改的方法你都可以在LoginController中就实现重写,这样代码不就简洁了嘛。我们随意找一个举例,我们重写login的验证加入极验验证
59+
AuthenticatesUsers 这个里面实现了根 login 的业务逻辑,但是呢?所有的可配置的参数,可重写改的方法你都可以在 LoginController 中就实现重写,这样代码不就简洁了嘛。我们随意找一个举例,我们重写 login 的验证加入极验验证
6060

6161
```php
6262

@@ -86,7 +86,7 @@ class LoginController extends Controller
8686
}
8787

8888
/**
89-
* 重写login验证逻辑,增加极验验证
89+
* 重写 login 验证逻辑,增加极验验证
9090
*
9191
* @param \Illuminate\Http\Request $request
9292
* @return void

0 commit comments

Comments
 (0)