《Lumen》笔记

思考点:
1、为什么说lavel比较臃肿?
2、学习这个是学习什么?
3、这里的设计模式是什么?思路是什么?
4、整个有借鉴的地方是什么?
5、用一句话来总结这个框架?

PSR-0、PSR-4规范区别

autoload会根据定义的PSR-4规范到目录app/下查找User.php文件; 在PSR-0规范下,则需要创建一个bpp/Bpp/User.php文件,而该文件中包 含Bpp\User类。这里的区别就在于PSR-4规范的目录不需要添加命名空 间“App”,而PSR-0规范的目录需要添加命名空间“Bpp”。

classmap是什么?

对于classmap会扫描指定目录中所有的.php和.inc文件,并加载到 vendor/composer/autoload_classmap.php文件中,在该文件中会实现一个 具体类与文件映射的关联数组,也可以直接精确指定一个文件。通过 classmap可以生成不遵循PSR-0和PSR-4规范的自动加载类库。

常用的PHP 语法

1、类的自动加载

类的自动加载可以通过魔术方法autoload(string 《Lumen》笔记 - 图1%E5%AE%9E%E7%8E%B0%EF%BC%8C%E4%B9%9F%E5%8F%AF%E4%BB%A5%E9%80%9A%20%E8%BF%87%E5%87%BD%E6%95%B0spl_autoload_register%E6%B3%A8%E5%86%8C%E4%B8%80%E4%B8%AA%E8%87%AA%E5%8A%A8%E5%8A%A0%E8%BD%BD%E6%96%B9%E6%B3%95%E3%80%82%E7%9B%B8%E5%BA%94%E5%AE%9E%E4%BE%8B%E5%A6%82%E4%B8%8B%EF%BC%9A%20function%20autoload(#card=math&code=class%29%E5%AE%9E%E7%8E%B0%EF%BC%8C%E4%B9%9F%E5%8F%AF%E4%BB%A5%E9%80%9A%20%E8%BF%87%E5%87%BD%E6%95%B0spl_autoload_register%E6%B3%A8%E5%86%8C%E4%B8%80%E4%B8%AA%E8%87%AA%E5%8A%A8%E5%8A%A0%E8%BD%BD%E6%96%B9%E6%B3%95%E3%80%82%E7%9B%B8%E5%BA%94%E5%AE%9E%E4%BE%8B%E5%A6%82%E4%B8%8B%EF%BC%9A%20function%20__autoload%28&id=n9gCt)class){ require_once( $class.”.php”); }

bool spl_autoload_register ([ callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]] ) 通过spl_autoload_register()函数加载的自动加载函数可以是全局函 数,也可以是某个类实例对象的函数,即通过array(“对象名”,”函数 名”)注册。

spl_autoload_register() 会添加类的自动加载函数到队列之首, 而不是队列尾部。具体实例如下: public function register(《Lumen》笔记 - 图2%20%7B%20spl_autoload_register(array(#card=math&code=prepend%20%3D%20false%29%20%7B%20spl_autoload_register%28array%28&id=dOaBZ)this, ‘loadClass’), true, $prepend); }

2、反射

反射机制被Ruby、PHP等多种语言广泛应用,主要用来动态地获取 系统中类、实例对象、方法等语言构件的信息,通过反射API函数可以 实现对这些语言构件信息的动态获取和动态操作等。PHP 5 具有完整的 反射API,添加了对类、接口、函数、方法和扩展进行反向工作的能 力。 此外,反射API 还提供了获取函数、类和方法等语言构件中的文档 的注释方法。下面介绍一个具体实例。