如何写一个属于自己的composer包|8月更文挑战

网友投稿 248 2022-09-03

如何写一个属于自己的composer包|8月更文挑战

专注于PHP、MySQL、Linux和前端开发,感兴趣的感谢点个关注哟!!!文章整理在​​GitHub​​,主要包含的技术有PHP、Redis、MySQL、JavaScript、HTML&CSS、Linux、Java、Golang、Linux和工具资源等相关理论知识、面试题和实战内容。

前言

对于开发的小伙伴们来说,代码包已经是开发过程中的家常便饭了。比如,PHP有composer,Java有maven,前端有npm,yarn,Mac程序安装有brew,Linux程序安装有yum。使用这些包,可以便于我们很好的管理代码引入的外部代码组件,有助于我们提高开发效率,同时也有助于我们代码管理更加优雅。下文主要就是分享个人自定义一个composer代码包,代码仅仅是作为演示示例,没有实际效果。同时也会不断更新,大家可以关注关注。

具体实现

创建一个远程git代码仓库。

创建代码仓库,我是选择的GitHub作为远程仓库。创建好后,我们直接拉取到本地。后面的所有代码都是在该仓库下进行的。具体创建仓库和拉取代码就不做演示。

创建源码目录

我们在仓库(为了方便描述,后文便用项目一词来替代该词)下面,创建一个src的目录,用于存储我们实际的代码。

编写实际代码

下面这个文件,是后面实际需要调用的类。具体的演示代码,可以通过​​演示代码仓库​​进行查看。主要的作用就是利用工厂模式,Cache去调用实际的缓存类。

redisHandle = new Redis(); }}

创建好代码仓库中的所有文件,这时候我们就可以开始生成composer.json文件了。

生成composer.json配置文件

下面就是具体生成的过程了,记住一定要在项目的根目录下面使用composer init命令。

composer initWelcome to the Composer config generatorThis command will guide you through creating your composer.json config.#项目命名空间Package name (/) [bruce_redis/redis]: bruce_redis/redis#项目描述Description []: composer test#作者信息Author [卡二条 <2665274677@qq.com>, n to skip]: 卡二条 <2665274677@qq.com>#输入最低稳定版本Minimum Stability []: dev#项目类型Package Type (e.g. library, project, metapackage, composer-plugin) []: library#授权类型License []:Define your dependencies.#依赖信息Would you like to define your dependencies (require) interactively [yes]? yes#如果需要依赖,则输入要安装的依赖Search for a package: phpEnter the version constraint to require (or leave blank to use the latest version): >=7.0Search for a package:Would you like to define your dev dependencies (require-dev) interactively [yes]? yesSearch for a package: phpEnter the version constraint to require (or leave blank to use the latest version): >=7.0Search for a package:{ "name": "bruce_redis/redis", "description": "composer test", "type": "library", "require": { "php": ">=7.0" }, "require-dev": { "php": ">=7.0" }#确认构建项目,生成composer.json

这里需要注意一下/配置项

根据​​composer中文网​​翻译的是供应商名称和项目名称。实际指的就是,你在其他项目中安装该composer包时,在你其他项目的vendor目录下面名称。例如,我将示例的代码的该配置项,设置为bruce_redis/redis。我再其他项目使用该包,展现的形式就是下图的效果。

配置自动加载

在生成composer.json文件之后,我们的代码被安装到其他项目,还不能直接使用,因为不能为composer自动加载,我们还需要做如下配置,在composer.json文件中添加如下代码。

"autoload": { "psr-4": { "Bruce\\": "src/"

该配置项主要的目是为了,告知composer命名空间为Bruce的类,源码目录都在src下面,autoload_psr4.php文件再做文件加载时,就是根据这个目录去下载。这里的Bruce就是编写实际代码中提到的命令空间。如果你不是这个名字,改为自己的即可。例如,你写的是Alibab\Composer,自动加载中的配置就是下面的配置:

"autoload": { "psr-4": { "Alibab\Composer\\": "src/"

发布代码

效果演示

安装代码

发布好代码之后,就可以直接在项目中引入该包。

如果你是使用的composer阿里源,或许不能立即使用,因为阿里的源还没完全同步过来。可切换为官方源。

composer require bruce_redis/redis dev-master

使用该命令之后,出现下图的结果,则证明安装成功了。你就可以按照GitHub仓库里面的示例代码进行操作了。

自动加载

在上面提到composer会自动加载,通过下图,我们可以发现composer根据配置自动去加载了文件。

这里的/bruce_redis/redis/src值就是,composer.json里面的name(/)值。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:通过重组索引提高性能
下一篇:王大雷:国足并非强队,12强赛放低姿态拼对手!(王大雷:把12强赛当决赛来踢)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~