YII2---关于入口文件

       一般项目文件常会被写为MVC模式,在所有的信息交互的时候会先将所有的信息进行一个自定义的“核实”过程。也就是会需要一个入口文件对于将要调用的方法所在文件是否存在,文件是否含有这样的指定函数。

       在入口文件还能宏观的引入文件,在后面可以不再次引用。入口文件是一般我们探索一个框架的起点。在这里就想吐槽下当时刚转后台的时候。作为前台转的宝宝对入口文件的理解有点呵呵。直接上来被大神师范了个基础,什么入口文件的基本写法什么。


题外两三句:
      入口文件作为一个前端宝宝就觉得这就是APPdelegate(IOS转的,就惯有思维了)默认先进来该准备的都准备好再说。

      自己写的入口文件必要的就是URL规则定义和报错设置,开启session。如果有跨域的问题在添加上跨域的设置。这些等我结束这个坑开始整理基础在来讲述吧。回到YII。

 

       YII的advance版本是一个整体化的项目模板,前端网站,后端管理员页面等都进行了规划。
091207_Nav5_2365565.png

     这是之前“安装”好的YII框架内容。和我们所想的不一样,没有看到传统意义的入口文件index.php。

     犹记得当初大佬讲过,入口文件永远在最外层,不是叫index.php就是和这个框架的名字一样~看到yii文件眼睛可以放下光了。打开这个文件会发现一些不一样的地方~

091838_EFBI_2365565.png

大神说:从文件内容的第一行 #!/usr/bin/env php 来看,这是一个bash脚本。 第一行在告诉bash,也在告诉我们,这是一个使用PHP运行的脚本。

下面就是一些PHP的写法了~

对模式的定义

        首先一进来看到两个define是指定项目的状态的。在YII项目有两种开发模式,线上模式和开发模式,除了在安装的时候指定,也可以在这里修改:
开发模式:

164620_jqZ4_2365565.png

这个模式下回像我们在自己写的入口文件添加

error_reporting( E_ALL );//报告所有错误
或 error_reporting( 0 );//禁用错误报告

控制错误的报告情况。

如果定义了 YII_DEBUG , 那么表示当前为调试状态,应用在运行过程中,会有一些调试信息的输出。 在抛出异常时,也会有一个详细的调用栈的显示。默认情况下,YII_DEBUG 为 false 。 但在开发过程中,最好按上面写的那样,定义为 true 这样便于查找和分析错误。

如果定义了 YII_ENV ,那么就是指定了当前应用的运行环境。 上面的代码显示应用将运行于 dev 环境。默认情况下, YII_ENV 为 prod 表示产品环境。

这些环境只是一个名称,具体的意义和环境内容要看环境的定义。 dev prod 是Yii安装后默认的两个环境,分别表示开发环境和最终的产品环境。 此外还有一个 test 环境,表示测试环境。

环境与模式的作用不同。环境在代码中主要是影响配置文件。 YII_ENV 的 dev prod test 三种环境, 会分别使 YII_ENV_DEV YII_ENV_PROD YII_ENV_TEST 的值为 true 。 这样,在应用的配置中,特别是在相同的一个配置文件中,可以对不同环境作出不同的配置。

 

对文件的引入

引入4个必要文件:
165928_cQnV_2365565.png

第一个require引入了 /path/to/digpage.com/vendor 下面的 autoload.php 。 这个是composer的类自动加载机制注册文件。引入这个文件后,可以使用composer的类自动加载功能。

第二个引入了 vendor 下面的 yiisoft/yii2/Yii.php ,这是Yii的工具类文件。 引入了这个类文件后,才能使用Yii的提供的各种工具, 才有 Yii::createObject() Yii::$app 之类的东东可以使用。

第三个引入了 /path/to/digpage.com/common 下面的 config/bootstrap.php 。 这个文件主要用于执行一些Yii应用引导的代码,比如定义一系列的路径别名;可以给命名空间或者有前缀的文件名加以修饰。

233117_UvI7_2365565.png

第四个require引入了 path/to/digpage.com/frontend 下面的 config/bootstrap.php 。 作用与上面类似,只是其中的代码仅适用于当前应用(frontend)。 而第三个require中的,是适应于所有应用(common)。

再接下来,是一个函数 yii\helpers\ArrayHelper::merge() 。 这个函数的作用在于合并参数所指定的各个数组。其中,后面的数组会把前面数组中相同下标的元素覆盖掉。 这个语句的作用,就是读取、合并应用的各配置文件并保存在 $config 变量中。 这里我们看到一共是读取了4个配置文件:

233220_2oez_2365565.png

依次是通用目录common下的2个配置文件,和当前应用frontend下的2个配置文件。 在优先顺序上,当前的配置覆盖通用的配置。 同时,带有 -local 的配置文件在后,所以,本地配置文件覆盖团队配置文件。

最后,以 $config 为参数,实例化了一个 Application 对象,并调用他的 run() 函数。 这时,Yii应用就跑起来了。

这就是整个项目的入口文件问题,这时候可以依次注释掉或打印看下每个配置文件的影响。从而加以修改。

     在看整个项目工程。其实这是因为这里面有几个小的模块。backend就是指后台开发模板,frontend值前端接口模板,common指公共模块。 由于 console 类的应用比较特殊,我们稍后再看。这里先看典型的Web应用的目录结构,寻找入口文件。这里指的是web的入口。。。我们的入口文件需要你选定开发模块,进入该模块才会看到。在backend的web路径下存在一个index文件。这里可以一一点开看下,这里入口文件和YII的入口文件内容一致。

 

参考网址:http://www.kancloud.cn/kancloud/yii-in-depth/50799

转载于:https://my.oschina.net/jlong/blog/864301

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值