首页 > php教程 > php手册 > 正文

Yii2的深入学习--入口文件,yii2深入学习入口

php中文网
发布: 2016-06-13 08:53:01
原创
981人浏览过

yii2的深入学习--入口文件,yii2深入学习入口

前一段时间,尝试去写一个 php 的简单框架,发现自己还欠缺很多,就暂时停掉了。准备先读完 yii2 的源码,然后再去看完 laravel 的源码,最后再继续去写这个简单的 php 框架。

之后关于 Yii2 的学习暂时都是以 basic 的项目为例。

我们先来看一下 Yii2 的入口文件。在配置 Yii2 的 nginx 的配置时,有这样几句

<span>    # server_name mysite.local;
    root        </span>/path/to/basic/<span>web;
    ......

    location </span>/<span> {
        # Redirect everything that isn</span><span>'</span><span>t a real file to index.php</span>
        try_files $uri $uri/ /index.php?<span>$args;
    }</span>
登录后复制

可以看到web的入口文件是 web 文件夹下的 index.php 文件。

index.php 文件的内容如下:

<?<span>php

</span><span>//</span><span> comment out the following two lines when deployed to production
// 定义 debug 的标记</span>
<span>defined</span>('YII_DEBUG') or <span>define</span>('YII_DEBUG', <span>true</span><span>);
</span><span>//</span><span> 定义环境,有 'dev' 和 'prod' 两种</span>
<span>defined</span>('YII_ENV') or <span>define</span>('YII_ENV', 'dev'<span>);

</span><span>//</span><span> 引入 vendor 中的 autoload.php 文件,会基于 composer 的机制自动加载类</span>
<span>require</span>(__DIR__ . '/../vendor/autoload.php'<span>);
</span><span>//</span><span> 引入 Yii 框架的文件 Yii.php</span>
<span>require</span>(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'<span>);

</span><span>//</span><span> 引入 web 的 config 文件,并将返回值即配置项放入 $config 变量中</span>
<span>$config</span> = <span>require</span>(__DIR__ . '/../config/web.php'<span>);

</span><span>//</span><span> new 一个 yii\web\Application 的实例,并执行它的 run 方法
// 用 $config 作为 yii\web\Application 初始化的参数</span>
(<span>new</span> yii\web\Application(<span>$config</span>))->run();
登录后复制

可以看到其核心代码,就只有最后一句,我们所有的请求的处理都是通过 run 方法去调用执行的,内部的具体内容之后会讲解。

Yii2 其实还有另外一个入口,是 Yii2 命令行的入口文件,即顶级目录下的 yii 文件。

yii 文件的内容如下:

宠物商店
宠物商店

目前,PetShop已经从最初的2.0、3.0等版本,发展到了最新的4.0版本。PetShop 4.0使用ASP.NET 2.0技术开发,其中加入了众多新增特性,因此,在性能、代码数量、可扩展性等方面有了重大改善。可以说,学习PetShop 4.0是深入掌握ASP.NET 2.0技术的捷径。本节将引领读者逐步了解PetShop 4.0的方方面面,包括应用程序安装、功能和用户界面简介、解决方案和体系

宠物商店 0
查看详情 宠物商店
<span>#</span><span>!/usr/bin/env php</span>
<?<span>php
</span><span>defined</span>('YII_DEBUG') or <span>define</span>('YII_DEBUG', <span>true</span><span>);

</span><span>//</span><span> fcgi doesn't have STDIN and STDOUT defined by default
// 定义 STDIN 和 STDOUT</span>
<span>defined</span>('STDIN') or <span>define</span>('STDIN', <span>fopen</span>('php://stdin', 'r'<span>));
</span><span>defined</span>('STDOUT') or <span>define</span>('STDOUT', <span>fopen</span>('php://stdout', 'w'<span>));

</span><span>require</span>(__DIR__ . '/vendor/autoload.php'<span>);
</span><span>require</span>(__DIR__ . '/vendor/yiisoft/yii2/Yii.php'<span>);

</span><span>//</span><span> 引入 console 的 config 文件,并将返回值即配置项放入 $config 变量中</span>
<span>$config</span> = <span>require</span>(__DIR__ . '/config/console.php'<span>);

</span><span>//</span><span> new 一个 yii\console\Application 的实例,并执行它的 run 方法
// 用 $config 作为 yii\console\Application 初始化的参数</span>
<span>$application</span> = <span>new</span> yii\console\Application(<span>$config</span><span>);
</span><span>$exitCode</span> = <span>$application</span>-><span>run();
</span><span>//</span><span> 退出</span>
<span>exit</span>(<span>$exitCode</span>);
登录后复制

与 index.php 文件最大的区别在于,它使用的是 yii\console\Application 类,而 index.php 中使用的 yii\web\Application。

这就是 Yii2 的两个入口,如果是 advanced 的项目的话,入口会更多,但基本内容都是这两种形式之一。

今天只是一个简单的开篇,就先到这里。

 

对 Yii2 源码有兴趣的同学可以关注项目 yii2-2.0.3-annotated,现在在上面已经添加了不少关于 Yii2 源码的注释,之后还会继续添加~

有兴趣的同学也可以参与进来,提交 Yii2 源码的注释。

 

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号