PHP拓展篇——Composer实战操作指南

Composer是什么

玩过Linux或者玩过编程的应该都知道,yum、apt-get、npm、bower等命令,composer其实和上面是一样的,只是composer专门给PHP用。

  • 就像iOS中的Pods,Carthage,Android中的gradle

    • pod = cocoapods 编译成静态链接库或者动态框架文件,会修改Xcode项目属性配置依赖关系
    • Carthage 去中心化(无中心库), 非侵入性:动态框架,不会修改Xcode项目属性配置依赖关系
    • gradle(JCenter,mavenCenter,JitPack)。Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。面向Java应用为主。
而Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你声明项目所依赖的代码库,它会在你的项目中为你快速安装他们。涉及 “packages” 和 “libraries”。

平时我们安装一个PHP类库,需要搜索->下载;使用composer,我们只要知道包名,直接composer insatll就可以了。

Composer 也只是一段 PHP 脚本,用官方的话说就是:

是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。

Composer用途

安装PHP包、依赖库。

通过过composer,我们可以使用大量的第三方库,而无需自己造轮子

比如
  • monolog

    • $ composer require monolog/monolog
  • laravel

    • $ composer create-project laravel/laravel learnlaravel5 5.0.22
  • thinkphp5:然后在命令行下面,切换到你的web根目录下面并执行下面的命令:

    • $ composer create-project topthink/think=5.0.* tp5 –prefer-dist

你可以在 https://packagist.org/ 找到你需要的库。甚至你可以提交自己写的优秀的库到该平台里供大家使用。

安装

废话不多说,直接上代码

安装

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

全局

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

之后,就可以直接使用composer install安装包了。不过通常情况下只需将composer.phar的位置加入到PATH就可以,不一定要全局安装。

镜像

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

更新

composer self-update

操作执行结束,会在当前目录下生成composer.phar文件,在Linux里,composer.phar是可执行程序。

例如,我们可以使用php composer.phar update执行更新操作。

全局安装:

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

验证

composer
[parallels@centos-7 html]$ composer                                        
   ______                                                                  
  / ____/___  ____ ___  ____  ____  ________  _____                        
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/                        
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /                            
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/                             
                    /_/                                                    
Composer version 1.8.4 2019-02-11 10:52:10                                 

Usage:                                                                     
  command [options] [arguments]                                            

Options: 
    ...
version
[parallels@centos-7 html]$ composer -V
Composer version 1.8.4 2019-02-11 10:52:10

使用

初始化

在自己想要创建项目的地方新建一个文件夹,命名为 ComposerP1,在文件夹下新建文件

composer.json:
{
  "require": {

  }
}

命令行切换到 ComposerP1 目录下,运行:

composer update

就会在该目录下生成一个vendor文件夹。以后所有的第三扩展包都会安装在这里。

安装扩展包

在项目目录下创建一个composer.json文件,指明依赖,比如,你的项目依赖 monolog:

{
    "require": {
        "monolog/monolog": "1.2.*"
    },
    "config": { // 解决有时候因为https造成的问题
        "secure-http": false
    }
}
安装依赖

安装依赖非常简单,只需在项目目录下运行:

composer install

如果没有全局安装的话,则运行:

php composer.phar install

更新全部的包(谨慎使用):

composer update

注意:使用composer install或者composer update命令将会更新所有的扩展包,项目中使用需谨慎!!!

若只安装指定的包推荐在命令行使用一下命名进行安装。

composer require monolog/monolog

如果需要指定版本:

composer require “monolog/monolog:1.2.*”

更新某个包:

composer update monolog/monolog

移除某个包:

composer remove monolog/monolog

如果手动更新了composer.json需要更新autoload:

composer dump-autoload

命令汇总

  • composer list 列出所有可用的命令
  • composer init 初始化composer.json文件(就不劳我们自己费力创建啦),会要求输入一些信息来描述我们当前的项目,还会要求输入依赖包
  • composer install 读取composer.json内容,解析依赖关系,安装依赖包到vendor目录下
  • composer update 更新最新的依赖关系到compsoer.lock文件,解析最新的依赖关系并且写入* composer.lock文件
  • composer search packagename 搜索包,packagename替换为你想查找的包名称
  • composer require packagename 添加对packagename的依赖,packagename可修改为你想要的包名称
  • composer show packagename
  • composer self-update 更新 composer.phar文件自身
  • composer dump-autoload –optimize 优化一下自动加载
  • composer command –help 以上所有命令都可以添加 –help选项查看帮助信息
坚持原创技术分享,您的支持将鼓励我继续创作!