zoukankan      html  css  js  c++  java
  • 【Composer】实战操作一:使用库

    前言

    前面我们简单介绍了composer的安装 以及 如何安装库

    本文目的

    主要实战讲解如何使用库,主要是PSR-0 和 PSR-4的区别,以及如何在代码中引用。关于PSR-0和PSR-4的具体区别可以参考博文 PSR : php编码规范

    演示代码

    演示代码都在 https://github.com/apanly/composer_helloworld  中,有兴趣的可以clone

    实战内容

    引用资源

    • phpoffice/phpexcel

    • monolog/monolog

    • apanly/browser-detector (本人自己的库,后续会讲解如何创建自己的库)


     composer.json文件如下

    {
      "require":{
        "phpoffice/phpexcel": "1.8.0",
        "monolog/monolog": "^1.21",
        "apanly/browser-detector": "dev-master"
      },
      "repositories": {
        "packagist": {
          "type": "composer",
          "url": "https://packagist.phpcomposer.com"
        }
      }
    }

    开始准备

    $ git clone https://github.com/apanly/composer_helloworld
    $ cd composer_helloworld
    $ php composer.phar install #生成vendor目录以及下载composer.json配置的库

    演示1

    index.php主要演示使用apanly/browser-detector库,本库使用PSR-4自动加载

    $ php index.php #使用apanly/browser-detector库 
    Chrome
    Android
    Meizu

    演示2(PSR-0)

    psr4.php 使用phpoffice/phpexcel,本库使用PSR-0标准,规则讲解如下


    根据博文中( http://www.54php.cn/default/173.html  )介绍的,使用PSR-0规则自动加载,对于最后一个之后的类名,如有下划线会转化成路径分隔符

    PHPExcel_IOFactory 就会转化为 PHPExcelIOFactory

    按照配置的规则

    "autoload": {

            "psr-0": {

                "PHPExcel": "Classes/"

            }

        }

    PHPExcel_IOFactory => Classes/PHPExcel/IOFactory.php


        

    演示代码如下

    <?php
    require(__DIR__.'/vendor/autoload.php');
    $path = 'test.xlsx';
    $objPHPExcel = PHPExcel_IOFactory::load( $path );

    演示3(PSR-4)

    psr4.php 使用 monolog/monolog 库,本库使用psr-4自动加载,规则讲解如下


    根据博文中(http://www.54php.cn/default/173.html)介绍的,使用PSR-4规则自动加载

    按照配置的规则

    "autoload": {

        "psr-4": {"Monolog\": "src/Monolog"}

    }

    MonologLogger => src/Monolog/Logger.php

    MonologHandlerStreamHandler => src/Monolog/Handler/StreamHandler.php


    演示代码如下


    <?php
    require(__DIR__ . '/vendor/autoload.php');
    $log = new MonologLogger('name');
    $log->pushHandler(new MonologHandlerStreamHandler('app.log', MonologLogger::WARNING));
    $log->addWarning('Foo');

    总结

    • 推荐使用psr-4规范,因为这样更像命名空间并且也更简洁

    • 时刻记住psr-0 和 psr-4的区别,这样就可以很方便的使用第三方库,避免重复造轮子

    • 记得使用国内源(翻墙的绕行)





    原文地址:【Composer】实战操作一:使用库
    标签:composer   psr   phpexcel   phpoffice   monolog   browser-detector   psr0   psr-0   psr4   psr-4   

    智能推荐

  • 相关阅读:
    Spiral Matrix II
    N-Queens
    Jump Game II
    js改变div高度
    Jenkins + testNg + maven 项目持续集成
    bootstrap做的导航
    bootstrap左侧边栏
    WEB-INF下jsp跳转
    jsp页面无法解析EL表达式
    springMVC和mybatis整合,jsp对时间进行格式化
  • 原文地址:https://www.cnblogs.com/apanly/p/6018380.html
Copyright © 2011-2022 走看看