博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Composer】实战操作一:使用库
阅读量:5882 次
发布时间:2019-06-19

本文共 1605 字,大约阅读时间需要 5 分钟。

  hot3.png

前言

前面我们简单介绍了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.54php.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的区别,这样就可以很方便的使用第三方库,避免重复造轮子

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

原文地址:
标签:                              

智能推荐

转载于:https://my.oschina.net/54php/blog/778980

你可能感兴趣的文章
WinForm 应用程序中开启新的进程及控制
查看>>
js replace,正则截取字符串内容
查看>>
Thinkphp5笔记三:创建基类
查看>>
查询反模式 - GroupBy、HAVING的理解
查看>>
Android中EditText,Button等控件的设置
查看>>
TextKit简单示例
查看>>
网格最短路径算法(Dijkstra & Fast Marching)(转)
查看>>
软链接和硬链接详解
查看>>
Redis_master-slave模式
查看>>
彻底卸载删除微软Win10易升方法
查看>>
SWT/JFACE之环境配置(一)
查看>>
应用程序日志中总是说MS DTC无法正确处理DC 升级/降级事件,是什么意思
查看>>
mybatis数据处理的几种方式
查看>>
作业2
查看>>
远程主机探测技术FAQ集 - 扫描篇
查看>>
C++中调用python函数
查看>>
Nomad添加acl认证
查看>>
“TI门外汉”网路知识笔记一 OSI参考模型
查看>>
你不需要jQuery(五)
查看>>
DatanodeDescriptor说明
查看>>