什么星网站做调查问卷的深圳公司注册网址官方

diannao/2026/1/22 21:16:58/文章来源:
什么星网站做调查问卷的,深圳公司注册网址官方,wordpress萧涵主题,商标注册查询官网入口官网以下是一个通过高级模版安装后典型的Yii应用的目录结构#xff1a;~~~.├── backend├── common├── console├── environments├── frontend├── nbproject├── tests├── vendor├── composer.json├── composer.lock├── init├── init.bat├── …以下是一个通过高级模版安装后典型的Yii应用的目录结构~~~.├── backend├── common├── console├── environments├── frontend├── nbproject├── tests├── vendor├── composer.json├── composer.lock├── init├── init.bat├── LICENSE.md├── README.md├── requirements.php├── yii└── yii.bat~~~对于高级应用而言相当于有 backend frontend console 三个独立的Yii应用。 由于 console 类的应用比较特殊我们稍后再讲。这里讲典型的Web应用的目录结构。## 公共目录[](http://www.digpage.com/app_struct.html#id1 Permalink to this headline)这里的公共目录可不止 common 目录但这个目录从字面上来看 是所有公共目录里最“公共”的。common 目录下的东西 对于本高级应用的任一独立的应用而言都是可见、可用的。一般情况下common 具有以下结构~~~.├── config├── mail└── models~~~其中* config 就是通用的配置这些配置将作用于前后台和命令行。* mail 就是应用的前后台和命令行的与邮件相关的布局文件等。* models 就是前后台和命令行都可能用到的数据模型。 这也是 common 中最主要的部分。除了 common 之外还有一个很重要的公共目录 vendor 。 这个目录从字面的意思看就是各种第三方的程序。 这是Composer安装的其他程序的存放目录包含Yii框架本身也放在这个目录下面。 如果你向 composer.json 目录增加了新的需要安装的程序那么下次调用Composer的时候 就会把新安装的目录也安装在这个 vendor 下面。好了现在问题来了。对于 frontend backend console 等独立的应用而言 他们的内容放在各自的目录下面他们的运作必然用到Yii框架等 vendor 中的程序。 他们是如何关联起来的这个秘密或者说整个Yii应用的目录结构的秘密 就包含在一个传说中的称为入口文件的地方。但是在了解入口文件index.php之前有必要先看看诸如 frontend 等独立应用的目录结构。 这比起整个Yii应用的目录结构面言更为重要。因为你往往是在 frontend 等目录下写代码。 但是不大会在path\to\digpage 目录下写代码。## 前台的目录结构[](http://www.digpage.com/app_struct.html#id2 Permalink to this headline)其实前台和后台是一样的只是我们逻辑上的一个划分。 典型的 frontend 具有如下的一个目录结构~~~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);require(__DIR__ . /../../common/config/bootstrap.php);require(__DIR__ . /../config/bootstrap.php);$config yii\helpers\ArrayHelper::merge(require(__DIR__ . /../../common/config/main.php),require(__DIR__ . /../../common/config/main-local.php),require(__DIR__ . /../config/main.php),require(__DIR__ . /../config/main-local.php));$application new yii\web\Application($config);$application-run();~~~### 设置调试模式和代码环境[](http://www.digpage.com/app_struct.html#id3 Permalink to this headline)前两行是两个 define 语句::~~~defined(YII_DEBUG) or define(YII_DEBUG, true);defined(YII_ENV) or define(YII_ENV, dev);~~~定义当前的运行模式和环境。如果定义了 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 。 这样在应用的配置中特别是在相同的一个配置文件中可以对不同环境作出不同的配置。比如你希望在测试环境下使用另一个数据库。在开发环境下启用调试工作条等等。那么可以这么做:~~~$config [...];if (!YII_ENV_TEST) {// 以下配置项仅在测试环境中起作用$config[bootstrap][] debug;$config[modules][debug] yii\debug\Module;$config[modules][gii] yii\gii\Module;}~~~其实这个 YII_ENV 的定义就是一个与 init 脚本环境切换的相互补充。 如果各环境比较明晰用init 来切换各种环境的配置是完全够用的。 不必在脚本中再有如 YII_ENV_TEST 之类的判断语句这会使本来已经显得很长的配置文件看上去更臃肿。### 引入必要的文件[](http://www.digpage.com/app_struct.html#id4 Permalink to this headline)紧接着两个 define 语句之后就是4个 require 语句:~~~require(__DIR__ . /../../vendor/autoload.php);require(__DIR__ . /../../vendor/yiisoft/yii2/Yii.php);require(__DIR__ . /../../common/config/bootstrap.php);require(__DIR__ . /../config/bootstrap.php);~~~这4个语句的前3个中都使用到了相对于当前目录的叔伯目录中的php文件 第4个语句使用了相对于当前目录的兄弟目录。我们知道 __DIR__ 表示当前文件 index.php 所在的目录。 /../../ 表示的是当前目录的爷爷目录。 若 index.php 的当前目录是 /path/to/digpapge.com/frontend/web  那么爸爸目录就是 frontend爷爷目录就是 digpage.com 了。第一个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应用引导的代码比如定义一系列的路径别名:~~~Yii::setAlias(common, dirname(__DIR__));Yii::setAlias(frontend, dirname(dirname(__DIR__)) . /frontend);Yii::setAlias(backend, dirname(dirname(__DIR__)) . /backend);Yii::setAlias(console, dirname(dirname(__DIR__)) . /console);Yii::setAlias(vendor, dirname(dirname(__DIR__)) . /vendor);~~~这是默认安装后定义好的 common frontend backend console vendor 5个路径别名 如果你要新增一个用于表示插件的目录 plugin 可以自己在这个文件里面加一行:~~~Yii::setAlias(plugin, dirname(dirname(__DIR__)) . /plugins);~~~第四个require引入了 path/to/digpage.com/frontend 下面的 config/bootstrap.php 。 作用与上面类似只是其中的代码仅适用于当前应用(frontend)。 而第三个require中的是适应于所有应用(common)。再接下来是一个函数 yii\helpers\ArrayHelper::merge() 。 这个函数的作用在于合并参数所指定的各个数组。其中后面的数组会把前面数组中相同下标的元素覆盖掉。 这个语句的作用就是读取、合并应用的各配置文件并保存在 $config 变量中。 这里我们看到一共是读取了4个配置文件:~~~require(path/to/digpage.com/common/config/main.php),require(path/to/digpage.com/common/config/main-local.php),require(path/to/digpage.com/frontend/config/main.php),require(path/to/digpage.com/frontend/config/main-local.php)~~~依次是通用目录common下的2个配置文件和当前应用frontend下的2个配置文件。 在优先顺序上当前的配置覆盖通用的配置。 同时带有 -local 的配置文件在后所以本地配置文件覆盖团队配置文件。最后以 $config 为参数实例化了一个 Application 对象并调用他的 run() 函数。 这时Yii应用就跑起来了。## 命令行应用入口脚本[](http://www.digpage.com/app_struct.html#id5 Permalink to this headline)命令行应用的入口脚本是 path/to/digpage.com/yii 文件。这个文件被 init 脚本设为可执行的。 他的内容如下:~~~#!/usr/bin/env phpdefined(YII_DEBUG) or define(YII_DEBUG, true);defined(YII_ENV) or define(YII_ENV, dev);// fcgi doesnt have STDIN and STDOUT defined by defaultdefined(STDIN) or define(STDIN, fopen(php://stdin, r));defined(STDOUT) or define(STDOUT, fopen(php://stdout, w));require(__DIR__ . /vendor/autoload.php);require(__DIR__ . /vendor/yiisoft/yii2/Yii.php);require(__DIR__ . /common/config/bootstrap.php);require(__DIR__ . /console/config/bootstrap.php);$config yii\helpers\ArrayHelper::merge(require(__DIR__ . /common/config/main.php),require(__DIR__ . /common/config/main-local.php),require(__DIR__ . /console/config/main.php),require(__DIR__ . /console/config/main-local.php));$application new yii\console\Application($config);$exitCode $application-run();exit($exitCode);~~~对比于Web应用的 index.php 入口脚本 yii 并没有太多的新东西其中核心的东西根本就没变。我们先来看看这个这个 yii 是什么首先它没有扩展名我们不好知道其具体类型。 但是从文件内容的第一行 #!/usr/bin/env php 来看这是一个bash脚本。 第一行在告诉bash也在告诉我们这是一个使用PHP运行的脚本。但第二行的  又清楚的向我们表明这货其实也是个 PHP 文件只是没有加上PHP后缀而已 。接下来 define(STDIN) 和 define(STDOUT) 则为fcgi定义了标准输入和标准输出。在各require语句中由于 yii 的位置与 index.php 不同是位于应用根目录下所以目录结构上更简单些。最后在Yii应用跑起来后还要获取其返回值并以该返回值退出脚本通知操作系统退出时的状态。对于Windows系统而言命令行的入口脚本仍然是 yii 但是命令行下无法直接运行。所以 细心的Yii为我们准备了一个 yii.bat 。这个文件会以 php yii 形式调用PHP来运行入口脚本 。如果觉得《深入理解Yii2.0》对您有所帮助也请[帮助《深入理解Yii2.0》](http://www.digpage.com/donate.html#donate)。 谢谢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/89167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

