composer.json的编写使用类文件路由
1.传统方式 include 或者 require
源码示例:
//1 .传统方式 include 或者 require
require 'app/controller/User.php';
//引入app/controller/User.php文件
use app\controller\User;
//导入app\controller\user的类和方法
echo User::hello();
//实例化app\controller\user.php中的User类
示例图:
2.注册知道加载函数使用一个内置的函数来完成
源码示例:
<?
//注册自动加载函数
//加载类文件使用一个内置的函数来完成
spl_autoload_register(function($class){
$path =str_replace('\\',DIRECTORY_SEPARATOR,$class);
//获取类的路径名称
//替换'\'为'/'使用DIRECTORY_SEPARATOR
$classFile = __DIR__ . '/'.$path.'.php';
//生成一个完整的类文件名
require $classFile;
//返回类文件名
//同等于:require 'app/controller/User.php';
});
use app\controller\User;
echo User::hello();
示例图:
3.使用composer中的自动加载器
引入requireonce _DIR .’/vendor/autoload.php’;
对composer.json修改。使用files
示例:
{
"autoload": {
"files": [
"app/controller/User.php",
"lib/Order.php",
"lib/Goods.php"
]
}
}
使用composer获取类文件名.使用files
对composer.json修改。使用classmap
示例:
{
"autoload": {
"classmap": [
"app/controller",
"lib"
]
}
}
使用composer获取文件目录,使用classmap
对composer.json修改。使用psr-4
示例:
{
"autoload": {
"psr-4":{
"app\\controller\\":"app/controller",
"lib\\":"lib"
}
}
- 使用composer获取,推荐使用psr-4可以获取多个目录下的类文件
源码及注释:
<?php
//1.使用composer中的自动加载器
//调用的是composer中的字段加载器功能
require_once __DIR__ .'/vendor/autoload.php';
//composer.json:autoload:filese:可以加载任意位置的类文件
// 注册完成后,在终端执行命令:composer dump-autoload,使files字段生效
//composer.json:autoload:classmap :类映射,批量注册类
//autoload :psr-4 类的命名空间:类所在的路径目录,进行绑定,命名空间最后必须以“\\”空间分隔符结尾
//只要是composer.json中的‘autoload’字段的内容发生变化,就必须执行composer dumpautoload让它注册类
//2。注册类别名
use app\controller\User;
use lib\Goods;
use lib\Order;
//3.注册类别名
//4.调用类成员
echo User::hello();
echo "<hr>";
echo Order::iNdex();
echo "<hr>";
echo Goods::iNdex();
- 实例中使用了psr-4对composer.json修改。可以调用多个目录中的类文件。