composer
一个php的包管理的,很近似于npm, 他也是默认不全局的,只是配置某个工程,然后通过json文件自动下载依赖
composer.lock
是个特殊的文件,记录了创建时各个package的版本,这样下次install的时候保证版本严格一致
autoload
这个脚本会自动load相应依赖,所以在工程中只要require了这个,那么这些package可以直接拿来使用
require可以返回一个instance,可以后期add package
|
|
You can even add your own code to the autoloader by adding an autoload field to composer.json.
|
|
create a library
As soon as you have a composer.json in a directory, that directory is a package. When you add a require to a project, you are making a package that depends on other packages. The only difference between your project and libraries is that your project is a package without a name.
Tip
- 函数内的变量是不受{}scope控制的。类似于js
- PHP接受显式的函数参数类型指派,我比较倾向于显示的指出
- php namespace是在一个作用域里,如果在另外的引用文件里已经包含了对应的引用文件,本文件中不用再引用一次
- mysql connection不用主动释放,执行结束会自动释放
- pfsockopen 可以打开一个持久的sock connection
set_include_path & get_include_path
set_include_path
用于限定include或者require文件的范围,并且使得代码里不必要写一个完整的路径,如果不调用这个方法,那么你可以以相对或者绝对路径的方式访问任何地方,但是如果有了这个只能在他限定的范围内查找
Magic Func
- __call() 访问类中不存在的对象会调到
- invoke() 以类名执行类似python的call__
- get(), set()
Reflection
- get_class_name()
- get_class_method()