看项目源码进行学习,从不理解的点开始记录:
1、namespace
namespace app\admin\controller;
php基础,命名空间的概念,注意点:
- 避免和composer自动加载类库冲突,应用类库命名空间根都统一以app命名
- 命名空间通过关键字namespace来声明,如果一个文件中包含命名空间,它必须在所有代码之前声明命名空间
2、Traits引入
问题:什么是Traits?
解决:trait是一种为类似PHP的单继承语言而准备的代码复用机制。trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集。trait 和类组合的语义是定义了一种方式来减少复杂性,避免传统多继承和混入类(Mixin)相关的典型问题。
3、class类的概念
class AdminRole extends Controller
{
}
4、extends用法
概念:php类的继承
一个类可以在声明中用 extends,关键字继承另一个类的方法和属性。PHP不支持多重继承,一个类只能继承一个基类。
被继承的方法和属性可以通过用同样的名字重新声明被覆盖。但是如果父类定义方法时使用了 final,则该方法不可被覆盖。可以通过 parent:: 来访问被覆盖的方法或属性。
5、use的使用
在命名空间字符串过长时,使用use可以相应的缩短命名空间。
6、public private protected三者的含义
public 表示全局,类内部外部子类都可以访问;
private表示私有的,只有本类内部可以使用;
protected表示受保护的,只有本类或子类或父类中可以访问;