zoukankan      html  css  js  c++  java
  • PHP包管理工具composer简单总结

    前言

    接触laravel之后,才知道有PSR,composer之类的东西,PHP已经不再是一门草根语言了。最近在尝试玩thrift,需要安装PHP thrift依赖库,使用composer install apache/thrift会提示composer.json文件不存在,这个文件确实不存在,难道就不能安装了吗?后来发现可以通过composer require apache/thrift安装,这个命令会尝试创建composer.json配置文件。通过这件事情,发现对composer还是不是很了解,于是花了点时间详细了解,于是使用自己的语言编织了这篇文章。

    实现原理

    获取包元信息,项目源码地址库下载包以及依赖的包,安装到本地

    安装

    composer需要PHP5.3.2+版本以及需要开启phar扩展

    composer是由PHP编写以及使用PHP phar打包压缩的一个linux shell环境下可执行的文件(phar格式文件可以通过PHP命令行执行)
    [wadeyu@localhost ~]$ curl -sS https://getcomposer.org/installer | php


    [root@localhost wadeyu]# mv composer.phar /usr/local/bin/composer

    配置

    设置镜像地址(中国的镜像地址 -g参数表示全局配置)

    composer config -g repo.packagist composer https://packagist.phpcomposer.com

    设置进程执行超时时间(单位秒)

    composer config -g process-timeout 600

    查看配置列表

    composer config -g -l

    配置文件说明
    项目根目录下命名为composer.json的文件,使用JSON格式定义项目或者包相关的信息

    使用

    composer命令自动更新(有时候更新不了:()

    composer self-update

    声明依赖包(当前执行目录不存在composer.json会尝试创建)

    composer require 包名

    安装包(composer.json声明需要安装的依赖包)

    composer install

    更新包

    composer update [包名1 包名2 ...]

    搜索包(没有composer.json配置文件会执行远程搜索速度会比较慢:()

    composer search 模式符

    显示命令列表
    composer list

    更新autoload自动加载配置
    composer.json添加autoload配置
    composer dump-autoload

    后记

    我大概深入的了解了下,现在基本上能够满足我日常使用,后面碰到问题可以查看下面的参考资料。多个项目间需要共享代码而又不能发布到公共仓库时,可以搭建本地包元数据服务以及包源码下载的代码管理服务,这个应该是可行的,我没有尝试过:(

    参考资料
    【1】composer中文网
    http://www.phpcomposer.com/
    【2】composer工具手动下载地址
    https://getcomposer.org/download/
    【3】Packagist/Composer中国全量镜像
    http://pkg.phpcomposer.com/
    【4】composer.json配置详细说明
    http://docs.phpcomposer.com/04-schema.html
    【5】composer基本用法
    http://docs.phpcomposer.com/01-basic-usage.html

    作者:WadeYu
    出处:http://www.cnblogs.com/wadeyu/
    本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    windows(64位)下使用curl命令
    ThinkPHP 3.2 性能优化,实现高性能API开发
    如何摆脱恨死人的低价竞争对手
    火狐浏览器如何js关闭窗口的几种解决方法
    当 Swoole 遇上 ThinkPHP5 世界你好
    TCP网络编程杂谈
    SQL语句操作优先级顺序
    记一次常规的Mysql数据库访问的时间分析
    CSS艺术字
    Eclipse Oxygen创建maven web项目(二)
  • 原文地址:https://www.cnblogs.com/wadeyu/p/5451990.html
Copyright © 2011-2022 走看看