美文网首页PHP的学习
2,PHP依赖管理:composer

2,PHP依赖管理:composer

作者: 陈钢镚学财 | 来源:发表于2017-02-21 16:45 被阅读66次

作为一个年轻的开发者,熟练使用一些提高开发效率的工具是必须的。
composer是PHP的依赖管理工具,用于管理PHP的Libraries和packages。
它将优秀的php轮子统一管理在 packagist.org

packagist并不管理代码,简单地说,他就像一张表,一方面为composer提供了依赖名称,另一方面又映射到了github的某一个仓库

composer的用处


刚去了解composer的时候,光从字面上理解所谓的依赖管理,的确有些生硬。
但是,任何一个工具的诞生,背后必然是由时长需求所驱动。
既然如此,只要我们知道,用了composer,能给我们php开发带来怎样的意义,你就已经知道,composer到底是个什么东西了。
那么接下来,我们就从不用composer和用composer两种场景,来说说,composer到底能做什么。

  • 不用composer

  • 假设,你的项目A,需要用到了一些github上面的轮子,如分页类、curl类、日志类、数据库驱动类。这时候,想要将之应用到你的项目中,你的步骤可能是这样的:

    1. 在github上,分别找到这几个类所在的仓库,再一一下载下来
    2. 按照你项目的特性,将几个类分别或统一放入某个文件夹
    3. 你可能需要对下载下来的东西做一些修改,才能运用到你的项目中(如,命名空间)
  • 这时候,你又要做另一个项目B了,需要这其中的某几个类,但出于一些原因,你不能直接复制项目A现有的框架,于是:

    1. 你又把项目A中的几个类库,复制出来
    2. 放到你新项目的文件夹中,进行改造,才能使用

这种情况下,项目A或项目B中,从github上找来的轮子,就是项目的依赖。通常,你都是手动的管理这些依赖,这会耗费你大量的精力,如果项目和轮子很多的话。
正是因为这样手动管理的成本太大,程序员又多是聪明绝顶之辈,composer(php的依赖管理工具)就应运而生了。

  • 用composer
    从上面的流程看来,很明显,你在不同的项目间,管理github上的轮子,是非常麻烦的,而且,万一操作过程中,你电脑卡了,文件复制到一半,那岂不是麻烦了?但如果你使用了composer,那就是另外一回事了。
  1. 新建一个composer.json文件,写好所有依赖
  2. 运行composer install
  3. 坐等完成
  4. require 'vendor/autoload.php';
  5. 接着就能直接用了

别看步骤好像很多,去体会一下,就知道妙处。

composer使用的核心


  • composer.json
这是laravel的composer.json文件,注意到 autoload 的值了吗?这就是composer对你项目自动加载要求的命名空间
{
   "name": "laravel/laravel",
   "description": "The Laravel Framework.",
   "keywords": ["framework", "laravel"],
   "license": "MIT",
   "type": "project",
   "require": {
       "php": ">=5.6.4",
       "laravel/framework": "5.4.*",
       "laravel/tinker": "~1.0"
   },
   "require-dev": {
       "fzaninotto/faker": "~1.4",
       "mockery/mockery": "0.9.*",
       "phpunit/phpunit": "~5.7"
   },
   "autoload": {
       "classmap": [
           "database"
       ],
       "psr-4": {
           "App\\": "app/"
       }
   },
   "autoload-dev": {
       "psr-4": {
           "Tests\\": "tests/"
       }
   },
   "scripts": {
       "post-root-package-install": [
           "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
       ],
       "post-create-project-cmd": [
           "php artisan key:generate"
       ],
       "post-install-cmd": [
           "Illuminate\\Foundation\\ComposerScripts::postInstall",
           "php artisan optimize"
       ],
       "post-update-cmd": [
           "Illuminate\\Foundation\\ComposerScripts::postUpdate",
           "php artisan optimize"
       ]
   },
   "config": {
       "preferred-install": "dist",
       "sort-packages": true
   }
}

  • composer.lock
    这个文件存在时,当其他环境得到这份安装包,则composer install时,会以一模一样的版本安装依赖。
  • 执行
    composer install ,它会自动帮你把依赖的类库全载入进来
图片.png
  • 自动加载
    require 'vendor/autoload.php';

结语

本文只对composer做了一个入门级的总结,实际上,这已经适用于很多开发场景了。如果需要更深入的学习,可以看一下composer的中文文档

相关文章

  • PHP 开发者该知道的 5 个 Composer 小技巧

    Composer 是新一代的PHP依赖管理工具。其介绍和基本用法可以看这篇《Composer PHP依赖管理的新时...

  • 5 个 Composer 小技巧

    Composer 是新一代的PHP依赖管理工具。其介绍和基本用法可以看这篇《Composer PHP依赖管理的新时...

  • php jwt使用

    安装 使用composer管理依赖项并下载PHP-JWT: 示例 1 输出 示例 2 输出 php openss...

  • 2,PHP依赖管理:composer

    作为一个年轻的开发者,熟练使用一些提高开发效率的工具是必须的。composer是PHP的依赖管理工具,用于管理PH...

  • composer.lock和composer.json

    composer是PHP用来管理项目依赖的管理工具。 在使用composer安装更新项目时,composer in...

  • 第三讲:Win7下安装Composer

    一、Windows下安装Composer Composer是 PHP用来管理依赖关系(dependency)的工具...

  • php笔记

    Composer在windows下的安装使用 Composer是 PHP 用来管理依赖(dependency)关系...

  • 【Composer】Windows 安装教程

    Composer 【简介】:Composer 是PHP用来管理依赖(dependency)关系的工具。你可以在自己...

  • composer

    Composer 是 PHP 的一个依赖管理工具。 简介 依赖管理 Composer 将这样为你解决问题: 你有一...

  • composer

    什么是composer composer是 PHP 用来管理依赖(dependency)关系的工具,传统的引入扩展...

网友评论

    本文标题:2,PHP依赖管理:composer

    本文链接:https://www.haomeiwen.com/subject/azxuwttx.html