Memperluas Pengontrol Codeigniter 4

Memperluas Pengontrol Codeigniter 4

Candil.eu.org - Pengontrol inti CodeIgniter tidak boleh diubah, tetapi ekstensi kelas default disediakan untuk Anda di app/Controllers/BaseController.php . Setiap pengontrol baru yang Anda buat harus diperluas BaseController untuk memanfaatkan komponen yang dimuat sebelumnya dan fungsionalitas tambahan apa pun yang Anda berikan:


<?php

namespace AppControllers;

use CodeIgniterController;

class Home extends BaseController
{
        // ...
}

Komponen Pramuat

Pengontrol dasar adalah tempat yang tepat untuk memuat semua pembantu, model, perpustakaan, layanan, dll. yang ingin Anda gunakan setiap kali proyek Anda berjalan. Pembantu harus ditambahkan ke $helpers larik yang telah ditentukan sebelumnya . Misalnya, jika Anda ingin pembantu HTML dan Teks tersedia secara universal:


protected $helpers = ['html', 'text'];

Setiap komponen lain untuk memuat atau data untuk diproses harus ditambahkan ke konstruktor initController(). Misalnya, jika proyek Anda sangat menggunakan Perpustakaan Sesi, Anda mungkin ingin memulainya di sini:


public function initController(...)
{
        // Do Not Edit This Line
        parent::initController($request, $response, $logger);

        $this->session = ConfigServices::session();
}

Metode Tambahan

Pengontrol dasar tidak dapat dirutekan (konfigurasi sistem mengarahkannya ke 404 Halaman Tidak Ditemukan). Sebagai langkah pengamanan tambahan, semua metode baru yang Anda buat harus dinyatakan sebagai protected atau private dan hanya dapat diakses melalui pengontrol yang Anda buat ekstensi itu BaseController.

Pilihan lain

Anda mungkin menemukan bahwa Anda memerlukan lebih dari satu pengontrol dasar. Anda dapat membuat pengontrol basis baru selama pengontrol lain yang Anda buat memperluas basis yang benar. Misalnya, jika proyek Anda memiliki antarmuka publik yang terlibat dan portal administratif sederhana, Anda mungkin ingin memperluas BaseController ke pengontrol publik dan membuat AdminController pengontrol administratif apa pun.

Jika Anda tidak ingin menggunakan pengontrol dasar, Anda dapat melewatinya dengan meminta pengontrol Anda memperluas Pengontrol sistem sebagai gantinya:
class Home extends CodeIgniterController
{

}

Sumber : https://codeigniter.com/