您现在的位置是:首页 > PHP框架交流PHP框架交流
理解yii自动加载机制 yi框架自动加载
上善若水2022-01-06 12:17:14【PHP框架交流】 1919人已围观
简介理解yii自动加载机制,yii入口文件有引入两个自动加载,一个是composer自带的,一个是yii框架的自动加载文件,很多时候正是yii的自动加载机制才可以顺利将文件引入.来分析下yii自动加载.
理解yii自动加载机制,yii入口文件有引入两个自动加载,一个是composer自带的,一个是yii框架的自动加载文件,很多时候正是yii的自动加载机制才可以顺利将文件引入.来分析下yii自动加载.
1. 首先分析yii web下的入口文件
// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
$config = require __DIR__ . '/../config/web.php';
(new yii\web\Application($config))->run();
yii引入了composer的自动加载文件,其次引入的自己的加载文件,这个文件超级重要.
然后就新建了一个Application 这个app会被设置进去我们常使用的Yii::$app中;
在测试类自动加载中 我尝试再注释Application发现.
new app\controllers\CController();//报错 报类无法找到
(new yii\web\Application($config))->run();
new app\controllers\CController();//报错 可以正确加载此类
在想Application也对加载也做了特殊处理吗,Yii.php加载居然不能自动引入这个类.
继续往下看,Application会走Yii.php
autoload方法,而yii\web\Application
是有预定义到Yii::$classMap
中就能顺利找到Application
,然后Application构造器会将config的一些配置配置进Application,其中就包括将config数组的中basePath
路径地址当做别名赋值到@app
,而再未进行实例话Application时类无法找到,而实例化或@app
是有值了,可以顺利找到地址,拼接出真实路径,然后include,所以又能正确引入了.
参照yii自动加载写了个简单的demo,有需要的可以产考 https://gitee.com/fierykylin/yi/tree/v1.0.0
Tags: yii
很赞哦! (0)
相关文章
随机图文
-
PHP8.1新特只读属性 只读属性的简单用法
PHP8.1新特性只读属性自PHP8.1.0起,可以使用readonly修饰符声明属性,防止初始化后修改属性。PHP8.1新特性枚举枚举的简单用法官方教程https://www.ph -
shiro ajax返回登录成功
shiro默认在我们登录成功后会重定向到用户首页,有些时候,登录是使用ajax完成,登录成功后,会返回给我们登录成功的页面,尽管在ajax中页面不跳转我们可以手动跳转,但是还是有些不爽希望能返回jso -
php技术提升心得与方法
现在的PHP市场虽然充斥了大量的的PHP开发人员,但这些人当中真正能称得上高手的却寥寥无几。很多公司虽然招聘了一些PHP开发人员,但是由于技术水平不高,导致公司的项目一直堆积。这不仅另公司无奈也让已经入职的PHP开发人员着急,他们也想要在PHP领域更近一步,但却苦于找不到提高自己的方法,下面我们的鸥仔收集了一些PHP大神的一些工作方式、习惯,让大家看看PHP大神们是如何工作,也希望这些方法能帮助到那些想要在PHP领域更近一步的人。 -
thinkphp使用querylist采集笑话网站笔记
thinkphp使用querylist采集笑话网站笔记,使用thinkphp commands命令写法采集小说数据,不多说直接上代码. 1.创建数据采集记录表CREATE TABLE `joke_li