asp模版网站如何做优化科技论文发表网

以下有三个版本的memcpy,对于版本3,很多人都很熟悉,它很经典,很多人面试都写这个,可是我不得不说一句,对于类似的问题,最好的回答有两个:一是调用c库,二是使用汇编。用这…

装修网站论坛做cms网站

导读:农历新年将至,祝福的话汇成千言万语都寄托在贺卡之中,也许今年你受到了很多的挫折,又或者是顺顺利利度过了一年。但不管怎么样,不管是哭与笑,人生的年轮都已经转过了一圈。我们唯有继续向前走,不要回头,未来的自己取决于现在的自己。有时候一句不经意的问候,一句…

网站建设宣传视频教程绍兴网站优化

前言:生产linux部署的zookeeper,执行启动脚本后,还是无法使用,故进行重启排查 在zookeeper的bin目录下执行 ./zkServer.sh start-foreground 可实时查看启动日志排查问题 根据上面的日志可以看出,是zoo.cfg配置文件里…

wordpress网站的cdn怎么设置免费自己做网站手机软件

webm是一个开放、免费的媒体文件格式。WebM影片格式是以Matroska(即MKV)容器格式为基础开发的新容器格式,里面包括了VP8影片轨和Ogg Vorbis音轨;其中Google将其拥有的VP8视频编码技术以类似BSD授权开源,而Ogg Vorbis本…

