搜索

首页  >  问答  >  正文

关于composer的autoload源码的疑惑

问题描述,今天看了下composer的autoload,指向的autoload_real.php中有这样一句代码:

    spl_autoload_register(array('ComposerAutoloaderInitc80c5962bd70112ae6c86782593af788', 'loadClassLoader'), true, true);

   php手册给出的spl_autoload_register的第一个参数的描述是:

    autoload_function

        欲注册的自动装载函数。如果没有提供任何参数,则自动注册 autoload 的默认实现函数spl_autoload()。

    手册说的是第一个参数是函数,如果不提供的话,则默认实现函数spl_autoload()。

    autoload_real.php里面的类名是:ComposerAutoloaderInitc80c5962bd70112ae6c86782593af788,

    类里面的有个静态方法loadClassLoader($class)。

    想了想,如果array('ComposerAutoloaderInitc80c5962bd70112ae6c86782593af788', 'loadClassLoader'),第一个成员是类名,第二个成员是静态方法名的话,是不是说就等同于self::loadClassLoader()。但是问题是,loadClassLoader的参数怎么带上去呢? 实在是想不通。

    最后自己做了个实践,自己闯了个类,创了个静态方法,自己模仿上述的array方式,结果function并没有被执行,只是老老实实的创建了一个array数组出来??那么composer里面那一行代码是干嘛的呢?望知悉的前辈传教。


mmmmmmmm2419 天前908

全部回复(0)我来回复

暂无回复
  • 取消回复