php 框架 脚本目录,深入学习Yii2.0之--目录结构和入口脚本

1、YII2.0的新特性

运用了PHP命名空间、Trait、 PSR标准 、Composer和Bower包管理器, 等新技术新标准。

实现了 依赖注入和依赖注入容器 以及 服务定位器(Service Locator) 等新架构新模式。

Yii2.0格外重视安全性,采取一系列手段有效防止SQL注入、XSS攻击、CSRF攻击、cookie篡改等。

广泛支持各类SQL和NOSQL数据库,高效实现了Active Record等数据库查询、操作界面,提供数据库迁移、复制、 读写分离等功能。

只需极少量的代码就可以实现完全符合标准的RESTful API。

支持各种粒度、介质的缓存机制。

提供多种认证和授权手段基于cookie和基于令牌的认证,RBAC等权限控制手段,支持OpenID,OAuth1,OAuth2等。

支持Bootstrap,jQuery UI,提供了丰富的Widget挂件供使用。

完善的国际化支持,提供符合 ICU标准 的时间、复数等格式化工具和消息翻译、视图翻译等功能。

除了支持Twig和Smarty 2个主流的PHP模版引擎外,开发者还可以自己写扩展支持其他引擎。

为苦命码农提供了 Yii调试工具条 和 Gii代码生成器 以及 文档生成器 等高效开发工具。

集成了 Codeception 和 Faker,并与DB Migration相结合,提供了一个fixture框架,方便测试开发。

提供了一个简单应用模板和高级应用模板,适用于不同的开发场景,都可以帮助开发者尽快搭建起自己的应用。

2、YII2.0目录结构

1、基本版目录结构

f6e0c97c21f7fc3843b62c0bc656f08e.png

2、高级版目录结构

fecde182f811a5fbcddfdf413b5abf44.png

对于高级应用而言,相当于有 backend frontend console 三个独立的Yii应用

公共目录

common:准确而言这里的公共目录应该是指common下面的所有文件

config 就是通用的配置,这些配置将作用于前后台和命令行。

mail 就是应用的前后台和命令行的与邮件相关的布局文件等。

models 就是前后台和命令行都可能用到的数据模型。

vendor:三方依赖包库

前台的目录结构

其实,前台和后台是一样的,只是我们逻辑上的一个划分。 典型的, 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();

命令行应用入口脚本

命令行应用的入口脚本是 path/to/digpage.com/yii 文件。这个文件被 init 脚本设为可执行的。

对比于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来运行入口脚本 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值