【PHP】php手动加载vendor第三方库
CrazyPanda发表于:2024-03-01 16:25:37浏览:334次
方式一:手动配置autoload文件
方式二:在composer.json 中 调整 autoload
场景
不知道做php开发的小伙伴有没有遇到这样的痛点:使用第三方框架时安装的依赖包,你接手时候执行 composer update/insetall
时候总是超时或者安装时候总是报某个依赖包于其冲突。导致浪费大量时间去调整,最终无功而返。
场景复现:
我在一个旧的项目包上,想下载一个依赖包,执行安装时,总是包版本和现在不兼容或者一些依赖的问题。切换了镜像也是如此,所以考虑不如手动安装来的快~
方案
只需要手动调整自动加载配置即可。
实现
方式一:手动配置autoload文件
第一步:将下载的依赖包放到vendor目录下
放到vendor下的随便位置,你开心就好
第二步:修改 autoload_psr4.php
文件
文件位置位于:vendor/composer/autoload_psr4.php

将自己的依赖包填写上去,如下:
假设加载的命名空间为:yii\layui\ ,那么将其配置指向的目录文件,$vendorDir 是vendor 目录地址。

第三步:修改autoload_static.php
文件,添加依赖包信息配置
文件位置位于:vendor/composer/autoload_static.php

找到变量:$prefixLengthsPsr4
将上一步手动添加的依赖包命名空间首字母,如:yii/layui
首字母为Y,放到 Y 数组内,如下:
如果没有,就造出来一个字母变量,包含在里面即可,命名空间尾部为:”// “结尾,写法:命名空间 => 重权整型

第四步:找到 文件映射目录数组变量:$prefixDirsPsr4
配置映射目录:
写法:命名空间 => 映射目录数组

修改完以上就可以加载了,在项目中使用 yii/layui/xxxx
即可.
方式二:在composer.json 中 调整 autoload
这个方法我没成功过,不知道是不是我配置有问题,未去深究。你们可以试试。
第一步:配置autoload
// 位置 ~/project/composer.json
"autoload": {
// 需要引入包的位置
"psr4":[
"yii\\layui\\" => "src\"
]
},
第二步:更新类自动加载
进入项目目录下执行
composer dump-autoload -o
原文链接https://zhuanlan.zhihu.com/p/597646734?utm_id=0
猜你喜欢
- 【PHP】php中标识符允许出现的符号有哪些
- php中标识符允许出现的符号有字母、数字、下划线和中文字符。详细介绍:1、字母和数字,标识符可以由字母和数字组成,它们可以以字母开头,后面可以跟随任意数量的字母、数字或下划线;2、下划线,标识符可以包含下划线,但不能以下划线开头;3、中文字符,从PHP 7.2版本开始,允许在标识符中使用中文字符,$中文变量、function中文函数()等都是合法的标识符等等。本教程操作系统:windows10系统、PHP 8.1.3版本、DELL G3电脑。在PHP中,标识符是用来标识变量、函数、类、
- 【PHP】PHP获取毫秒值的五种方式
- 在PHP中,获取毫秒值可以通过以下几种方法实现: 1. 使用`microtime()`函数: `microtime()`函数返回当前的Unix时间戳和微秒数。我们可以通过以下代码获取毫秒值:
- 【PHP】PHP8如何优化代码性能
- PHP8的新特性和底层开发原理探索:如何优化代码性能随着互联网的迅猛发展和信息技术的不断更新,PHP作为一门重要的互联网开发语言也在不断演进。PHP8作为最新版本,带来了许多全新的特性和改进,同时也提供了更强大的底层开发能力。本文将探讨PHP8的新特性,并给出一些代码示例,展示如何优化代码性能。JIT编译器PHP8引入了Just-In-Time(即时编译)编译器。JIT编译器可以将PHP代码动态地编译成本地机器码,从而提高代码执行的效率。在PHP8中,JIT编译器默认是关闭的,需要手动启用。下面
- 【PHP】PHP设计模式大全与应用场景
- 面向对象编程的基本原则:1、单一职责:一个类,只需要做好一件事情。2、开放封闭:一个类,应该是可扩展的,而不可修改的。3、依赖倒置:一个类,不应该强依赖另外一个类。每个类对于另外一个类都是可替换的。4、配置化:尽可能的使用配置,而不是硬编码。5、面向接口编程:只需要关心接口,不需要关心实现。1、单例设计模式所谓单例模式,即在应用程序中最多只有该类的一个实例存在,一旦创建,就会一直存在于内存中!单例设计模式常应用于数据库类设计,采用单例模式,只连接一次数据库,防止打开多个数据库连接。一个单例类应具
- 【PHP】详解ThinkPHP5实现极验滑动验证码geetest功能
- 下面由thinkphp教程栏目给大家详解ThinkPHP5实现极验滑动验证码geetest功能,希望对需要的朋友有所帮助!ThinkPHP5实现极验滑动验证码geetest功能现在很多网站,比如淘宝,京东等都改用使用极验拖动验证码实现登录,这种方式比传统的验证码方式有更好的体验,减少用户输入的错误,也同样能起到防盗刷的功能。现在很多极验都是第三方的,也很多都是收费的。这里主要介绍thinkphp整合系列之极验滑动验证码geetest,官网:http://www.geetest.com具
- 【PHP】php生僻字处理方法
- 在日常的PHP编程中,我们难免会遇到一些中文生僻字,这些字虽然不常用,但在一些特定的场合下却是必须要用到的。下面我们就来探讨一下PHP处理生僻字的几种方法。一、使用Unicode编码Unicode是一种国际化字符集,它可以表示几乎所有的字符,包括中文生僻字。在PHP中,使用Unicode编码处理生僻字,一般需要使用PHP内置函数chr()和ord()。chr()函数chr()函数可以将一个Unicode码转换为对应的字符,其语法如下:string chr(int $
- 【PHP】PHP实现页面静态化的集中方法
- 这篇文章主要介绍了php 实现页面静态化的几种方法,需要的朋友可以参考下1、通过buffer来实现需要用file_put_contents ob_get_clean()等内置函数ob_start (); include "filterpost.html"; $mtime = filemtime("./filterpost.html"); //在这里可以判断文件是否存在和过期,然后做缓存或者生成静态文件操作 $page
- 【PHP】Laravel的生命周期面试
- 在Laravel框架中,生命周期(Lifecycle)指的是从请求到达应用到应用响应请求的一系列过程。这个过程包括了从路由解析到最终视图渲染或响应发送的一系列中间件、控制器逻辑和事件处理。理解Laravel的生命周期对于开发高质量、可维护的应用至关重要。下面是一些关键的环节和概念,可以帮助你准备Laravel生命周期的面试:
栏目分类全部>
推荐文章
- 【PHP】PHP 8.3 重磅发布:创新与增强,开创未来
- 【Python】如何用Python编写线性查找算法?
- 【AntDesignPro】Ant Design Pro学习记录—ModalForm的使用(四)
- 【PHP】MongoDB介绍
- 【Python】新手Python环境配置以及pip安装教程
- 【UniApp】uniapp引入腾讯云播放器
- 【PHP】REST API是什么
- 【MySQL】MySQL数据库CPU飙升到100%解决方案
- 【Vue】Vue3 开发实战分享——打印插件 Print.js 的使用(Vue3 + Nodejs + Print.js 实战)以及 el-table 与 el-pagination 的深入使用(下)
- 【支付宝】支付宝服务商支付