文档章节

Composer自动加载功能

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

没有更多内容

加载失败,请刷新页面

加载更多

中国移动蔡谦:5G传输准备就绪

目前5G已成业界热议话题,在即将到来的万物互联时代,5G是非常关键的技术。且5G相比4G,业务场景多种多样,对5G承载网带来巨大挑战。5G传输,承载先行并不仅仅是一个口号。当前5G承载网的部署...

linux-tao
29分钟前
4
0
维护“修理权”,苹果使用专有软件工具来修复MacBook Pro和iMac Pro

根据上月发给苹果授权服务提供商的一份文件,苹果公司正在使用新的专有软件诊断工具来修复MacBook Pros和iMac Pros,如果不用专有软件工具来修复关键部件,将会导致“系统失效和修复不完整”...

linuxCool
58分钟前
2
0
cacti监控安装

cacti是用PHP实现的一个软件,它用snmp服务获取数据,然后用rrdtool存储和更新数据,并生成图表展示。比较适合用于交换机、路由器的网络监控,插件众多,可图示化显示网络状况。 cacti官方推...

hiwill
今天
4
0
shell特殊符号、cut、sort、uniq、wc、tee、tr、split命令

10月15日任务 8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下 cut 命令 cut作用:截取字符串 用法如下:cat /etc/passwd |head -2 |cut -d ...

hhpuppy
今天
4
0
Springboot实现filter拦截token验证和跨域

背景 web验证授权合法的一般分为下面几种 1使用session作为验证合法用户访问的验证方式 使用自己实现的token 使用OCA标准 在使用API接口授权验证时,token是自定义的方式实现起来不需要引入其...

funnymin
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部