加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP创建自己的Composer包方法

发布时间:2021-05-23 22:44:37 所属栏目:编程 来源:网络整理
导读:客栈(Repository) 客栈是软件开拓中常见的观念,与源(sources)意义临近,首要指托管资源的场合。很多软件都有客栈的观念,譬喻yum、npm、maven、Git,以及本文的主角Composer。客栈以中心化的方法托管资源,为软件的正常事变提供保障。 Packagist 是Comp
副问题[/!--empirenews.page--]

客栈(Repository)

客栈是软件开拓中常见的观念,与源(sources)意义临近,首要指托管资源的场合。很多软件都有客栈的观念,譬喻yum、npm、maven、Git,以及本文的主角Composer。客栈以中心化的方法托管资源,为软件的正常事变提供保障。

Packagist 是Composer默认的中央客栈,PHP社区的绝大部门Composer包都托管在该网站上。Packagist提供果真的、免费的托管处事,任何人均可注册、自由宣布包,无需考核。Packagist由Private Packagist提供托管和维护,两者的首要区别为:Packagist的官网是托管...,托管的代码无需开源,客栈处事器可位于内网,提供更快、更高效的包代码托管处事。

可以设置多个客栈,Composer会自动找出最得当项目标依靠包。搜刮包的流程如下:起首搜查当前项目是否设置特殊客栈,有则优先在特殊客栈中检索;无功效向上到全局设置中的特殊客栈检索;未设置或搜刮无功效的环境下,回退到默认的Packagist中央客栈检索。除非禁用了默认的客栈,Packagist中的包总会被检索到。由于这个缘故起因,Composer保举PHP开拓职员将包托管在Packagist网站上,利便他人检索和引用。

设置客栈

有两种要领对Composer的客栈举办设置:呼吁行和编辑设置文件。composer config是Composer设置的呼吁,可以用来设置项目或全局的客栈信息,譬喻:

composer config [-g] repo.packagist composer

第二种要领是编辑设置文件。编辑项目标composer.json或~/.config/composer/config.json,增进repositories一项设置,譬喻:

以上设置行使 网站作为默认中央客栈。在大陆地域陈设PHP项目,提议行使该客栈目次,能加快依靠包的下载。

客栈设置最重要的两个参数是type和url。type指明客栈的范例,url则指向详细网址。按照客栈的位置,常用的type可选值有:

  1. composer,Composer包托管客栈,譬喻 Packagist中国全量镜像;
  2. vcs,版本节制打点体系,譬喻Github上的项目地点;
  3. pear,PEAR上的包;
  4. package,位于互联网上包;
  5. artifact,代码zip包合集;
  6. path,指向代码详细位置。

互联网上的客栈,type的常见值是composer和vcs;当地的项目,常见值是artifact和path。详细用例,可参考Composer官方文档。

把握了客栈的观念和其设置,接下来我们建设本身的包。

建设本身的Composer包

建设一个Composer包只需两步:1. 填写包描写信息;2. 写代码。本文建设一个hello-composer的包来演示建设进程。该包成果只有一个:输出字符串“Hello,Composer!”。

Composer包的描写信息存放在composer.json文件中,可直接新建(或从其他项目拷贝)composer.json文件,手动添补须要的字段信息;也可以用composer init呼吁,交互式的输入包信息,天生composer.json文件后再补全其他字段信息。我们采纳直接编辑文件的方法,在composer.json中输入如下内容:

以上内容根基上是一个Composer包的必备字段。其他字段可参考Composer官网的composer.json声名。需留意标志为root-only的字段,root-only暗示当前包为主项目时才见效。譬喻require-dev字段,在当前项目中开拓,字段内的包会下载放到vendor文件夹内;假如该项目被其他项目引用,则该字段的值被忽略,引用的包不会被下载。

接下来编写代码。在src目次下新建HelloComposer.php:

class HelloComposer
{
public static function greet()
{
echo "Hello,PHP_EOL;
}
}

代码气魄威风凛凛提议参考PSR-2类型,文件定名和路径类型提议参考PSR-4类型。其它需留意文件的路径需与composer.json中autoload的值相匹配。

通过简朴两步,我们建设的本身的Composer包。接下来在其他项目中引用该包。

引用Composer包

新建一个test项目,引用上文建设的包并查察结果,步调如下:

1.新建test文件夹,拷贝可能新建composer.json文件,设置如下:

设置文件必要留意两点: 1. 假如hello-composer的composer.json文件没有version字段(或不是不变版),minimum-stability值要是dev(默认是stable),不然无法安装; 2. 需添加自界说客栈,type值为path。

2.执行composer install -vvv安装依靠包,安装完成后vendor目次下天生tlanyan/hello-composer目次。

3.在test中新建Test.php文件,引用HelloComposer类:

require "vendor/autoload.php";

use tlanyanHelloComposer;

class Test
{
public static main()
{
HelloComposer::greet();
}
}

Test::main();

.执行Test.php:php Test.php,输出"Hello,Composer!"。

通过设置Composer客栈,我们乐成引用了建设的hello-composer包。测试没题目后,就可以宣布到网上供其他人行使。下面扼要说是宣布流程。

宣布Composer包

将Composer包宣布到互联网的方法有几种:

  1. 打包成zip,上传到恣意一个可果真会见的网站;
  2. 通过版本节制软件,上传到代码客栈;
  3. 提交到PEAR社区;
  4. 提交到私有的Composer客栈;
  5. 提交到Packagist。

前四种方法,必要用户设置客栈信息才气检索到包(PEAR社区险些已死,可以忽略)。假如代码开源,提议提交到Packagist,利便全天下的PHP开拓者检索和行使,为Composer生态做孝顺。

提交包到Packagist,要经验以下进程:

  1. 在Github建设项目并提交接码;
  2. 在Packagist输入项目地点提交包;
  3. 在Github设置项目,触发Packagist自动更新。

前两步是必需的,第三步可选。本着为提交的包认真的立场,凶猛提议完成第三步操纵。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读