• composer的基本运用


    Composer -- PHP依赖管理的新时代

    一、简介

      说到composer,绝大多数的开发人员都会用到。composer是一个什么工具呢?

      composer 是 PHP 用来管理依赖(dependency)关系的工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。

      

      composer解决的是什么问题?

      在开发中,我们可能会用到第三方库,一个项目一般都是依赖若干个库,而第三方库可能也需要依赖另一个第三方库。那么,谁来管理这种依赖关系呢,就是composer。它不仅解决了库的依赖关系,他还会根据环境,如PHP版本下载对应可支持的第三方库的版本。

     

    二、安装

      想要使用,第一步肯定就是安装。那么如何安装呢?

      安装前首先确保已经安装了PHP并配置到环境变量中可全局使用(像集成环境的可能要手动配一下)。

      windows+R打开运行输入cmd打开控制台,输入“curl -sS https://getcomposer.org/installer | php”,这个前提是要下载curl,点击http://curl.haxx.se/download下载最新版本安装即可。

      也可以使用 "php -r "readfile('https://getcomposer.org/installer');" | php"命令,通过PHP下载安装器。

      

      下载成功后会在当前目录下生成一个composer.phar文件,即安装成功。

      

      进入到文件所在目录可输入“php composer.phar” 查看composer的信息

      

      为了方便,我们可以将composer.phar配置到全局变量中,这样我们所有的项目都能使用composer工具。配置后,只需使用composer命令即可,无需php composer.phar

      

    三、使用

      如何使用呢,首先进入到项目的根目录中,创建一个composer.json文件。

      格式如下

    {
        "name": "wwj/demo",
        "description": "teach",
        "authors": [
            {
                "name": "githubwwjcn",
                "email": "xxxxxx@qq.com"
            }
        ],
        "require": {}
    }

      也可以在命令提示符窗口使用composer命令:composer init

      

      插件的安装:

      可以直接在json文件中的require字段中写入插件名字

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

      然后在命令提示符窗口输入命令:composer install,进行安装插件,composer会自动安装该插件所要依赖的所有第三方插件

      

      安装成功,看目录demo

      

      多出了一个vendor文件夹和一个composer.lock文件。

      首先说composer.lock文件,这个用来干什么呢?先来看看里面的内容:

      

    {
        "_readme": [
            "This file locks the dependencies of your project to a known state",
            "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
            "This file is @generated automatically"
        ],
        "content-hash": "ea169889a99da2e9cb5cb9911a50b7c5",
        "packages": [
            {
                "name": "monolog/monolog",
                "version": "1.0.2",
                "source": {
                    "type": "git",
                    "url": "https://github.com/Seldaek/monolog.git",
                    "reference": "b704c49a3051536f67f2d39f13568f74615b9922"
                },
                "dist": {
                    "type": "zip",
                    "url": "https://api.github.com/repos/Seldaek/monolog/zipball/b704c49a3051536f67f2d39f13568f74615b9922",
                    "reference": "b704c49a3051536f67f2d39f13568f74615b9922",
                    "shasum": ""
                },
                "require": {
                    "php": ">=5.3.0"
                },
                "type": "library",
                "autoload": {
                    "psr-0": {
                        "Monolog": "src/"
                    }
                },
                "notification-url": "https://packagist.org/downloads/",
                "license": [
                    "MIT"
                ],
                "authors": [
                    {
                        "name": "Jordi Boggiano",
                        "email": "j.boggiano@seld.be",
                        "homepage": "http://seld.be",
                        "role": "Developer"
                    }
                ],
                "description": "Logging for PHP 5.3",
                "homepage": "http://github.com/Seldaek/monolog",
                "keywords": [
                    "log",
                    "logging"
                ],
                "time": "2011-10-24T09:39:02+00:00"
            }
        ],
        "packages-dev": [],
        "aliases": [],
        "minimum-stability": "stable",
        "stability-flags": [],
        "prefer-stable": false,
        "prefer-lowest": false,
        "platform": [],
        "platform-dev": []
    }

      composer.lock-锁文件,在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定改项目的特定版本。当再次安装该项目的时候,composer首先会检测是否存在composer.lock锁文件,存在则按照锁文件的插件的版本进行安装,而不会安装最新的版本;不存在,则按照composer.json,require里面的版本要求进行安装。

       再说vendor文件夹,大家估计也猜到肯定就是存放插件的地方了

      如图,,也包含了composer提供的插件加载功能autoload。

    四、应用

      插件安装后,如何在自己的项目中使用。很简单,只需引入自动加载文件autoload.php。  

      require 'vendor/autoload.php';

      然后实例化该插件

    $log = new MonologLogger('name');
    $log->pushHandler(new MonologHandlerStreamHandler('app.log', MonologLogger::WARNING));
    
    $log->addWarning('Foo');

      基础的应用,应该就是这样了,有错提出来,我纠正一下~

  • 相关阅读:
    【cf932E】E. Team Work(第二类斯特林数)
    【bzoj5093】[Lydsy1711月赛]图的价值(NTT+第二类斯特林数)
    斯特林数及斯特林反演
    Codeforces Round #608 (Div. 2)
    【cf1272】F. Two Bracket Sequences
    Codeforces Round #606 (Div. 2)
    【hdu4045】Machine scheduling(dp+第二类斯特林数)
    【poj2661】Factstone Benchmark(斯特林公式)
    [USACO1.4] Packing Rectangles
    [CF1313D] Happy New Year
  • 原文地址:https://www.cnblogs.com/wwjchina/p/9394594.html
Copyright © 2020-2023  润新知