• composer安装自己的包


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

    废话不多说,这篇主要记录如何创建自己的package。

    大概步骤如下:

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

    编写composer.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/"
            }
        }
    }

    需要注意的几个字段说明如下:

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

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

    copy代码修改命名空间

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

    代码编写标准可以参考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上的代码了,结构是完全一致的。

  • 相关阅读:
    jsp报源码
    c#简单写售票系统
    linux常用命令大全[转]
    【转载】大型网站渗透思之信息收集
    Ajax初窥
    屏蔽win10中文输入法
    win10禁止更新的方法
    win10进入到安全模式的三种方法
    7代CPU安装win7的方法
    python的输出问题
  • 原文地址:https://www.cnblogs.com/xiezhi/p/6025510.html
Copyright © 2020-2023  润新知