mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 06:37:55 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			114 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
Skrip Masuk
 | 
						|
===========
 | 
						|
 | 
						|
Skrip masuk adalah langkah pertama pada proses _bootstrap_ aplikasi. Dalam sebuah aplikasi (apakah
 | 
						|
itu aplikasi web atau aplikasi konsol) memiliki satu skrip masuk. Pengguna mengirim _request_ ke
 | 
						|
skrip masuk dimana skrip tersebut membangun objek aplikasi dan meneruskan _request_ ke objek tersebut.
 | 
						|
 | 
						|
Skrip masuk untuk aplikasi web harus disimpan pada direktori yang dapat diakses dari web sehingga
 | 
						|
dapat di akses oleh pengguna. Secara umum, skrip tersebut diberi nama `index.php`, tetapi boleh menggunakan nama lain,
 | 
						|
selama _web server_ bisa mengakses skrip tersebut.
 | 
						|
 | 
						|
Skrip masuk untuk aplikasi konsol pada umumnya disimpan di dalam [base path](structure-applications.md)
 | 
						|
dari objek aplikasi dan diberi nama `yii` (dengan suffix `.php`). Skrip tersebut harus memiliki akses _execute_
 | 
						|
sehingga pengguna dapat menjalan aplikasi konsol menggunakan perintah `./yii <route> [argument] [option]`.
 | 
						|
 | 
						|
Skrip masuk umumnya mengerjakan tugas berikut ini:
 | 
						|
 | 
						|
* Menentukan _global constant_;
 | 
						|
* Mendaftarkan [autoloader Composer](https://getcomposer.org/doc/01-basic-usage.md#autoloading);
 | 
						|
* Memasukkan file _class_ [[Yii]];
 | 
						|
* Mengambil konfigurasi aplikasi, dan memuatnya;
 | 
						|
* Membuat dan mengatur objek [application](structure-applications.md);
 | 
						|
* Memanggil [[yii\base\Application::run()]] untuk memproses _request_ yang diterima;
 | 
						|
 | 
						|
 | 
						|
## Aplikasi Web<span id="web-applications"></span>
 | 
						|
 | 
						|
Kode berikut ini adalah kode yang terdapat pada skrip masuk [Template Proyek Dasar](start-installation.md).
 | 
						|
 | 
						|
```php
 | 
						|
<?php
 | 
						|
 | 
						|
defined('YII_DEBUG') or define('YII_DEBUG', true);
 | 
						|
defined('YII_ENV') or define('YII_ENV', 'dev');
 | 
						|
 | 
						|
// mendaftarkan autoloader Composer
 | 
						|
require __DIR__ . '/../vendor/autoload.php';
 | 
						|
 | 
						|
// memasukkan file class Yii
 | 
						|
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
 | 
						|
 | 
						|
// Mengambil konfigurasi aplikasi
 | 
						|
$config = require __DIR__ . '/../config/web.php';
 | 
						|
 | 
						|
// Membuat, mengkonfigurasi, dan menjalankan aplikasi
 | 
						|
(new yii\web\Application($config))->run();
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
## Aplikasi Konsol <span id="console-applications"></span>
 | 
						|
 | 
						|
Demikian juga dengan aplikasi konsol, kode berikut ini adalah kode yang terdapat pada skrip masuk aplikasi konsol :
 | 
						|
 | 
						|
```php
 | 
						|
#!/usr/bin/env php
 | 
						|
<?php
 | 
						|
/**
 | 
						|
 * Yii console bootstrap file.
 | 
						|
 *
 | 
						|
 * @link https://www.yiiframework.com/
 | 
						|
 * @copyright Copyright (c) 2008 Yii Software LLC
 | 
						|
 * @license https://www.yiiframework.com/license/
 | 
						|
 */
 | 
						|
 | 
						|
defined('YII_DEBUG') or define('YII_DEBUG', true);
 | 
						|
defined('YII_ENV') or define('YII_ENV', 'dev');
 | 
						|
 | 
						|
// mendaftarkan autoloader composer
 | 
						|
require __DIR__ . '/vendor/autoload.php';
 | 
						|
 | 
						|
// memasukkan file class Yii
 | 
						|
require __DIR__ . '/vendor/yiisoft/yii2/Yii.php';
 | 
						|
 | 
						|
// Mengambil konfigurasi aplikasi
 | 
						|
$config = require __DIR__ . '/config/console.php';
 | 
						|
 | 
						|
$application = new yii\console\Application($config);
 | 
						|
$exitCode = $application->run();
 | 
						|
exit($exitCode);
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
## Menentukan _Constant_ <span id="defining-constants"></span>
 | 
						|
 | 
						|
Skrip masuk adalah file yang tepat untuk menentukan _global constant_. Yii mengenali tiga _constant_ berikut ini:
 | 
						|
 | 
						|
* `YII_DEBUG`: untuk menentukan apakah aplikasi sedang dalam mode _debug_. Pada saat mode _debug_, aplikasi
 | 
						|
  akan menyimpan informasi log lebih banyak, dan akan menampilkan detail error urutan pemanggilan _(error call stack)_ jika ada _exception_ yang di-_throw_. Alasan inilah,
 | 
						|
  kenapa mode _debug_ sebaiknya digunakan pada tahap pengembangan. Nilai _default_ dari `YII_DEBUG` adalah `false`.
 | 
						|
* `YII_ENV`: untuk menentukan pada mode _environment_ manakah aplikasi ini dijalankan. _Constant_ ini akan dijelaskan lebih lanjut di
 | 
						|
  bagian [Konfigurasi](concept-configurations.md#environment-constants).
 | 
						|
  Nilai _default_ dari `YII_ENV` adalah `prod`, yang berarti aplikasi sedang dijalankan pada _production environment_.
 | 
						|
* `YII_ENABLE_ERROR_HANDLER`: untuk menentukan apakah akan mengaktifkan penanganan eror yang disediakan oleh Yii. Nilai _default_
 | 
						|
  dari _constant_ ini adalah `true`.
 | 
						|
 | 
						|
Untuk menentukan _constant_, kita biasanya menggunakan kode berikut ini:
 | 
						|
 | 
						|
```php
 | 
						|
defined('YII_DEBUG') or define('YII_DEBUG', true);
 | 
						|
```
 | 
						|
 | 
						|
kode di atas memiliki tujuan yang sama dengan kode berikut ini:
 | 
						|
 | 
						|
```php
 | 
						|
if (!defined('YII_DEBUG')) {
 | 
						|
    define('YII_DEBUG', true);
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
Jelas, kode yang pertama lah yang lebih ringkas dan lebih mudah untuk dimengerti.
 | 
						|
 | 
						|
Penentuan _constant_ sebaiknya ditulis di baris-baris awal pada skrip masuk sehingga akan berfungsi
 | 
						|
ketika file PHP lain akan dimasukkan _(include)_.
 |