用composer来加载pear库

技巧库 · yiqing · 于 1年前 发布 · 882 次阅读

PEAR库是php中很出名的类仓库,里面有很多php前辈们的心血积累。

现在的php版本发展很快,现代化的框架也都使用了名空间,但这不意味着老的库就不能使用 。我们难道不能在名空间下使用无名空间的类或者函数么? 当然不是,这个是心理问题。

如果你要的功能,已经有库实现了 但不是名空间化的 ,如果你是处女座(:))有强迫症, 非要改造为带名空间的么?

虽然PEAR库可用通过php命令行安装到php的指定目录(一般就在php.exe 所在目录的PEAR目 录里),比如通过命令:

pear install horde/Horde_SyncMl

这样 不用我们自己考虑类加载问题,因为php.ini 默认的配置是会搜索包含路径:

include_path=".;D:\Visual-AMP-x64\Bin\PHP\php-5.6.3-nts-Win32-VC11-x64\pear;

这样其实相当于全局安装( 类似composer 的 global install ),如果一个项目想独立依赖 一下PEAR中的库 这样就需要本地依赖.全局安装还有个缺点是 如果项目拷贝到生产环境, 忘记了全局依赖这回事 ,还要麻烦的去做全局安装。

下面介绍方法: composer.json 中做修改即可:


     "repositories":[
   
    {
      "type": "pear",
      "url": "http://pear.php.net"
    },
    {
      "type": "pear",
      "url": "http://pear.horde.org"
    }
  ],
  
  "require": {
   
    "league/tactician": "^1.0"

    , "pear-pear.php.net/PEAR": "*"
    ,"pear-pear.horde.org/Horde_SyncMl": "*"
  },

可以看到 composer 实际上是支持PEAR库依赖管理的。

经过以上步骤后 其实还需要一个配置,默认的composer库安装都是https的 PEAR库的url 是http开头,所以还需要修改下配置:

   "config":{"secure-http":false}

接下来 composer update 来下载你依赖的PEAR包吧 ^_^

本文由 yiqing 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。

共收到 3 条回复 PEAR Composer
fecommerce#11年前 0 个赞

亦清?闭关了,还发布东西?

yiqing#21年前 0 个赞

@fecommerce #1楼 没闭关 就是散养 以前是圈养的 :smile:

fecommerce#31年前 0 个赞

@yiqing #2楼 哈哈,啥时候包养啊!

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册