composer安装本身的包

composer的出现,使得PHPer能够像Java同样更加方便的管理代码。在composer没有出现以前,人们大多使用pear、pecl管理依赖,可是局限性不少,也不多有人用(接触的大多phper基本不适用pear管理依赖)。composer不单单可以解决依赖的问题,也能够在必定程度上解决造轮子的问题。php

废话很少说,这篇主要记录如何建立本身的package。java

大概步骤以下:git

  1. 在github上建立一个项目(项目名称能够随意)
  2. 编写composer.json
  3. copy代码文件并修改命名空间
  4. https://packagist.org/上递交本身的包
  5. 设置github的hook

编写composer.jsongithub

先看一个示例:json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
     "name" : "jenner/message_queue" ,
     "description" : "php message queue wrapper" ,
     "license" : "MIT" ,
     "keywords" : [ "message queue" ],
     "version" : "1.0.0" ,
     "authors" : [
         {
             "name" : "Jenner" ,
             "email" : "hypxm@qq.com"
         }
     ],
     "require" : {
         "php" : ">=5.3.0"
     },
 
     "autoload" : {
         "psr-0" : {
             "Jenner\\Zebra\\MessageQueue" : "src/"
         }
     }
}

须要注意的几个字段说明以下:app

name:包名称,递交时packagist会检测报名字是否合法。必须是一个/分隔的字符串。当别人引入你的包时,vendor下会自动建立这个目录。例如org/package包,则会在vender下建立org/package目录。composer

autoload:包的加载方式,具体加载方式能够参考composer中文网说明。这里使用的是psr-0标准加载方式。composer会在src目录下根据命名空间执行自动加载。工具

 

copy代码修改命名空间ui

composer.json文件修改后,咱们须要把要打包的源文件复制过来。这里我把全部的文件放在了src目录下,后面可能会有和src同级的tests等目录,而这些目录是不会被加载的。src目录下需遵循psr-0标准。命名空间和目录定义要一直。例如Namespcae/SubNamespace命名空间,则src下必须有Namespace/SubNamespace目录。spa

代码编写标准能够参考psr-0、psr-1标准

 

递交本身的包

pacagist开放递交,你能够任意递交本身的包,固然,要符合必定规则。

packagist右上角有一个submit package的按钮,点击会跳转到递交页面,以下图:

QQ截图20141104224005

而后在文本框中输入你在github上建立的项目的Git地址。packagist会自动检测是否合法。若是合法点击递交便可递交本身的包了。

你可能须要在github上面发布几个release,这样packagist才会认定你的包是稳定的,不然只能required开发包。

设置github的hook

版本控制工具大多支持hook,用于代码递交时触发一个事件,将代码同步到其余环境中。在github上设置hook后,咱们每次pull,都会自动同步到packagist上,这样就不须要咱们手动强制同步了。具体操做能够参见packgist的说明,操做很简单,耐心看下应该问题不大。

 

最后,若是别人使用了这个包。他的vendor目录下就会产生jenner/message_queue目录,其下的内容就是你github上的代码了,结构是彻底一致的。

相关文章
相关标签/搜索