php使用了composer之后 还需要自己写autoload方法吗

最近看到composer这东西之后在纠结php使用了composer之后 还需要自己写autoload方法吗?还是都用composer载入?其实对composer了解不是很深,求指教。

阅读 4.5k
2 个回答

不用
自动生成的 vendor 目录下,有 autoload 函数,会根据命名空间加载

composer已经帮你生成了一个loader,就不用自己写加载器了,/vendor/composer目录下会包含autoload_real.php文件主要用来依次按照psr-4/psr-0/classmap/files四个标准来实现命名空间和文件路径的映射,当然目前主要是psr-4标准文件是autoload_psr4.php,psr-0标准要被淘汰了。看/vendor/composer目录下文件源码发现,把加载的路径数据依次放在ClassLoader对象的私有变量里,通过$loader->register(true)其实就是用spl_register_autoload()来做的。

推荐两篇文章:Laravel 执行流程(一)之自动加载深入 Composer autoload。两篇文章写的挺好,可以研究下。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题