文档章节

Composer自动加载功能

 蜗牛奔跑
发布于 2016/11/24 14:06
字数 531
阅读 17
收藏 0
点赞 0
评论 0

一、安装Composer

这里略过,查看:http://blog.csdn.NET/github_26672553/article/details/51759206

 

二、

1.首选新建一个PHP项目文件夹

2.可以手动写一个composer.json,内容如下:

 

[plain] view plain copy

  1. {  
  2.     "autoload": {  
  3.         "files": ["comm/functions.php"]  
  4.     }  
  5. }  

 


从上面json信息,我们可以大致猜测,这是要做文件的自动加载。

 

同时,我们新建好comm目录和functions.php文件。这个项目结构如图:

完成上面操作,我们打开终端,cd到 test目录下面,执行命令:

[plain] view plain copy

 在CODE上查看代码片派生到我的代码片

  1. composer dump-autoload  
然后在看我们的项目,多出来一个vendor目录,里边就是composer的东西:

 

至此,我们应该来测试一下,composer到底怎么做自动加载的?

我们在comm目录下的functions.php写了一个函数:

 

[php] view plain copy

 在CODE上查看代码片派生到我的代码片

  1. function  showName() {  
  2.     echo '我的名字';  
  3. }  

然后我们要在index.php中,调用这个函数。

 

常规的方法是先要require 'comm/functions.php', 然后才能调用funcitons.php中定义的函数。

下面我们看composer的方式:

[php] view plain copy

 在CODE上查看代码片派生到我的代码片

  1. // 下面使用composer来做自动加载  
  2. // 1.第一步  
  3. require __DIR__.'/vendor/autoload.php';  
  4. // 2.使用  
  5. showName();  

 

在浏览器访问index.php,我们可以看到成功调用了showName函数。

 

 

我们继续在comm目录下,新建一个test.php文件:

[php] view plain copy

 在CODE上查看代码片派生到我的代码片

  1. <?php  
  2. function test(){  
  3.     echo 'test';  
  4. }  
这个时候,我们要想在index.php中能调用test()函数,

 

需要:在composer.json中增加:

[plain] view plain copy

 在CODE上查看代码片派生到我的代码片

  1. "files": ["comm/functions.php","comm/test.php"]  
然后到在终端,同样还是在项目目录下,执行:

[plain] view plain copy

 在CODE上查看代码片派生到我的代码片

  1. composer dump-autoload  
完成上面2步,我们就可以在index.php中,调用test()函数了。

 

 

下面,我们来看一下类是如何自动加载的?

我们新建一个Class目录,里面新建一个User.php:

[php] view plain copy

 在CODE上查看代码片派生到我的代码片

  1. <?php  
  2. class User{  
  3.       
  4. }  
然后修改composer.json文件:

 

 

[plain] view plain copy

 在CODE上查看代码片派生到我的代码片

  1. {  
  2.     "autoload": {  
  3.         "files": ["comm/functions.php","comm/test.php"],  
  4.         "classmap": ["Class/"]  
  5.     }  
  6. }  
完成上面操作,同样是需要在终端下执行:composer dump-autoload

最后,我们在index.php中测试:

 

 

[php] view plain copy

 在CODE上查看代码片派生到我的代码片

  1. $user = new User();  
  2. var_dump($user);  
成功打印:object(User)#3 (0) { }

 

说明类的自动加载也是没有问题的。

本文转载自:

共有 人打赏支持
粉丝 34
博文 596
码字总数 114025
作品 0
海淀
laravel控制器分组

http://www.zroran.com/it/php/laravel/6.html 在laravel默认配置中,所有控制器都在 app/controllers 目录下,很多时候需要分组功能,比如 API分组,ADMIN分组,前台分组。 手册中并没有明确...

吾爱 ⋅ 2014/11/20 ⋅ 0

Laravel 4:FontEnd/BackEnd环境部署

# 程序结构如下: app routes.php models controllers backend IndexController.php fontend IndexController.php # 后台IndexController.php...

v8v9v3000 ⋅ 2014/08/06 ⋅ 0

利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备

“一个时代结束了,另一个时代开始了。” Framework Interoperability Group(框架可互用性小组),简称 FIG,成立于 2009 年。FIG 最初由几位知名 PHP 框架开发者发起,在吸纳了许多优秀的大...

peasant ⋅ 2016/06/03 ⋅ 0

利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备

利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备 『Composer 一统天下的时代已经到来!』——白岩松 “一个时代结束了,另一个时代开始了。” Framework Interoperability Gro...

蜗牛奔跑 ⋅ 2016/10/15 ⋅ 0

探索PHP构造项目之路之停止复制粘贴

当系统有不同的web应用,但是需要共用很多代码怎么办 当系统需要一个扩展功能而这个扩展功能网上刚好有人提供了怎么用 PHP代码如何升级,降级,回滚 如何分配任务,如何让多个工程师一起进行...

