轻松学会composer的使用

2017年12月13日12:00:29 发表评论 65

简介

对于现代语言而言,包管理器基本上是标配,Java有Maven,Python有pip,NodeJs有npm ,PHP之前是PERAR,不过PEAR有很多缺点。

  • 依赖处理容易出现问题
  • 配置非常复杂
  • 难用的命令行接口好在Composer诞生了。Composer是PHP中用来管理依赖关系的工具。你可以在自己的项目中声明所依赖的PHP包,Composer会帮我们安装这些依赖的库文件。这类似于CentOs中的yum命令。

毫不夸张的说,现在不知道composer的phper,不是一个好phper。

Composer作用

  1. composer是用来管理(更新、下载、卸载)php包
  2. composer还可以实现自动加载

在Linux安装composer步骤

a. 设置CentOs时间与网络时间同步(如果你的服务器时间不准确才需要设置)

  1. 安装ntpdate工具
    $ yum -y install ntp ntpdate
  2. 设置系统时间与网络时间同步
    $ ntpdate cn.pool.ntp.org
  3. 将系统时间写入硬件时间
    $ hwclock --systohc

b. centos全局安装composer

    //composer下载地址https://getcomposer.org/composer.phar
    //将下载下来的composer.phar文件移动到/usr/local/bin目录下  是命令全局可用
    mv composer.phar /usr/local/bin/composer  

c. 设置composer源

如果不设置composer源,那么composer将默认从国外下载包,速度将很慢。

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

使用Composer安装依赖包

在项目目录建立composer文件,说明依赖,比如你的项目依赖monolog

那么你需要在composer.json文件中输入以下内容:

    {
        "require":{
            "monolog/monolog":"1.21.*"
        }
    }

安装依赖

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

运行了composer install 后就会下载写在composer.json文件中的包了

  • 如果没有全局安装composer的话,则运行
      $ php composer.phar install
    

注意php必须已经加入环境变量

  • 另外一种使用composer下载包的方式
      $ composer install 包名
    

使用Composer安装的代码

Composer提供了自动加载的特性,只需要在你的代码中加入下面一行:

 require 'vendor/autoload.php';

Composer仓库

packagist.org网站是Composer的仓库,很多著名的PHP库都能在其中找到。我们也可以提交自己的库。

更新Composer

Composer最好经常更新

$ composer self-update

更新依赖

//如果修改了Composer.json文件,需要执行下面的命令,Composer.json文件才生效

$ composer update

如果你只是想更新几个包,你可以分别列出他们:

$ composer update vendor/package vendor/package2

如何使用我们写的代码

a. 编写composer.json告诉composer我们的代码在哪里

    "autoload":{
        "psr-4":{
            "app\\Controller\\":"app/Controller",
            "app\\Model\\":"app/Model"
        }
    }

       "app\\Controller\\":"app/Controller",

    左边("app\\Controller\\")的是 命名空间

右边("app/Controller")的是对应命名空间的代码的目录

b. 更新一下composer.json文件

$ composer update

c. 只要在入口文件中

    //也可以使用你自己写的代码了
    require('./vendor/autoload.php');
<

第一次使用composer完整步骤

a. 去到官网选择手动下载,得到composer.phar文件

    https://getcomposer.org/composer.phar

b. 将composer放入Linux命令中

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

c. 生成一个composer.json文件

    composer init

d. 将你要下载包,写到composer.json文件中。包名去https://packagist.org/网站找

    {
        "require":{
            "monolog/monolog":"1.21.*",
            "phpoffice/phpexcel": "^1.8",
            "overtrue/wechat": "~3.1"
        }
    }

e. 配置packagist国内镜像

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

f. 安装包

    $ composer install

已经生成composer.json后如何安装包

a. 先确定你要安装包名

比如,我要下载predis/predis

b. 运行下面命令下载

    $ composer require predis/predis

原文链接:https://www.3maio.com/w-detail/17

  • 博主微信
  • 赶快加我来聊天吧
  • weinxin
  • 站长技术资源群
  • 群号:483950522
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: