zoukankan      html  css  js  c++  java
  • Composer : php依赖管理工具

    原始时代

    我记得在当时用php的时候还没有composer,只有个pear,但是不好用呀,还不如直接在互联网上到处复制代码了,更快更不容易出错,当时也没有github这么好的社区工具了

    总结如下

    • 代码混乱

    • 规范不统一

    • 没有后续统一更新等管理

    Composer侠应运而生

    composer直到如今 已有5个年头了,也是直到今年才有了第一个稳定版本1.0,以前都是alpha版本了,其实composer的发展 也和 PHP-FIG (后续会专门解释的)的发展有很大关系


    composer是php新时代的依赖管理利器,就像python的pip,nodejs的npm,javascript的bower等。你可以在自己的项目申明所依赖的外部库,composer可以帮你安装这些

    composer解决如下问题

    • 你有一个项目需要依赖若干个库

    • 其中一个库依赖其他库

    • 找出你需要的版本进行安装


    安装Composer

    要求

    composer 要求 php 不低于 5.3.2+

    命令

    curl -sS https://getcomposer.org/installer | php


    过程如下


    $ curl -sS https://getcomposer.org/installer | php
    All settings correct for using Composer
    Downloading 1.2.1...
    
    Composer successfully installed to: /home/www/php/test/helloworld/composer.phar
    Use it: php composer.phar
    
    $ ll
    -rwxr-xr-x 1 501 dialout 1704783 Oct 10 23:20 composer.phar*


    可以看到执行上述命令之后 会将composer.phar文件下载在当前目录。phar是php的压缩格式,可以直接在命令行运行该文件

    全局安装命令

    $ mv composer.phar /usr/local/bin/composer

    Composer基本使用

    composer.json

    要在你的项目和库使用composer,那么composer.json就是必要文件,可以自行新建。内容是JSON格式非常容易编写

    配置国内镜像源

    将如下代码也放在composer.json中去

    "repositories": {
      "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
      }
    }

    申明依赖 require

    例如我的项目依赖phpexcel,申明如下

    {
      "require":{
        "phpoffice/phpexcel": "1.8.0"
      }
    }


    把上面两步代码合并起来,composer代码如下

    {
      "require":{
        "phpoffice/phpexcel": "1.8.0"
      },
      "repositories": {
        "packagist": {
          "type": "composer",
          "url": "https://packagist.phpcomposer.com"
        }
      }
    }

    安装依赖

    php composer.phar install

    使用国内镜像源安装很快的(会自动生成一个autoload.php文件),安装完结构如下

    $ tree -L 2
    |-- composer.json
    |-- composer.lock
    |-- composer.phar
    |-- index.php
    |-- vendor
        |-- autoload.php
        |-- composer
        |-- phpoffice

    自动加载

    在index.php加入一行 代码就可以直接使用库了

    require 'vendor/autoload.php'

    Composer高级特性

    安装单个库

    php composer.phar require phpoffice/phpexcel
    php composer.phar require phpoffice/phpexcel:dev-master

    更新单个库

    有时间想更新某一个库,不想更新依赖,很简单

    php composer.phar update phpoffice/phpexcel

    直接安装库 不用编辑composer.json

    你要是觉得没添加一个库就要修改composer.json麻烦,可以直接使用 require 命令

    php composer.phar require monolog/monolog  #日志操作库


    结构如下

    $ tree -L 2
    |-- composer.json
    |-- composer.lock
    |-- composer.phar
    |-- index.php
    |-- README.MD
     -- vendor
        |-- autoload.php
        |-- composer
        |-- monolog
        |-- phpoffice
        |-- psr

    移除扩展

    php composer.phar remove sinergi/browser-detector

    生产环境优化

    当你把项目部署到线上环境,不要忘了执行如下代码优化自动加载,可以提高20%左右的性能

    php composer.phar dump-autoload --optimize


    参考资源

    博文演示代码: https://github.com/apanly/composer_helloworld 

    Pachagist官网地址:https://packagist.org/ 

    PHP-FIG: http://www.php-fig.org/

    Composer中文网: http://www.phpcomposer.com/ 

    Json官网:http://json.org/ 



    原文地址:Composer : php依赖管理工具
    标签:composer   psr   require   install   pear   phpexcel   

    智能推荐

  • 相关阅读:
    Android属性动画之ValueAnimation
    Android属性动画之第一重修炼总结
    Android属性动画之ObjectAnimator控制
    Android属性动画之ObjectAnimator
    HDU 4334——Trouble——————【贪心&水题】
    HDU 5416——CRB and Tree——————【DFS搜树】
    HDU 4323——Magic Number——————【dp求编辑距离】2012——MUT——3
    HDU 5384——Danganronpa——————【AC自动机】
    HDU——Cover——————【技巧】
    CF 540D——Bad Luck Island——————【概率dp】
  • 原文地址:https://www.cnblogs.com/apanly/p/5951077.html
Copyright © 2011-2022 走看看