Saat kita mempelajari Yii 2 kita akan menemukan namespace. Kita juga menemukan bahwa tidak semua class bisa langsung dipanggil. Sebagai contoh jika kita membuat sebuah models maka tidak secara otomatis dapat dipanggil melalui suatu controller.

Jika kita amati maka kita melihat pola

  1. Pada models :
    Coding pada model akan seperti berikut ini:

    namespace app\models;
    use yii\base\Model;

    class EntryForm extends Model
    {
    ……

    Dari coding di atas, coding yang ada di dalam EntryForm ini dapat memanggil semua class yang ada di  app\models atau yang masih jadi satu folder dengan  EntryForm. Untuk class lain harus dipanggil secara manual misalnya use yii\base\Model;

  2. Pada controller:
    Coding yang ada pada controller mempunyai pola seperti berikut ini:

    namespace app\controllers;

    use Yii;
    use yii\filters\AccessControl;
    use yii\web\Controller;
    use yii\filters\VerbFilter;
    use app\models\LoginForm;
    use app\models\ContactForm;
    use app\models\EntryForm;

    class SiteController extends Controller
    {
    …..

    Hal yang sama juga terjadi pada controller. Dari coding dalam controller ini, kita dapat melihat bahwa kita dapat langsung mengakses class-class yang ada di app\controllers atau class-class yang ada di dalam folder controller. Dan tentu saja folder controller ini jadi satu dengan class ini. Class-class lain yang diperlukan harus dipanggil menggunakan keyword use.

Penggunaan namespace ini digunakan untuk menghindari konflik yang mungkin terjadi jika ada dua class yang sama yang berada pada folder yang berbeda. Kita dapat dengan jelas menunjukkan class mana yang akan digunakan jika terjadi konflik.

Informasi lebih lanjut silahkan mengunjungi http://php.net/manual/en/language.namespaces.php .

Kunjungi www.proweb.co.id untuk menambah wawasan anda.

Namespace pada Yii 2