Yii - สคริปต์รายการ

สคริปต์รายการมีหน้าที่เริ่มวงจรการจัดการคำขอ เป็นเพียงสคริปต์ PHP ที่ผู้ใช้สามารถเข้าถึงได้

ภาพประกอบต่อไปนี้แสดงโครงสร้างของแอปพลิเคชัน -

เว็บแอปพลิเคชัน (เช่นเดียวกับแอปพลิเคชันคอนโซล) มีสคริปต์รายการเดียว ผู้ใช้ปลายทางร้องขอไปยังสคริปต์รายการ จากนั้นสคริปต์รายการจะสร้างอินสแตนซ์แอ็พพลิเคชันอินสแตนซ์และส่งต่อคำขอไปยังอินสแตนซ์

สคริปต์รายการสำหรับแอปพลิเคชันคอนโซลมักถูกเก็บไว้ในเส้นทางพื้นฐานของโครงการและตั้งชื่อเป็น yii.php. สคริปต์รายการสำหรับเว็บแอปพลิเคชันต้องจัดเก็บไว้ในไดเร็กทอรีที่เข้าถึงได้บนเว็บ ซึ่งมักเรียกกันว่าindex.php.

สคริปต์รายการทำสิ่งต่อไปนี้ -

  • กำหนดค่าคงที่
  • ลงทะเบียนตัวโหลดอัตโนมัติของ Composer
  • รวมไฟล์ Yii
  • โหลดการกำหนดค่า
  • สร้างและกำหนดค่าอินสแตนซ์ของแอปพลิเคชัน
  • ดำเนินการตามคำขอที่เข้ามา

ต่อไปนี้เป็นสคริปต์รายการสำหรับ basic application แม่แบบ -

<?php
   //defining global constants
   defined('YII_DEBUG') or define('YII_DEBUG', true);
   defined('YII_ENV') or define('YII_ENV', 'dev');
 
   //register composer autoloader
   require(__DIR__ . '/../vendor/autoload.php');
   //include yii files
   require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
  
   //load application config
   $config = require(__DIR__ . '/../config/web.php'); //create, config, and process reques (new yii\web\Application($config))->run();
?>

ต่อไปนี้เป็นสคริปต์รายการสำหรับ console ใบสมัคร -

#!/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/ 
   */
   //defining global constants
   defined('YII_DEBUG') or define('YII_DEBUG', true);
  
   //register composer autoloader
   require(__DIR__ . '/vendor/autoload.php');
   require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');
  
   //load config
   $config = require(__DIR__ . '/config/console.php'); //apply config the application instance $application = new yii\console\Application($config); //process request $exitCode = $application->run(); exit($exitCode);
?>

สถานที่ที่ดีที่สุดสำหรับการกำหนดค่าคงที่ส่วนกลางคือสคริปต์รายการ มีสามค่าที่รองรับโดยค่าคงที่ Yii -

  • YII_DEBUG- กำหนดว่าคุณอยู่ในโหมดดีบักหรือไม่ หากตั้งค่าเป็นจริงเราจะเห็นข้อมูลบันทึกเพิ่มเติมและสแต็กข้อผิดพลาดรายละเอียด

  • YII_ENV- กำหนดโหมดสภาพแวดล้อม ค่าเริ่มต้นคือ prod ค่าที่ใช้ได้คือ prod, dev และ test ใช้ในไฟล์คอนฟิกูเรชันเพื่อกำหนดตัวอย่างเช่นการเชื่อมต่อ DB อื่น (โลคัลและรีโมต) หรือค่าอื่น ๆ

  • YII_ENABLE_ERROR_HANDLER - ระบุว่าจะเปิดใช้งานตัวจัดการข้อผิดพลาด Yii เริ่มต้นหรือไม่

ในการกำหนดค่าคงที่ส่วนกลางจะใช้รหัสต่อไปนี้ -

//defining global constants 
defined('YII_DEBUG') or define('YII_DEBUG', true); 
which is equivalent to: 
if(!defined('YII_DEBUG')) { 
   define('YII_DEBUG', true); 
}

Note - ควรกำหนดค่าคงที่ส่วนกลางที่จุดเริ่มต้นของสคริปต์รายการเพื่อให้มีผลเมื่อรวมไฟล์ PHP อื่น ๆ