用户登录
用户注册

分享至

php composer github

  • 作者: 巴黎的铁塔在思绪8170187
  • 来源: 51数据库
  • 2020-10-02
如何创建一个自己的 Composer/Packagist 包


首先让我们踏着欢快的脚步去Github创建一个新库,这里取名 composer-car,又欢快的将它克隆到本地:




git?clone?https://github.com/GeHou/composer-car.git

cd?composer-car这个composer-car文件夹就是你的包的root目录了,你只需要记住composer.json在包的哪个目录下面,一般那就是包的root目录了。什么?做包子的工作台?这么理解呢也是可以的,不过同学能先收收你的口水么。


现在我们还没有composer.json文件,你可以根据composer文档生成并编辑它,当然composer贴心的为我们准备了命令行,look:


?
->?composer?init

Welcome?to?the?Composer?config?generator

This?command?will?guide?you?through?creating?your?composer.json?config.?
Package?name?(/)?[hou/composer-car]:?这里填写<包提供者>/<包名>的信息
Description?[]:?包的描述
Author?[GeHou?<***@gmail.com>]:?作者信息
Minimum?Stability?[]:?最低稳定版本
License?[]:?授权协议

Define?your?dependencies.

Would?you?like?to?define?your?dependencies?(require)?interactively?[yes]??no
Would?you?like?to?define?your?dev?dependencies?(require-dev)?interactively?[yes]??no

{
????"name":?"hou/composer-car",
????"description":?"In?order?to?study?composer",
????"license":?"MIT",
????"authors":?[
????????{
????????????"name":?"GeHou",
????????????"email":?"***@gmail.com"
????????}
????],
????"minimum-stability":?"dev",
????"require":?{

????}
}

Do?you?confirm?generation?[yes]??yes
Would?you?like?the?vendor?directory?added?to?your?.gitignore?[yes]??yes虽然经过以上的一番挣扎生成了composer.json文件,不过我们还得往里面加点东西。使用你熟悉的编辑器打开composer.json文件修改至如下:


?


{
????"name":?"hou/composer-car",
????"description":?"In?order?to?study?composer",
????"license":?"MIT",
????"authors":?[
????????{
????????????"name":?"GeHou",
????????????"email":?"***@gmail.com"
????????}
????],
????"minimum-stability":?"dev",
????"require":?{
????????"php":?">=5.3.0"
????},
????"autoload":?{
????????"psr-4":?{
????????????"Ford\\Escape\\":?"src/Ford/Escape",
????????????"Ford\\Fusion\\":?"src/Ford/Fusion",
????????????"Ford\\Focus\\":?"src/Ford/Focus",
????????????"Ford\\Fiesta\\":?"src/Ford/Fiesta"
????????}
????}???
}细心的小伙伴可能已经认出了福特的商标(Ford),这说明我们都是同道中人,你一定也很喜欢汽车,对吧对吧? :-)


我们登陆一下福特的网站看看都有哪些热销车型,嗯嗯分别有ESCAPE、FUSION、FOCUS、FIESTA,中文名称分别是翼虎、蒙迪欧、福克斯、嘉年华,嘉年华ST我的梦想啊~~~ 好了好了,那位看官放下你手里的板砖,我承认一说到汽车就会滔滔不绝,下面我们把水分挤出去继续讲解。


根据上面的命名空间和目录的映射关系,包的结构现在应该是下面这个样子:


?

composer-car
-?src
-?-?Ford
-?-?-?Escape
-?-?-?-?Escape2013.php
-?-?-?Fiesta
-?-?-?-?Fiesta2013.php
-?-?-?Focus
-?-?-?-?Focus2013.php
-?-?-?Fusion
-?-?-?-?Fusion2013.php
-?.gitignore
-?composer.json
-?README.md
Escape2013.php:

";
????}
}
Fiesta2013.php:
";
????}
}
Focus2013.php:?
";
????}
}
Fusion2013.php:
";
????}
}以上都梳理完毕后,需要安装composer来测试我们的包是否可以正常工作,安装它很简单在包的root目录下install即可:


?
1
composer install
闪过几行神秘的提示之后即安装完毕,此时会在vendor/composer/autoload_psr4.php中生成命名空间和目录的映射关系,被包在一个数组中:



?array($baseDir?.?'/src/Ford/Fusion'),
????'Ford\\Focus\\'?=>?array($baseDir?.?'/src/Ford/Focus'),
????'Ford\\Fiesta\\'?=>?array($baseDir?.?'/src/Ford/Fiesta'),
????'Ford\\Escape\\'?=>?array($baseDir?.?'/src/Ford/Escape'),
);如果发布成packagist包然后进行安装的话,到时候这里就不是$baseDir了而是$vendorDir。


然后我们新建一个测试文件show.php,用以下内容填充它:




软件
前端设计
程序设计
Java相关