您现在的位置是:网站首页> 编程资料编程资料
Yii 框架应用(Applications)操作实例详解_php实例_
2023-05-25
298人已围观
简介 Yii 框架应用(Applications)操作实例详解_php实例_
本文实例讲述了Yii 框架应用(Applications)操作。分享给大家供大家参考,具体如下:
应用主体 ¶
应用主体是管理 Yii 应用系统整体结构和生命周期的对象。 每个Yii应用系统只能包含一个应用主体,应用主体在 入口脚本 中创建并能通过表达式 \Yii::$app 全局范围内访问。
信息: 当我们说"一个应用",它可能是一个应用主体对象,也可能是一个应用系统, 是根据上下文来决定[译:中文为避免歧义,Application翻译为应用主体]。
Yii有两种应用主体: 网页应用主体 and 控制台应用主体, 如名称所示,前者主要处理网页请求,后者处理控制台请求。
应用主体配置
如下所示,当 入口脚本 创建了一个应用主体, 它会加载一个 配置 文件并传给应用主体。
require __DIR__ . '/../vendor/autoload.php'; require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php'; // 加载应用主体配置 $config = require __DIR__ . '/../config/web.php'; // 实例化应用主体、配置应用主体 (new yii\web\Application($config))->run();
类似其他 配置 文件, 应用主体配置文件标明如何设置应用对象初始属性。 由于应用主体配置比较复杂,一般保存在多个类似如上web.php的 配置文件 当中。
应用主体属性 ¶
应用主体配置文件中有许多重要的属性要配置,这些属性指定应用主体的运行环境。 比如,应用主体需要知道如何加载 控制器 , 临时文件保存到哪儿等等。 以下我们简述这些属性。
必要属性
在一个应用中,至少要配置2个属性: id 和 basePath。
id 属性用来区分其他应用的唯一标识ID。主要给程序使用。 为了方便协作,最好使用数字作为应用主体ID, 但不强制要求为数字。
basePath 指定该应用的根目录。 根目录包含应用系统所有受保护的源代码。 在根目录下可以看到对应MVC设计模式的models, views, controllers等子目录。
可以使用路径或 路径别名 来在配置 basePath 属性。 两种格式所对应的目录都必须存在,否则系统会抛出一个异常。 系统会使用 realpath() 函数规范化配置的路径.
basePath 属性经常用于派生一些其他重要路径(如runtime路径), 因此,系统预定义 @app 代表这个路径。 派生路径可以通过这个别名组成(如@app/runtime代表runtime的路径)。
重要属性
本小节所描述的属性通常需要设置, 因为不同的应用属性不同。
该属性允许你用一个数组定义多个 别名。 数组的key为别名名称,值为对应的路径。 例如:
[ 'aliases' => [ '@name1' => 'path/to/path1', '@name2' => 'path/to/path2', ], ]
使用这个属性来定义别名, 代替 Yii::setAlias() 方法来设置。
这个属性很实用,它允许你用数组指定启动阶段 bootstrapping process 需要运行的组件。 比如,如果你希望一个 模块 自定义 URL 规则, 你可以将模块ID加入到bootstrap数组中。
属性中的每个组件需要指定以下一项:
例如:
[ 'bootstrap' => [ // 应用组件ID或模块ID 'demo', // 类名 'app\components\Profiler', // 配置数组 [ 'class' => 'app\components\Profiler', 'level' => 3, ], // 匿名函数 function () { return new app\components\Profiler(); } ], ] 信息: 如果模块 ID 和应用组件 ID 同名,优先使用应用组件 ID, 如果你想用模块 ID, 可以使用如下无名称函数返回模块 ID。
[ function () { return Yii::$app->getModule('user'); }, ]
在启动阶段,每个组件都会实例化。如果组件类实现接口 yii\base\BootstrapInterface,也会调用 bootstrap() 方法。
举一个实际的例子,Basic Application Template 应用主体配置中, 开发环境下会在启动阶段运行 debug 和 gii 模块。
if (YII_ENV_DEV) { // configuration adjustments for 'dev' environment $config['bootstrap'][] = 'debug'; $config['modules']['debug'] = 'yii\debug\Module'; $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = 'yii\gii\Module'; } 注意: 启动太多的组件会降低系统性能,因为每次请求都需要重新运行启动组件, 因此谨慎配置启动组件。
该属性仅 Web applications 网页应用支持。 它指定一个要处理所有用户请求的 控制器方法, 通常在维护模式下使用,同一个方法处理所有用户请求。
该配置为一个数组,第一项指定动作的路由,剩下的数组项(key-value 成对)指定传递给动作的参数, 例如:
[ 'catchAll' => [ 'offline/notice', 'param1' => 'value1', 'param2' => 'value2', ], ]
信息: 当开启这个属性时,开发环境下的调试面板将不能工作。
这是最重要的属性,它允许你注册多个在其他地方使用的 应用组件. 例如
[ 'components' => [ 'cache' =>
点击排行
本栏推荐