省市建设类网站链接网页制作与网站建设初学者必看教程

在Docker中进行MySQL数据迁移通常涉及将数据从一个MySQL容器导出&#xff0c;并将其导入到另一个容器或主机上的MySQL实例中。以下是一般步骤&#xff1a; 步骤 1: 在源 MySQL 容器中导出数据 进入源 MySQL 容器&#xff1a; docker exec -it <source_mysql_container_name…

网站优化软件推荐做算命网站挣钱么

在上一篇博客&#xff1a;C#曲线分析平台的制作&#xff08;三&#xff0c;三层构架echarts显示&#xff09;中已经完成了后台的三层构架的简单搭建&#xff0c;为实现后面的拓展应用开发和review 改写提供了方便。而在曲线分析平台中&#xff0c;往往有要求时间轴联动功能&…

网站参数保险做的好的网站有哪些内容

在日常生活和工作中&#xff0c;我们经常会遇到需要从Word文档中提取图片的情况。无论是为了单独保存这些图片&#xff0c;还是为了在其他地方使用它们&#xff0c;一键提取Word中的图片都是一个非常实用的技能。提取Word文件中的图片并不是一件复杂的事情&#xff0c;只要掌握…

西安网站建设网站法律咨询免费律师在线咨询

将npm的下载源恢复为默认的官方源&#xff0c;命令如下&#xff1a; npm config set registry https://registry.npmjs.org淘宝官方提供的最新的配置淘宝镜像的方法&#xff0c;命令如下&#xff1a; npm config set registry https://registry.npmmirror.com也可以查看是否修改…

