Composer自动加载(一)
我的个人博客:逐步前行STEP
Composer是PHP的基于项目的依赖管理工具,它本身集成一个autoloader,支持PSR-4,PSR-0,classmap,files 四种自动加载方式。
#首先介绍一下PSR-4与PSR-0。
介绍这两种自动加载规范之前必须先交代一下什么是PSR:
PSR
是制定的代码规范,简称PSR,是代码开发的事实标准。
PSR共有6个规范,分别是:
1 基础编码规范 PSR-1
2 编码风格规范 PSR-2
3 日志接口规范 PSR-3
4 自动加载规范 PSR-4
4 缓存接口规范 PSR-6
6 HTTP 消息接口规范 PSR-7
还有一个被废弃的规范:自动加载规范 PSR-0。
PSR-0和PSR-4同样是自动加载规范,看起来重复了,但事实上PSR-2和PSR-4是随着PHP版本演变而发展的,在PHP5.3之前,没有命名空间的概念,为了兼容第三方包,都是以下划线来区分类,为了兼容这种情况,PSR-0中会将类名中的下划线解析成目录分隔符,获取相应的目录层级和命名空间,比如加载含有名为Acme_Util_ClassName的类的文件ClassName.php的写法:
{"name": "acme/util","auto" : {"psr-0": {"Acme\\Util\\": "src/"}}
}
实际目录结构是:
vendor
Composer自动加载(一)相关推荐
- 你不知道的composer自动加载
2019独角兽企业重金招聘Python工程师标准>>> 我们都知道Composer是现代PHP框架(Yii2.Laravel...)的基石,有了Composer后我们开发是一件多么的 ...
- thinkphp 框架自动加载原理_这下你应该理解ThinkPHP的Loader自动加载了
想了很久终于要开始系列文章的编写了,期望是写出提升和面试都可以搞定的系列文章. 当你看到本文时,如果你发现咔咔没有编写到的面试热点问题或者技术难点,期待评论区指出,一起完善. 前言 目前再整理PHP进 ...
- thinkphp源码分析(三)—自动加载篇(Loader的分析)
源码分析 自动加载 系统会调用 Loader::register()方法注册自动加载,在这一步完成后,所有符合规范的类库(包括Composer依赖加载的第三方类库)都将自动加载. 系统的自动加载由下面 ...
- 分析ThinkPHP5的源码(1) : 类的自动加载
前文 Composer 下载ThinkPHP5.1的源码,每个框架它都必须都有一个"类的自动加载"机制 ,我们都知道PHP引入文件是需要require . include 才能使用 ...
- thinkphp 框架自动加载原理_thinkPHP5.0框架自动加载机制分析
本文实例讲述了thinkPHP5.0框架自动加载机制.分享给大家供大家参考,具体如下: 概述 ThinkPHP5.0 真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类 ...
- php ajax 上拉显示更多,PHP+Ajax点击加载更多内容 -这个效果好,速度快,只能点击更多加载,不能滚动自动加载...
这个效果好,速度快,只能点击更多加载,不能滚动自动加载 一.HTML部分 ::点击加载更多内容:: 引入jQuery插件和jquery.more.js加载更多插件 jQuery $(function( ...
- composer php中如何执行,php中composer如何实现类的自动加载(示例讲解)
本篇文章给大家带来的内容是关于php中composer如何实现类的自动加载(示例讲解),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 我们在开发项目中会经常用到第三方的类库插件,但是 ...
- Laravel核心技术解析(1)—— Composer 组件管理与自动加载
Composer作为PHP的组件化管理工具,实现了laravel框架的组件安装.更新.移除,以及自动加载功能,下面就深入解析这是如何实现的. 使用Composer安装组件,首先需要创建composer ...
- thinkphp 框架自动加载原理_ThinkPHP5分析Part 1 基本框架流程
ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能 ...
最新文章
- JavaScript中的面向对象程序设计
- javax.servlet.GenericServlet类(协议无关版本)
- 老李分享:Web Services 组件 2
- 常见python面试题总结
- 带有无参数的存储过程
- html dom 修改,HTML DOM - 修改
- 上dj是什么意思_火花塞上的每个编码是什么意思
- 输入矩阵java_java如何输入一个自定义矩阵
- oracle11gr2克隆安装,克隆安装Oracle 11G HOME
- const 与readonly的异同
- 树莓派控制台达伺服控制器
- js绘制3D正多面体(正六面体,正四面体,正八面体,正十二面体,正二十面体)
- 如何有效开展小组教学_如何有效地开展小组教学研究初探
- 顺丰java面试题_顺丰java开发面试分享,顺丰java面试经面试题
- Delphi实现win10视频壁纸
- 常用英语口语1000句
- 【围观】CISP-PTE 考题示例
- linux快速删除大量目录,Linux 快速删除大量小文件方法
- 捕获海康威视IPCamera图像,转成OpenCV可以处理的图像(二)
- 初学小程序(第4天)
热门文章
- 某页纸api接口网站源码 高速php源码
- 高并发处理方案_高并发系统下的缓存解决方案
- laravel 如何 new php 类,PHP实例:laravel通过创建自定义artisan make命令来新建类文件详解...
- java的调试页面_[Java教程]使用开发者工具调试jsp页面中的脚本
- 计算机代码图表,微信小程序图表插件(wx-charts)实例代码
- linux java 进程内存_linux – 在java进程中消耗内存的是什么?
- Vue使用Element-ui按需引入大坑
- 网站运营需要注意什么?
- 远程连接“终端服务器超出了最大允许连接数” 解决
- Cuyahoga 添加模块