FuelPHP - Tinjauan Arsitektur
FuelPHP didasarkan pada pertempuran yang diuji Model-View-Controller arsitektur bersama HMVC (Hierarchical MVC)dukung. Sementara MVC menyediakan pengembangan aplikasi yang fleksibel dan berlapis, HMVC melangkah lebih jauh untuk mengaktifkan widgetisasi aplikasi web.
Kekuatan FuelPHP adalah tidak memaksakan cara-cara khusus untuk mengembangkan aplikasi. Ini hanya menyediakan struktur standar yang sederhana dan mudah digunakan. Pengembang bebas menggunakan serangkaian fungsionalitas yang telah ditentukan sebelumnya yang disediakan oleh FuelPHP atau memodifikasinya kapan pun diperlukan. Semua fitur yang disediakan oleh FuelPHP termasuk fitur inti dapat diubah sesuai dengan kebutuhan aplikasi.
Model
Model adalah entitas bisnis aplikasi. Controller dan View pertukaran data dalam bentuk Model. Model memungkinkan representasi seragam dari data bisnis kami. Ini memungkinkan lapisan database untuk berinteraksi dengan lapisan aplikasi web dengan cara standar dan memberikan opsi untuk memilih, menyimpan, mengedit, dan menghapus entitas database kami.
Kontroler
Aplikasi MVC tipikal dimulai dari Controller. Setelah pengguna mengirim permintaan ke aplikasi web FuelPHP, aplikasi mengumpulkan semua informasi tentang permintaan tersebut dan mengirimkannya ke Controller. Pengontrol melakukan logika bisnis yang diperlukan dari halaman yang diminta dan kemudian memanggil View yang relevan bersama dengan data yang diproses dalam bentuk Model.
Melihat
View adalah lapisan presentasi dari aplikasi MVC. View memutuskan bagaimana menampilkan Model kepada pengguna. Ini mendukung rendering data sederhana ke tata letak lanjutan, yang memungkinkan situs web menormalkan desain di semua halaman. View juga menyediakan dukungan tema, yang memungkinkan perubahan desain yang cepat di seluruh aplikasi.
Pembawa acara
Presenter adalah fitur khusus yang disediakan oleh FuelPHP. Ini adalah perekat antara Controller dan View. Pengontrol dapat berbagi beberapa tanggung jawab tingkat rendahnya seperti mengambil model dari database, menghasilkan data untuk tampilan, dll. Pengontrol memanggil Presenter alih-alih View, yang pada gilirannya memanggil View. Presenter memungkinkan pemisahan murni logika bisnis dan lapisan presentasi.
MVC hierarkis
FuelPHP menyediakan opsi untuk memanggil satu pengontrol dari pengontrol lain, serupa dengan permintaan dari klien (browser). Jika ada pengontrol yang memanggil pengontrol lain, pengontrol yang dipanggil akan mengembalikan respons ke pengontrol yang memanggil alih-alih merendernya ke klien (browser). Ini memungkinkanwidgetizationdari aplikasi web. Misalnya, bagian komentar dapat ditampilkan sebagai halaman yang berdiri sendiri maupun sebagai sub-bagian dari halaman utama (blog).
Modul
Salah satu fitur penting dari FuelPHP adalah bahwa bagian dari aplikasi web dapat diubah menjadi modul, yang dapat digunakan bersama di antara aplikasi yang berbeda. Misalnya, modul blog yang dibuat untuk suatu aplikasi dapat digunakan kembali di aplikasi lain dengan hanya menyalin kode modul dari aplikasi sumber ke aplikasi target.
Perhatikan bahwa membuat modul baru semudah mengembangkan aplikasi utama. Strukturnya mirip dengan aplikasi utama dengan satu-satunya pengecualian bahwa modul harus mengkodekan folder terpisah.
Paket
FuelPHP memberikan opsi untuk mengatur kode menjadi satu kesatuan yang disebut Package. Sebuah paket dapat berisi satu atau lebih fungsionalitas yang dibutuhkan untuk aplikasi web. Misalnya, komponen database seperti ORM, email, dll., Dapat diatur menjadi sebuah paket dan digunakan kapan pun diperlukan.
Paket berbeda dari Modul dalam arti Paket tidak berisi halaman web atau sebagian halaman web. Paket dapat digunakan di FuelPHP serta kerangka PHP lainnya.
Alur Kerja
Alur kerja FuelPHP sederhana dan mudah dimengerti. Itu digambarkan dalam diagram berikut.
Pengguna mengirimkan permintaan ke aplikasi.
Pengontrol menerima permintaan dan mengumpulkan informasi dengan berinteraksi dengan model, yang pada gilirannya berinteraksi dengan database.
Pengontrol mengumpulkan informasi dengan berinteraksi dengan pengontrol lain dengan mengirimkan permintaan lanjutan ke pengontrol lain.
Pengontrol mengirimkan model yang diambil ke tampilan, yang kemudian menghasilkan presentasi dan mengirimkannya ke klien sebagai respons.
Dalam beberapa kasus, pengontrol dapat meneruskan kontrol ke penyaji. Dalam hal ini, penyaji mengumpulkan informasi dari model dan mengirimkannya ke klien. Di sini, penyaji tidak melakukan logika bisnis apa pun, kecuali mengambil model dari database.