入口脚本(Entry Scripts)

入口脚本是应用启动流程中的第一环,一个应用(不管是网页应用还是控制台应用)只有一个入口脚本。终端用户的请求通过入口脚本实例化应用并将请求转发到应用。

Web 应用的入口脚本必须放在终端用户能够访问的目录下,通常命名为 index.php,也可以使用 Web 服务器能定位到的其他名称。

入口脚本主要完成以下工作:

  • 定义全局常量;
  • 注册 Composer 自动加载器
  • 包含 Wii 类文件;
  • 加载应用配置;
  • 创建一个应用实例并配置;
  • 调用 [[wii\web\Application::run()]] 来处理请求。

Web 应用

以下是Wii应用web入口脚本的代码:

<?php
// 定义常用路径
define("ROOT_DIR", dirname(__FILE__) . '/..');

// 框架加载
require('../vendor/autoload.php'); // 框架加载

// 运行应用
(new wii\web\Application(\Wii::getEnv()->getConfig()))->run();

控制台应用

以下是一个控制台应用的入口脚本,项目中的wcl.php,可以这样运行

wcl.php文件内容如下:

<?php
// 定义路径
define("ROOT_DIR", dirname(__FILE__));

/*
 * 框架加载,需与 [app]/web/index.php 中加载文件保持一致
 */
require ('/data/code/wii/wii2-auto/vendor/autoload.php'); // 扩展依赖库加载(可选)
require ('/data/code/wii/wii2/framework/Wii.php'); // Wii框架加载

// 获取命令行模式配置
$config = \Wii::getEnv()->getConfig('console');

require ('/data/code/wii/wii2/framework/wcl.php'); // 加载 Wii Command Line 主体

运行命令行程序如下,hello对找到commands/HelloController.php程序

php wcl.php hello

results matching ""

    No results matching ""