입력 스크립트는 애플리케이션 시작 프로세스의 첫 번째 단계입니다. 애플리케이션(웹 애플리케이션이든 콘솔 애플리케이션이든)에는 하나의 입력 스크립트만 있습니다. 최종 사용자 요청은 애플리케이션을 인스턴스화하고 해당 요청을 애플리케이션에 전달하는 입력 스크립트를 거칩니다.
웹 애플리케이션의 입력 스크립트는 최종 사용자가 액세스할 수 있는 디렉토리(일반적으로 index.php라는 이름 또는 웹 서버에서 찾을 수 있는 다른 이름)에 있어야 합니다.
콘솔 애플리케이션의 입력 스크립트는 일반적으로 애플리케이션 루트 디렉터리에 yii(접미사 .php)라는 이름으로 지정됩니다. 사용자가 ./yii d31b1a7c44939764b30ad061c016a24f 명령을 전달할 수 있도록 파일 실행 권한이 필요합니다. ] [옵션] 콘솔 응용 프로그램을 실행합니다.
입력 스크립트는 주로 다음 작업을 완료합니다.
전역 상수 정의
Composer 자동 로더 등록
[[Yii]] 클래스 파일 포함 ;
애플리케이션 구성 로드;
애플리케이션 인스턴스를 생성하고 구성합니다.
요청을 처리하려면 [[yiibaseApplication::run()]]을 호출하세요.
웹 애플리케이션
다음은 기본 애플리케이션 템플릿의 입력 스크립트 코드입니다.
<?php defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev'); // 注册 Composer 自动加载器 require(__DIR__ . '/../vendor/autoload.php'); // 包含 Yii 类文件 require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); // 加载应用配置 $config = require(__DIR__ . '/../config/web.php'); // 创建、配置、运行一个应用 (new yii\web\Application($config))->run();
콘솔 애플리케이션
다음은 콘솔 애플리케이션용 항목 스크립트:
#!/usr/bin/env php <?php /** * Yii console bootstrap file. * * @link http://www.yiiframework.com/ * @copyright Copyright (c) 2008 Yii Software LLC * @license http://www.yiiframework.com/license/ */ defined('YII_DEBUG') or define('YII_DEBUG', true); // fcgi 默认没有定义 STDIN 和 STDOUT defined('STDIN') or define('STDIN', fopen('php://stdin', 'r')); defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w')); // 注册 Composer 自动加载器 require(__DIR__ . '/vendor/autoload.php'); // 包含 Yii 类文件 require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php'); // 加载应用配置 $config = require(__DIR__ . '/config/console.php'); $application = new yii\console\Application($config); $exitCode = $application->run(); exit($exitCode);
상수 정의
입력 스크립트는 전역 상수를 정의하는 데 가장 적합한 장소입니다. Yii는 다음 세 가지 상수를 지원합니다.
YII_DEBUG : 애플리케이션이 디버그 모드에서 실행 중인지 식별합니다. 디버그 모드에 있을 때 애플리케이션은 더 많은 로그 정보를 유지하며, 예외가 발생하면 자세한 오류 호출 스택이 표시됩니다. 따라서 디버그 모드는 주로 개발 단계에서 사용하기에 적합하며 YII_DEBUG의 기본값은 false입니다.
YII_ENV: 애플리케이션이 실행되는 환경을 식별합니다. 자세한 내용은 구성 장을 참조하세요. YII_ENV의 기본값은 'prod'입니다. 이는 애플리케이션이 온라인 프로덕션 환경에서 실행된다는 의미입니다.
YII_ENABLE_ERROR_HANDLER: Yii에서 제공하는 오류 처리를 활성화할지 여부를 식별하며 기본값은 true입니다.
상수를 정의할 때 일반적으로 다음과 유사한 코드를 사용하여 정의됩니다.
defined('YII_DEBUG') or define('YII_DEBUG', true);
위 코드는 다음과 동일합니다.
if (!defined('YII_DEBUG')) { define('YII_DEBUG', true); }
분명히 첫 번째 코드 조각이 더 간단하고 이해하기 쉽습니다.
상수 정의는 항목 스크립트 시작 부분에 있어야 다른 PHP 파일이 포함될 때 상수가 적용됩니다.