周智超 ⋅ 2016/09/21 ⋅ 0

PHP开发人员需知道的几个知识

互联网时代,软件更新迭代非常之快,作为php开发人员,我们也需要与时俱进,如果有条件的话,尽可能的使用最新版的软件进行开发。比如,你现在就应该用php 5.3以上版本。 废话不多说,今天和...

小懒人23 ⋅ 2016/05/19 ⋅ 0

Composer - PHP依赖管理

Composer是 PHP 用来管理依赖的工具,提供了科学的第三方包的模块化及更新方案。 运行原理 声明项目依赖 工具前往仓库获取包的元数据信息 工具根据元数据信息前往等代码托管平台获取第三方包...

麦拂沙 ⋅ 2015/10/04 ⋅ 0

关于在 Laravel 5 中集成七牛云存储实现云存储功能

关于在 Laravel 5 中集成七牛云存储实现云存储功能 使用的是七牛官方的SDK,非storage版本 方法很简单,仅介绍Composer 安装方式,如下: 安装 Composer 运行 Composer 命令安装最新稳定版本...

红枫醉 ⋅ 2016/09/15 ⋅ 1

自己创建composer包并

大纲 创建自己的composer库 提交到指定平台 测试安装自己的库 设置composer平台自动更新 如何方便测试自己开发的库 开始动手 创建自己的composer库 个人博客后台有一部分是关于统计的,通过U...

蜗牛奔跑 ⋅ 2016/11/24 ⋅ 0

laravel 学习笔记——起点

本系列文章主要是方便初学 laravel 的人入门,帮一些朋友认识到如何入门、如何学习 laravel,同时补充一些忽略过的基础知识。 Laravel 给了我学习新知识的一个契机,让我更早的接触更多的东西...

xsctx7788 ⋅ 2016/10/26 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【elasticsearch】 随笔 Date datatype

一。时间类型的本质 首先json是没有时间类型的,对于es来说,时间类型的标示可以是下面三种情况 1.一个时间格式的字符串,如:"2014-11-27T08:05:32Z","2015-01-01" or "2015/01/01 12:10:3...

xiaomin0322 ⋅ 26分钟前 ⋅ 0

阿里云资源编排ROS使用教程

阿里云资源编排ROS详细内容: 阿里云资源编排ROS使用教程 资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、...

mcy0425 ⋅ 28分钟前 ⋅ 0

适配器设计模式

1、适配器模式 把一个类的接口变换成客户端所期待的另一种接口 使原本因接口不匹配而无法在一起工作的两个类能够在一起工作 分为类的适配器模式和对象的适配器模式 2、类适配器模式 类的适配...

职业搬砖20年 ⋅ 32分钟前 ⋅ 0

npm操作报错 _stream_writable.js:61

有一天 不知道什么原因(估计和node的版本有关),无论你做什么npm的操作 都会报错/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js:61 这时候只要执...

lilugirl ⋅ 36分钟前 ⋅ 0

Eclipse安装插件的几种方式

Eclipse魅力之一就是支持可扩展的插件,来丰富自身的功能,这种方式也是建立在开源思想之上的。具体使用什么方式去安装插件,要看我们拿到的是什么。 1. 拿到的是一串URL,如http://subclips...

GordonNemo ⋅ 38分钟前 ⋅ 0

div图片叠加

css实现代码如下: <div style="position: relative;"><!--这个层为外面的父层,需设置相对位置样式--> <div style="position: absolute;"><!--子层,需设置绝对位置样式--> <i......

niithub ⋅ 40分钟前 ⋅ 0

作用域slot

如果父组件需要使用子组件中的内容怎么办,比如父组件需要控制子组件的显示 <div id="root"><child><template slot-scope="props"><h1>{{props.item}} <div>编辑</div></h1><......

金于虎 ⋅ 42分钟前 ⋅ 1

HongHu commonservice-eureka 项目构建过程

上一篇我们回顾了关于 spring cloud eureka的相关基础知识,现在我们针对于HongHu cloud的eureka项目做以下构建,整个构建的过程很简单,我会将每一步都构建过程记录下来,希望可以帮助到大家...

明理萝 ⋅ 45分钟前 ⋅ 1

xml和对象的相互转化

@Data//setter和getter方法,toString和equals,hashcode方法@EqualsAndHashCode//代表重写equals和hashcode方法@XmlAccessorType(XmlAccessType.FIELD)public class Classroom {@X......

拐美人 ⋅ 45分钟前 ⋅ 0

tableView cell的高度 分组头部尾部的高度 自适应

@property (nonatomic) CGFloat rowHeight; // default is UITableViewAutomaticDimension@property (nonatomic) CGFloat sectionHeaderHeight; // default is UITableViewA......

娜一片蓝色星海 ⋅ 46分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部