文档章节

Composer自动加载功能

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

 

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

本文转载自网络

粉丝 37
博文 615
码字总数 118352
作品 0
海淀
私信 提问
加载中

评论(0)

如何在利用 Composer 注册全局辅助函数?

Composer 使用不同的技术和标准简化了类的自动加载。当今最常见的自动加载标准是 PSR-4: "autoload": { }    这将使用带有 “App” 名称空间前缀的 PSR-4 标准将 src 文件夹中的所有类自动...

八重樱
04/30
0
0
Slim中使用Controller

官方示例 Slim中给出的调用Controller的方法如下: 通过给出的示例可以看出,路由的第二个参数是具体Controller的命名空间和方法的结合。 创建目录 我们将所有的控制器对象都放在根目录下的c...

koastal
04/01
0
0
浅谈PHP组件、框架以及Composer

本篇文章主要介绍了PHP组件、框架以及Composer,具有一定的学习价值,感兴趣的朋友可以了解一下。 什么是组件 组件是一组打包的代码,是一系列相关的类、接口和Trait,用于帮助我们解决PHP应...

osc_1jvmu893
2019/12/30
3
0
利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备

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

peasant
2016/06/03
22
0
探索PHP构造项目之路之停止复制粘贴

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

周智超
2016/09/21
30
0

没有更多内容

加载失败,请刷新页面

加载更多

微服务项目搭建,到底要不要聚合工程?

这是一个入门问题,做微服务项目,首先就是要搭建 Project,代码采用什么样的形式来组织,这是我们面临的第一个问题。 要扯清楚这个问题,首先对 Maven 的使用不能含糊,小伙伴们可以在公众号...

osc_y12wmf09
6分钟前
5
0
C语言探索之旅 | 第一部分第六课:变量的世界(三),显示变量内容

作者 谢恩铭,慕课网精英讲师 Oscar老师。 转载请注明出处。 内容简介 用 printf 显示变量内容 用 scanf 提取程序中的输入 总结 第一部分第七课预告 1. 用 printf 显示变量内容 变量相关的内...

osc_zjs1puzi
7分钟前
9
0
php 操作RabbitMQ

基本流程图 如果exchange 没有绑定queue,则消息将会被丢弃 如果创建exchange,queue,并且已经绑定了,则可以直接使用 为了防止脚本出问题 可以配合supervisor 安装 从网站 https://packag...

php开源社区
9分钟前
10
0
Kotlin Coroutines Flow 系列(五) 其他的操作符

八. Flow 其他的操作符 8.1 Transform operators transform 在使用 transform 操作符时,可以任意多次调用 emit ,这是 transform 跟 map 最大的区别: fun main() = runBlocking { (1...

osc_0l1onu3j
9分钟前
9
0
挽救数据库性能的30条黄金法则

原文: 挽救数据库性能的30条黄金法则 1. 优化查询,应尽量避免全表扫描,应该在用于检索数据和排序数据的字段上建立索引,如where子句用于搜索,order by子句用于排序,所以在这两个子句涉及...

osc_gxvh47u5
9分钟前
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部