php composer学习

来源:互联网 发布:男士冬装搭配知乎 编辑:程序博客网 时间:2024/06/16 00:15

最近需要接触composer,边学边随便写写,刚学认识可能比较浅,可能断断续续的,写完会整理下~~~

Composer是PHP中的一个依赖管理工具. 它可以让你声明自己项目所依赖的库,然后它将会在项目中为你安装这些库。

其实就是自动安装项目依赖的类库,包之类的。多人开发是一个很好的方式。

关于安装不谈。

1.composer.json

svn/git的导入依赖包。头疼当时找了好久。

开始以为就是在本地的目录中需要一个composer.json然后安装。

composer.json中require需要的库名和版本,require对应相应的repositories,repositories中配置相应的包的类型,url,这样就完了。

结果试了很久都不行,说没有一个明确的composer.json指向一个特定的branch或者tag,半天没明白,我本地不是明明有composer.json了么,

半天才回过神,远程的svn/git可能也需要声明一个,双方达成一致。

我的第一个composer实现例子:

git项目中的composer.json

{
    "name": "fun/FunFramework",
    "description": "my test php framework",
    "homepage": "https://github.com/ayoah/FunFramework",
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "jun.fang",
            "email": "ayoahy@gmail.com",
            "homepage": "https://github.com/ayoah"
        }
    ],
    "require": {
        "php": ">=5.3.0"
    }
}
本地项目中的composer.json

{
     "repositories": [
         {
             "type": "vcs",

             "url": "https://github.com/ayoah/FunFramework"

         }
     ],
    "require" : {

         "fun/FunFramework" : "dev-master"
      }
}

当然git上的那个项目也可以去require他自己需要的库,这样一层一层的,的确比较清晰。

svn:这个比较繁琐,可能是我对路径这方面没有很理解吧。(中间配了一个http方式的svn,不知道是不是svn方式也可以哈,个人感觉用http吧)

上json

依赖库中基本和git一样,申明名字就ok

项目中:

 {
        "repositories": [
           {
           "packagist":false 
           },
           {
               "type": "svn",
               "url": "http://192.168.8.178:8080/svn/3g",
              "branches-path": false,
              "tags-path": false
          }
       ],
      "require" : {
           "fun/core" : "dev-trunk"
        }
  }

成功!

branches更蛋疼:(关键是可能你的branches命名需要做一些规定比如我开始给一个branches取名0.0.1,然后require的时候dev-0.0.1死都不行,换成test-0.0.1就可以了,官方文档写的太粗了)

{
   
        "repositories": [
           {
           "packagist":false
           },
           {
               "type": "svn",
               "url": "http://192.168.8.178:8080/svn/3g/",
              "tags-path": false,
              "branches-path": "3g/branches",
              "trunk-path":false
          }
       ],
      "require": {
          "fun/3g": "dev-test-0.0.1"
      }
 }

require,require-dev(composer install --dev 才能安装)

接下来是atuoload和update了。

目前就到这里。



0 0
原创粉丝点击