包管理器-composer

对于现代语言而言,包管理器基本是标配。

  • java --Maven
  • NodeJs --NPM
  • Objective-C --C
  • PHP --PEAR
    但是pear有许多缺点:依赖处理容易出问题,配置非常复杂,难用的命令行接口。故php常用composer。
  • composer是PHP的一个依赖管理工具,不是一个包管理器,它涉及‘packages’和‘libraries’.
  • 在项目中声明所依赖的外部工具库(libraries)composer会自动安装这些工具库及依赖的库文件。

下面介绍composer的安装方法:

  1. composer-setup.ex win操作系统,需翻墙
  2. composer.phar 通用安装方式,适用win,linux,mac,不需要翻墙

下载后在当前目录执行php composer.phar 来查看是否安装成功。

  • 局部安装
    将composer.phar文件复制到任意目录(比如项目根目录下),然后通过php composer.phar指令即可使用composer了。
  • 全局安装(推荐)
    将composer安装到系统环境变量path中,就能在命令行窗口中直接执行composer命令,不需要在前面加上php了。
    • mac或linux系统
      sudo mv composer.phar /usr/local/bin/composer
      如果没有权限,则要执行sudo chmod -R 755 composer
    • win系统
      将composer.phar拷贝到php.exe同级目录;
      新建composer.bat文件,并将下面代码保存到该文件中
      @php "%~dp0composer.phar" %*
      全局安装后直接输入composer就可以查看到其相关信息了。

使用composer中国全量镜像
为什么使用composer镜像?

  • 安装包的数据是从github.com上下载的,安装包的元数据是从packageist.org上下载的
  • 国外的网站连接速度很慢,并且随时可能被墙
  • composer中国全量镜像所做的就是缓存所有安装包和元数据到国内的机房并通过国内的cdn进行加速,这样就不必再去国外的网站发起请求
    打开composer中文网 www.phpcomposer.com
    进入中国全量镜像 https://pkg.phpcomposer.com 即可看到配置方法。
    先使用composer config -g repo.packagist查看当前的镜像地址;
    有时会报错There is no packagist repository defined,这时可以通过输入composer config -gl查看镜像地址信息;

如果composer是局部安装的,需使用php composer.phar config repo.packagist composer https://packagist.phpcomposer.com 上述命令会在当前项目中的composer.json文件的末尾自动添加镜像的配置信息:

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

下面介绍使用composer安装laravel

  • 通过composer create-project 命令安装laravel
    composer create-project laravel/laravel --prefer-dist [别名]
  • laravel安装器
    composer global require "laravel/installer"
    laravel new blog

可以使用composer search laravel查看laravel框架的信息,使用composer show --all laravel/laravel查看laravel包的具体信息。
使用composer安装laravel, 到服务器根目录打开命令行创建项目文件,这里安装的是5.4的版本:
composer create-project --prefer-dist laravel/laravel blog "5.4.*"
PS: 最好先配置好中国全量镜像再安装,不然很慢,等的花儿都谢了:-)
安装后打开localhost到相应路由(localhost/library_management_system/public/index.php)就可以查看是否成功了。

推荐阅读更多精彩内容