创建包 把我们写好的模块分享给其他开发者使用
你可以创建一个新项目来使用composer
。我们建一个输出hello world
的类 。把我们的包来分享给其他开发者使用,就像predis/predis。`composer通常以“vendor/package” (厂商/包名)的方式来命名。这里我们为项目命名”scort/hello-world-sdk”。
前言:
- 本文
helloWorld
为例进行讲解! -
packagist
帐号一个, 没有有话点击这里 packagist 自行注册 -
github
或gitee
帐号一个, 没有有话点击这里 github 或 gitee 自行注册
教程的使用环境:
ubuntu16.04 x64 LTS
-
git
工具 (git version 2.7.4
) -
composer
工具(Composer version @package_branch_alias_version@ (1.0.0-beta2) 2016-03-27 16:00:34
)
参考:
Packagist / Composer 中国全量镜像 库(资源包)
Packagist / Composer 中国全量镜像
packagist Submit 地址
packagist 首页 地址
gitee 首页 地址
本教程共4步:
第一步: 在git
上创建项目、初始化composer.json
第二步 创建类文件、实现功能;修改并使用composer
安装
第三步 git
提交,并发布到packagist
第四步 使用我们的packagist
包
第一步: 在git
上创建项目、初始化composer.json
-
在
gitee上创建项目git
上创建项目(这里以gitee
为例)
-
复制项目地址,进行本地
复制项目地址clone
选择项目地址,本地clone
~$ cd ~
~$ git clone https://gitee.com/469306621/hello-world.git
正克隆到 'hello-world'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
展开对象中: 100% (3/3), 完成.
检查连接... 完成。
- 初始化
composer.json
~$ cd hello-world
~$ composer init
Welcome to the Composer config generator
This command will guide you through creating your composer.json config.
Package name (<vendor>/<name>) [root/hello-world]: scort/hello-world-sdk
Description []: hellow-world-sdk
Author [469306621 <469306621@qq.com>, n to skip]:
Minimum Stability []: stable
Package Type []: library
License []: MIT
Define your dependencies.
Would you like to define your dependencies (require) interactively [yes]? n
Would you like to define your dev dependencies (require-dev) interactively [yes]? n
{
"name": "scort/hello-world-sdk",
"description": "hellow-world-sdk",
"type": "library",
"license": "MIT",
"authors": [
{
"name": "469306621",
"email": "469306621@qq.com"
}
],
"minimum-stability": "stable",
"require": {}
}
Do you confirm generation [yes]?
Would you like the vendor directory added to your .gitignore [yes]?
初始完后的目录是这样的:
~/hello-world$ ll
总用量 24
drwxrwxr-x 3 scort scort 4096 3月 11 11:09 ./
drwxr-xr-x 55 scort scort 4096 3月 11 11:02 ../
-rw-rw-r-- 1 scort scort 295 3月 11 11:09 composer.json
drwxrwxr-x 8 scort scort 4096 3月 11 11:02 .git/
-rw-rw-r-- 1 scort scort 9 3月 11 11:09 .gitignore
-rw-rw-r-- 1 scort scort 26 3月 11 11:02 README.md
第二步 创建类文件、实现功能;修改并使用composer
安装
-
创建类文件
创建类文件 src/HelloWorld.phpsrc/HelloWorld.php
,进行功能的具体实现
-
src/HelloWorld.php
文件内容:
<?php
/**
* Created by PhpStorm.
* User: scort
* Date: 18-3-11
* Time: 上午11:16
*/
namespace HelloWorld;
class HelloWorld
{
// 作者
protected $author;
/**
* HelloWorld constructor.
* @param string $author
*/
public function __construct($author = 'scort')
{
$this->author = $author;
}
/**
* 执行方法
* @return string
*/
public function info()
{
$info = "Hello World ! \n";
$info .= "\t--Power By ";
$info .= $this->author . "\n";
return $info;
}
}
- 在
composer.json
文件中增加:
"require": {
"php" : ">=5.6"
},
"autoload": {
"psr-4": {
"HelloWorld\\" : "src/"
}
}
-
composer
安装
~/hello-world$ composer install
第三步 git
提交,并发布到packagist
提交前将无用的文件排除,在
.gitignore
文件中加入:.idea/ /vendor/ composer.lock
-
git
提交
~/hello-world$ git add .
~/hello-world$ git commit -m 'helloWorld'
~/hello-world$ git tag 1.0.0
~/hello-world$ git push origin master --tag
- 将
git
地址添加到packagist
中(packagist submit 地址),增加自己的包:
image.png
如上图,将你的git地址
填入Repostory Url
中,然后点击Check
;
image.png
点击Submit
进行提交!
image.png
到这里你的包就提交完成了,等待5分钟左右你的包就可以在packagist上面搜索到。但目前你的包还不会自动更新!
接下来配置自动更新:
- 首先你要拿到你的
API Token
(如图, 点击show API Token
就会看到):
image.png - 然后到你的gitee项目(
hello-world项目
->管理
->WebHooks
)下配置:
2018-03-11 11-47-17屏幕截图.png
这里:
URL
:https://packagist.org/api/update-package?username=469306621&apiToken=API_TOKEN
(其中469306621是我的帐号,API_TOKEN要改为你的API TOKEN值)更多URL填写帮助
密码
:自定义
提交
后就完成了自动更新了!
第四步 使用我们的packagist
包
- 在另一个项目中使用我们刚刚创建的
scort/hello-world-sdk
包
~$ cd ~
~$ mkdir dev-test
~$ cd dev-test/
~/dev-test$ composer init
[一直回车]
- 安装,加载
scort/hello-world-sdk
:
~/dev-test$ composer install
~/dev-test$ composer require scort/hello-world-sdk
Using version ^1.0 for scort/hello-world-sdk
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing scort/hello-world-sdk (1.0.0)
Cloning 7605cef5ade7f84a3e55289a879e4cf97838eaec
Writing lock file
Generating autoload files
- 使用,在项目的根目录下创建一个
index.php
文件,在这个文件中使用我的scort/hellow-word-sdk
包。
~/dev-test$ touch index.php # 创建index.php文件,这里是ubuntu,我使用的是命令创建一个文件,你可以用的最擅长的方式创建文件。
- 创建完文件后项目的目录应该是如下图:
-
index.php
内容:
<?php
require "vendor/autoload.php";
use HelloWorld\HelloWorld;
$h = new HelloWorld('霄峰');
echo $h->info();
- 执行,结果:
~/dev-test$ php index.php
Hello World !
--Power By 霄峰
到这里就整个包的创建、使用就完成了,如果我的文章对你有帮助的话,请传播到你的身边的人,谢谢!!!
网友评论