composer php 项目,创建composer项目

# **建立自己的composer包**

composer 包的平台:[packagist.org](https://packagist.org/),这里面包含了大量的优秀的安装包

**1、创建自己的github仓库**

点击 [New repository](https://github.com/new)创建自己的github仓库,命名为test

![](https://img.kancloud.cn/b2/e0/b2e0a81d23f4cf211196a99ddf07dddd_268x260.png)

**2、克隆项目**

git定位到D:\下键入:

```

git clone git@github.com:lichihua/test.git

```

克隆后:D:\目录下会生成D:\test目录

**3、创建 Composer 配置文件**

在项目根目录`D:\test`创建 Composer 配置文件 composer.json,可以使用命令`compser init`创建也可以手动创建,最终文件内容大体如下:

~~~

{

// "name": "一般有供应方名或者作者名/项目名", //github的用户名(个人或团体)+项目名

"name": "lichihua/test", //发布第三方包时,packagist包名与此名一致 composer require lichihua/test

"description": "该项目描述",

"authors": [

{

"name": "作者名"

}

],

"license": "MIT",

"require": {

"php": ">=5.4"

},

"autoload": {

"psr-0": {

//根命名空间最好是项目名或【供应方名或者作者名】/项目名 方便开发者记忆 不过项目名代下划线如think_test 这种可以改成 thinktest

"Lichihua\\Test\\": "src/" //use Lichihua\Test\...

}

}

}

~~~

**4、编写及测试文件**

定义好以后在composer.json同文件下的src下编写测试类,详情请参照`composer自动加载讲解`章节

>[danger]压缩源(src)文件,生成压缩包到(dest),dest一般和src配对出现

目录结构参照:

~~~

D:/

├─test 应用目录(www)

│ ├─composer.json composer 定义文件

│ ├─.gitignore

│ ├─README.md README 文件

│ ├─src 项目目录

│ │ ├─Lichihua 目录

│ │ │ ├─Test 目录

│ │ │ │ ├─User.php User类测试文件

│ │ │ │ ├─Tools.php Tools类测试文件

│ │ │ │ └─ ...

│ │ │ │

│ │ │ └─ ...

│ │ │

│ │ ├─Client.php 测试文件1

│ │ ├─Service.php 测试文件2

│ │ └─ ... 更多类文件

│ ├─index.php 入口文件测试编写的类

│ │

│ └─...

├─...

~~~

使用 composer install 或者 composer update 更新下数据 测试是否加载成功

**5、添加忽略文件**

然后编辑.gitignore文件,将lock文件放到忽略文件中,如下:

```

/vendor/

composer.lock

```

**6、上传到github**

具体参考git的文档

```

git add .

git reset HEAD . //回退 git add的内容

git commit -m "提交说明"

git push origin master

```

**7、提交到[packagist](https://packagist.org/packages/submit)这个网站上**

点加submit

Repository URL (Git/Svn/Hg)下的文本框里填写github的地址

`git@github.com:lichihua/test.git`,再点击check ,检测成功点击提交则成功

![](https://img.kancloud.cn/5c/4f/5c4f22d9d8958b1d2402cb9837754ce1_833x154.png)

![](https://img.kancloud.cn/ce/6e/ce6e8785c0743ae2a6aa81062161803c_1282x279.png)

设置代码更新,同时能让[packagist.org](http://packagist.org/)自动更新(默认是自动更新的)

如果未绑定,可以这样设置:"settings" -> “Webhooks” -> "Add webhook" ->

1. Payload URL填写:“[packagist.org/api/github”](https://packagist.org/api/github%E2%80%9D)

2. Content type填写:“application/json”

3. Secret填写:“packagist提供的token”

4. 其他的默认即可

5. 点击“Add webhook” 完成。

![](https://img.kancloud.cn/11/be/11beab3d270795bf300658fb044ccdb2_1304x515.png)

**8**

另外一个项目中,加载这个包`composer require lichihua/test ` 测试不能成功提示没有找到版本,这是因为没有打标签tag

没有打 tag 的要指定 dev,完整命令`composer require "lichihua/test @dev"`

git页面我们切换到test项目根目录,提交修改,打一个v0.1的tag,然后提交tag到远程github仓库

git push \ \ \ tagName

```

git tag -a v0.1 -m "第一个版本"

git push origin v0.1

```

github当前项目里点击release,发布一个版本

进入后在点击右侧的[Draft a new release](https://github.com/lichihua/test/releases/new))按钮

有三个文本框 分别是版本、版本说明标题、版本说明

填写好以后点击Publish release提交

参考[https://www.jianshu.com/p/280acb6b0b22](https://www.jianshu.com/p/280acb6b0b22)

![](https://img.kancloud.cn/49/05/49053f693033fa3fb98e8feb3fc84ac5_1039x434.png)

![](https://img.kancloud.cn/56/b6/56b688585e6863be93cfd565ee081ca7_977x594.png)

再次`composer require lichihua/test`目录结果

~~~

vender

├─composer

├─lichihua

│ ├─test 应用目录(www)

│ │ ├─composer.json composer 定义文件

│ │ ├─.gitignore

│ │ ├─README.md README 文件

│ │ ├─src 项目目录

│ │ │ ├─Lichihua 目录

│ │ │ │ ├─Test 目录

│ │ │ │ │ ├─User.php User类测试文件

│ │ │ │ │ ├─Tools.php Tools类测试文件

│ │ │ │ │ └─ ...

│ │ │ │ │

│ │ │ │ └─ ...

│ │ │ │

│ │ │ ├─Client.php 测试文件1

│ │ │ ├─Service.php 测试文件2

│ │ │ └─ ... 更多类文件

│ │ ├─index.php 入口文件测试编写的类

│ │ │

│ │ └─...

│ │

│ ├─test2

│ │

│ ├─...

├─autoload.php

└─...

composer.json

~~~

```

{

"require": {

"lichihua/test": "^0.2.0"

}

}

```

`D:\phpstudy_pro\WWW\wwwdemo1.com\vendor\lichihua\test\composer.json`

```

{

...

"autoload": {

"psr-4": {

"Dash\\tools\\":"src"

}

}

}

```

>psr-4的规则:"root命名空间\\":"起始路径",

root命名空间:Dash\\tools\\

起始路径:src

对应文件的路径:起始路径+ [额外路径] + 类文件(必须与类名一致)

即:src+church+TestClass1.php

使用时

use root命名空间[\额外路径]\类名

new \root命名空间[\额外路径]\类名()

`D:\phpstudy_pro\WWW\www.demo1.com\vendor\lichihua\test\src\church\TestClass1.php`

```

namespace Dash\tools\church;

class TestClass1{

public function show(){

echo 'hello';

}

}

```

`D:\phpstudy_pro\WWW\www.demo1.com\index.php`

```

ini_set('display_errors', 1);

error_reporting(E_ALL);

include 'vendor/autoload.php';

$a= new \Dash\tools\church\TestClass1();

var_dump($a);

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值