记录下非composer require的直接加载类

线上版本较低, 使用composer require,要么提醒php版本低,要么提醒composer低
因为又是比较重要的项目, 怕升级出问题,就直接下载的SDK,使用时会提示Class ‘’ not fond,找到的解决方法,在composer.json->autoload->classmap,添加该SDK的第一级命名空间名,比如 SDK里某个文件命名空间是Barcodes\BarcodeBar,那就在classmap添加Barcodes,如下

记录下非composer的加载类
,然后使用命令composer dump-autoload,这个命令好像是 对 composer autoload自动加载性能优化,具体功能不明白, 但能让我的这个SDK使用起来.
参考文档:blog.csdn.net/wxf3439/article/deta...

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 3

如果你使用的包遵守 PSR-4 的话,那你就应该用 autoload.psr-4 下添加更为合适。

10个月前 评论

composer dump-autoload 这个的作用是告诉 php 以什么规则来自动加载php 文件

vendor/composer/autoload_classmap.php # 可能是 dump-autoload  生成的,是类跟 php 文件的一一对应关系
vendor/composer/autoload_files.php   # 需直接加载的文件,入 function 函数
vendor/composer/autoload_psr4.php  # psr-4 自动加载对应关系
vendor/composer/autoload_namespaces.php #  psr-0 自动加载

不用命令不更新, 也可以直接手动修改上面的文件,同样可以达到相同的效果。

10个月前 评论

dump-autoload,顾名思义,dump是“落盘”的意思,autoload是composer.json 中的配置项"autoload":{}, 执行后应该是无论是什么加载方式都会进入 autoload_classmap.php ,因为此种加载方式是最高效的。还有一个办法,如果一个包不能被 require 进项目,可以在文件开始处 require_once '包路径/vendor/autoload.php'; 就可以 use 了。
博客:Laravel Composer 自动加载原理

10个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!