PHP 组件的使用和发布

今天看的是 PHP Components ,算是 PHP 较为核心和关键的一块内容。主要讲述了为什么使用,如何使用,和怎样去发布一个组件。

如何使用组件

首先呢,是去 Packagist 这个网站去找合适的包,包一般命名是 vendor/packagist ,记住这个名称,然后就要使用强大的 composer (我一直觉得是composer拯救了php的生态,有一个好的包管理器真的很重要。)
安装时,在根目录 使用命令 composer require vendor/packagist 然后composer就会自动去寻找包,安装,此时会在根目录生成composer.json,composer.lock(锁定你使用的版本,防止团队开发是成员使用了更高的或其他版本导致bug)。
还会生成vendor目录。因为使用了psr-4 加载标准,所以能够很简单的就使用别人的包。

如何发布自己的组件

这个是今天新学到的,以前有想过自己开发几个组件发布一下,今天终于有机会了(虽然发的是测试包),是一个简单的SayHello
感觉发测试包的时候,重要的是comopser.json怎么写(以后当然是你的核心代码啦)
下面是我的composer.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{
"name": "bbchen/sayhello",
"description": "this is a test",
"keywords": ["hello", "test"],
"homepage": "http://example.com",
"license": "MIT",
"authors": [
{
"name": "Binbin Chen",
"homepage": "https://github.com/Robinson28years",
"role": "Developer"
}
],
"support": {
"email": "bb.chen@outlook.com"
},
"require": {
"php" : ">=5.6.0",
"guzzlehttp/guzzle": "^6.1"
},
"require-dev": {
"phpunit/phpunit": "^5.0"
},
"suggest": {
"league/csv": "^8.0"
},
"autoload": {
"psr-4": {
"BbChen\\": "src/"
}
}
}

然后将我的源码上传到Github,在将仓库地址复制一下,到Packagist官网,点那个submit,再将自己的仓库地址复制进去就发布完成了,是不是很简单,因为国内同步过来要段时间,所以我明天早上再去看有没有更新到国内镜像来。

要注意的几点是,上面的name不能跟其他人重复,还有就是要遵守自动加载的标准,像上面代码就表示命名空间BbChen这个实际指向的是src。大家有不懂的可以底下留言,我可能讲的不是很清楚

最后

今天这章还是收获蛮大的,这章也蛮重要的,暑假可能会试着写一两个组件发布一下,不知道有没有人会去用😂。