一、 需求情况;
demo1.php文件要使用,application/controller文件夹下GoodsController.php和LoginController.php'两个类中的各自的index()方法;
二、 传统的的方式,采用require ‘’命令,引入要使用的文件;
require 'application/controller/GoodsController.php';
require 'application/controller/LoginController.php';
三、 文件级,采用composer自动加载 autoload;
1、在要使用自动加载功能的文件夹,也就是demo1.php文件所在文件夹,创建一个只有两个空的大括号{},composer.json文件;
2、在当前文件夹中打开cmd终端,使用composer install命令,安装composer目录框架;
文件夹中会自动创建vendor文件夹,和composer.lock文件,如图:
3、在composer.json之前创建的两个空的大括号{}中间,使用文件加载,代码如下:
"autoload": {
"files": [
"application/controller/GoodsController.php",
"application/controller/LoginController.php"
]
}
4、在demo1.php中使用require语句导入autoload.php文件,代替之前的导入的2个类文件,代码如下:
require 'vendor/autoload.php';
5、最后在cmd终端,执行"composer dump"命令,更新autoload.php文件;
四、 目录级,采用composer自动加载 autoload;;
1、和第三节,自动加载文件级的步骤:1、2、4、5步骤都一样;
2、在composer.json之前创建的两个空的大括号{}中间,使用文件加载,代码如下:
"autoload": {
"classmap": [
"application/controller"
]
}
注:目录可以只写application目录,composer会自动遍历其子目录,为了系统的效率建议把目录写全;
3、记得,最后在cmd终端,执行"composer dump"命令,更新autoload.php文件;
五、 空间级,采用composer自动加载 autoload;
1、和第三节,自动加载文件级的步骤:1、2、4、5步骤都一样;
2、在composer.json之前创建的两个空的大括号{}中间,使用文件加载,代码如下:
"autoload": {
"psr-4": {
"app\\controller\\": "application\\controller"
}
}
注:这里目录可以只写"app\\ ": "application ",composer会自动遍历其子目录,为了系统的效率建议把目录写全;
"app\\controller\\"最后面的"\\",作为命名空间分隔符必须写;
3、记得,最后在cmd终端,执行"composer dump"命令,更新autoload.php文件;