Framework PHP MVC dari Awal

Apa yang akan kita bangun?
Pada masa sekarang, para developer kerap kali menggunakan framework populer seperti Laravel, Code Igniter, Yii, dan lain-lain dalam pekerjaan mereka. Kita tidak benar-benar tahu bagaimana framework bekerja di belakangnya. Jadi, dalam buku ini saya harap Anda dapat memperoleh pemahaman bagaimana sebuah framework PHP bekerja.

Saya tidak merekomendasikan freme work ini digunakan dalan proses produksi. Tujuan pembuatan framework ini hanya untuk kepentingan pembelajaran.

Kita akan membangun Framework MVC yang berfungsi penuh menggunakan PHP 7.4 yang dapat diinstal dan digunakan menggunakan Composer. Framework yang akan kita buat murni untuk kepentingan pembelajaran.

Kita akan mendapatkan pemahaman tentang bagaimana framework dibuat. Fremework yang kita buat belum siap produksi. Selama proyek ini kita akan belajar banyak hal:
 * Bagaimana bekerja dengan file system
 * Bagaimana bekerja dengan database
 * Cara menggunakan Abstraksi dalam proyek nyata
 * Bagaimana menerapkan perutean khusus (custom routing)
 * Cara menginstal paket pihak ketiga menggunakan Composer
 * Cara membuat paket Composer yang dapat digunakan kembali
 * dan banyak hal penting lainnya

Beberapa Fitur Framework

 * Custom Routing
 * Composer
 * Controllers
 * View/Layouts
 * Models
 * Migrations
 * Form widget classes
 * Processing of request data
 * Validation
 * Registration/Login
 * Simple Active Record
 * Session Flash message
 * Middlewares
 * Application events
 * Framework resuable/installable core

Apa yang akan kita lakukan?

 * Membuat Aplikasi dan Router
 * Mengaktifkan Autoloading Menggunakan Composer
 * Menerapkan Routing
 * Membuat Struktur Proyek
 * Menerapkan Views dan Layouts
 * Implement Controllers
 * Sanitize $_POST data
 * Start Registration
 * Implement second layout
 * Implement Models
 * Implement Validation using models
 * Implement form Widget
 * Migrations & Connection to Database
 * .env file & Application Config
 * Implement Migrations
 * Implement ActiveRecord & Finish Registration
 * Restrict registration with the same email
 * Implement Session Flash messages
 * Implement Input labels
 * Implement Login
 * Hide Login/Register buttons When user is authorized
 * Create protected routes
 * Create View component & implement page titles
 * Improve form widget with abstraction
 * Make core installable composer package
 * Create second website to use the same core
 * Add new feature to core and release new version