东营北京网站建设多媒体设计与制作毕业设计

win11配置Mask DINO踩坑记录 1 准备工作2 创建python环境和安装detectron22.1 安装前提2.2 安装流程2.2.1 cl.exe的错误2.2.2 SetuptoolsDeprecationWarning的错误 3 MaskDINO运行3.1 运行demo 前情提要&#xff1a;需要复现Mask DINO&#xff0c;但是实验室没有Linux的电脑&am…

网站建设学习浩森宇特霞浦建设局网站

二、MSTPEth-trunk 实验拓扑实验需求及解法 实验拓扑 实验需求及解法 //1.如图所示&#xff0c;配置设备名称和 IP 地址。 //2.在 SW1 与 SW2 之间配置链路聚合协议 LACP&#xff0c;完成以下需求&#xff1a; //2.1 SW1 作为主动端&#xff0c;设置系统优先级为最高。 [SW1]l…

旅游网站排名榜php外贸网站源码

我们都知道&#xff0c;JDK 其实给我们提供了很多很多 Java 开发者已经写好的现成的类&#xff0c;他们其实都可以理解成工具类&#xff0c;比如我们常见的集合类&#xff0c;日期相关的类&#xff0c;数学相关的类等等&#xff0c;有了这些工具类&#xff0c;你会发现它能很大…

汕头网站制作全过程佛山企业网站设计公司

三、2023年12月GESP Python三级编程题 【三级编程题1】 【试题名称】&#xff1a;小猫分鱼 【问题描述】 海滩上有一堆鱼&#xff0c;N只小猫来分。第一只小猫把这堆鱼平均分为N份&#xff0c;多了i<N条鱼&#xff0c;这只小猫把多的i条鱼扔入海中&#xff0c;拿走了一份…

珠海建设集团网站首页网络工程公司的业务

简单查询insert添加insert可以使用数据库支持的自动生成主键策略&#xff0c;设置useGeneratedKeys”true”&#xff0c;然后把keyProperty 设成对应的列&#xff0c;就搞定了。比如说上面的StudentEntity 使用auto-generated 为id 列生成主键.还可以使用selectKey元素。下面例…

成都微网站开发动态电商网站怎么做

选本必看--笔记本主流cpu参数大全现在本本的处理器种类真的太多了&#xff0c;绝对足够让人眼花缭乱的&#xff0c;各式各样的CPU核心、外频、缓存、接口、电压、制作工艺等等&#xff0c;多到让人疯狂&#xff0c;很少认能够对此了如执掌的。这次我们归纳了所有主流的本本处理…

wordpress自适应建站wordpress 指定

Spark事件总线机制 采用Spark2.11源码&#xff0c;以下类或方法被DeveloperApi注解额部分&#xff0c;可能出现不同版本不同实现的情况。 Spark中的事件总线用于接受事件并提交到对应的监听器中。事件总线在Spark应用启动时&#xff0c;会在SparkContext中激活spark运行的事件总…

一个公司优化需要做多少个网站前端开发和后端开发哪个好些

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 企业活动发布会邀请媒体报道具有多种好处与优势&#xff0c;这些都有助于提升企业的知名度、形象和影响力。以下是一些主要的好处与优势&#xff1a; 提升品牌知名度&#xff1a;媒体报道…

工会网站建设可以wordpress for sae 4.3

​在使用jmeter进行接口测试时&#xff0c;我们难免会遇到需要从上下文中获取测试数据的情况&#xff0c;这个时候就需要引入变量了。 定义变量 添加->配置元件->用户自定义的变量 添加->配置元件->CSV 数据文件设置 变量的调用方式&#xff1a;${变量名} 变量的…

齐齐哈尔住房和城乡建设局网站课程网站如何建设方案

LED流水灯 循环左移右移函数 crol(a,b):循环左移函数&#xff0c;a是左移的值&#xff0c;b是左移的位数。包含在instrins.h库函数里面。 cror(a,b):循环右移函数&#xff0c;a是右移的值&#xff0c;b是右移的位数。包含在instrins.h库函数里面。 实验代码 #include "…