您现在的位置是:首页 > PHP框架交流PHP框架交流
理解yii自动加载机制 yi框架自动加载
上善若水2022-01-06 12:17:14【PHP框架交流】 1869人已围观
简介理解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)
相关文章
随机图文
-
有哪些微甜的情话?
1.“我的脑袋是个小小星球,每天只有你开着月亮列车巡游。”2.“夏天太浪漫了,我想请它吃顿饭,如果你有空的话可以一起来。”3.“如果我18岁,我可以说我喜欢你。如果我28岁,我可以大声告诉你我很爱你。 -
php技术提升心得与方法
现在的PHP市场虽然充斥了大量的的PHP开发人员,但这些人当中真正能称得上高手的却寥寥无几。很多公司虽然招聘了一些PHP开发人员,但是由于技术水平不高,导致公司的项目一直堆积。这不仅另公司无奈也让已经入职的PHP开发人员着急,他们也想要在PHP领域更近一步,但却苦于找不到提高自己的方法,下面我们的鸥仔收集了一些PHP大神的一些工作方式、习惯,让大家看看PHP大神们是如何工作,也希望这些方法能帮助到那些想要在PHP领域更近一步的人。 -
送你五个笑话,太好笑了,笑得我肚子疼!
1.幼儿园三个小班搞活动,每个班出场时,要喊口号。小一班喊的口号是:小一,小一,勇争第一!小二班口号是:小二,小二,独一无二!等到小三班出场,喊出了令在场所有人都乐趴下的口号:小三,小三,爸爸的心肝!全场爸爸们昏倒。2.刚才一个朋友打电话,我说开车不方便接电话,他问你的车是自动的还是手动的,烧油还是烧天然气,我回答说是声控的,烧的空气,他说没见过啊,有这么高档的车,拍照片发过来 -
民政局不见不散
我很怕你哦。为什么?因为我怕老婆。 民政局不见不散 你是什么血型?B!不,你是我的理想型 你忙归忙,什么时候有空嫁给我? 我在找一家店哎,帮我找一下。什么店?你的来电! 你吃东西的样子真可爱,是练过吗? 你让我道歉,还是让我告白。 想让你爸妈开心吗?想。