文档章节

Composer自动加载功能

 蜗牛奔跑
发布于 2016/11/24 14:06
字数 531
阅读 22
收藏 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) { }

 

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

本文转载自:

共有 人打赏支持
粉丝 35
博文 610
码字总数 117758
作品 0
海淀
私信 提问
Laravel 4:FontEnd/BackEnd环境部署

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

v8v9v3000
2014/08/06
0
0
利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备

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

peasant
2016/06/03
11
0
利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备

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

蜗牛奔跑
2016/10/15
43
0
探索PHP构造项目之路之停止复制粘贴

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

周智超
2016/09/21
17
0
个人笔记------composer

Composer使用 是什么 如果你知道、、、等命令中的一种或者多种,那么,你也能很快知道是什么了。没错,它就是PHP里快速安装类库的。平时,我们安装一个PHP类库,需要;使用,我们只要知道包名...

ywppengpeng
2017/10/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 文档主题合并问答

在 Confluence 官方 前期发布的消息 中,文档主题在 Confluence 6.0 及其后续版本中已经不可用。我们知道你可能对这个有很多好好奇的问题,因此我们在这里设置了一个问答用于帮助你将这个主题...

honeymose
18分钟前
1
0
传播正能量——《海南英才》阅读的读后感2200字

传播正能量——《海南英才》阅读的读后感2200字: 新华社记者12月8日从公安部获悉,针对自媒体“网络水军”敲诈勒索等违法犯罪活动突出问题,今年以来,公安部组织各地公安机关依法深入开展侦...

原创小博客
26分钟前
2
0
java框架学习日志-2

上篇文章(java框架学习日志-1)虽然跟着写了例子,也理解为什么这么写,但是有个疑问,为什么叫控制反转?控制的是什么?反转又是什么? 控制其实就是控制对象的创建。 反转与正转对应,正转...

白话
今天
5
0
Integer使用双等号比较会发生什么

话不多说,根据以下程序运行,打印的结果为什么不同? Integer a = 100;Integer b = 100;System.out.println(a == b);//print : trueInteger a = 200;Integer b = 200;System.out.pr...

兜兜毛毛
昨天
11
0
CockroachDB

百度云上的CockroachDB 云数据库 帮助文档 > 产品文档 > CockroachDB 云数据库 > 产品描述 开源NewSQL – CockroachDB在百度内部的应用与实践 嘉宾演讲视频及PPT回顾:http://suo.im/5bnORh ...

miaojiangmin
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部