前言

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

本文目的

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

演示代码

演示代码都在   中,有兴趣的可以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库 ChromeAndroidMeizu

演示2(PSR-0)

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

根据博文中(   )介绍的,使用PSR-0规则自动加载,对于最后一个\之后的类名,如有下划线会转化成路径分隔符

PHPExcel_IOFactory 就会转化为 PHPExcel\IOFactory

按照配置的规则

"autoload": {

        "psr-0": {

            "PHPExcel": "Classes/"

        }

    }

PHPExcel_IOFactory => Classes/PHPExcel/IOFactory.php

    

演示代码如下

演示3(PSR-4)

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

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

按照配置的规则

"autoload": {

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

}

Monolog\Logger => src/Monolog/Logger.php

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

演示代码如下

pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));$log->addWarning('Foo');

总结

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

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

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

原文地址:
标签: