Yaravel adalah kerangka kerja PHP MVC yang kecil namun kuat yang dapat digunakan untuk merender HTML dan sebagai API. Ini menampilkan sistem permintaan dan perutean, mesin tampilan dengan dukungan untuk stylesheet dan javascript, dan ORM yang disebut Helloquent untuk komunikasi database. Yaravel dirancang agar cepat, efisien, dan fleksibel, menjadikannya pilihan ideal bagi pengembang yang ingin membangun aplikasi web dengan PHP.
Tweeter adalah aplikasi mirip twitter yang dibuat menggunakan versi awal kerangka kerja ini yang memungkinkan pengguna mengirim pesan singkat, yang dikenal sebagai "tweet", dan berinteraksi dengan orang lain melalui suka dan memeriksa tweet mereka. Aplikasi ini menampilkan umpan real-time dari tweet terbaru dari pengguna.
(lihat langsung atau repo aplikasi ini)
Rute aplikasi Anda dapat didaftarkan di folder "/routes" . Rute API harus ditempatkan di file "api.php" dan halaman web di file "web.php" .
Untuk mendaftarkan rute web, gunakan fungsi addRoute pada objek router. Fungsi ini mengambil parameter berikut:
// $router->addRoute(path, controller path, action);
$ router -> addRoute ( " / " , DefaultController::class, " viewDefault " );Lihat contoh di "/routes/web.php" untuk informasi lebih lanjut.
Untuk mendaftarkan rute API, gunakan fungsi api pada objek router. Fungsi ini mengambil parameter berikut:
// $router->addRoute(path, controller path, method);
$ router -> api ( " / " , DefaultController::class);
$ router -> api ( " / " , DefaultController::class, " post " );Lihat contoh di "/routes/api.php" untuk informasi lebih lanjut.
Objek $this->request disertakan di dalam pengontrol dan merupakan turunan dari kelas HttpRequest . Ini menyimpan semua data dari permintaan. Objek tersebut memiliki beberapa properti, antara lain:
Kelas HttpResponse digunakan untuk merespons panggilan API. Ia memiliki fungsi statis yang disebut respond yang memiliki dua parameter:
MVC (Model-View-Controller) adalah pola desain perangkat lunak yang memisahkan aplikasi menjadi tiga komponen utama
Komponen Model dalam kerangka kerja bertanggung jawab untuk menangani data dan logika bisnis, dan untuk berkomunikasi dengan database. Hal ini dilakukan melalui penggunaan Helloquent, alat ORM yang khusus dibuat untuk kerangka kerja tersebut. Untuk detail lebih lanjut, lihat dokumentasi Helloquent di tautan ini https://github.com/you97ssef/Helloquent.
Model harus disimpan di direktori /app/Models dan harus memperluas kelas Model (seperti yang ditunjukkan oleh kelas Person dalam kode).
Komponen View berisi fungsi yang mengembalikan HTML yang dicampur dengan data untuk ditampilkan kepada pengguna. Data yang digunakan dapat diteruskan dari Controller dan dapat diakses melalui atribut $this->data (array). Tampilan harus disimpan di direktori /app/views dan harus memperluas kelas View (seperti yang ditunjukkan oleh kelas DefaultView atau ErrorView dalam kode).
Teks Revisi: Komponen Pengontrol menangani input pengguna dan memperbarui Model dan Tampilan sesuai dengan itu. Pengontrol harus disimpan di direktori /app/Controllers dan harus memperluas kelas Controller . Ia memiliki properti $this->request yang berisi data dari permintaan masuk. Untuk merespons sebagai halaman web, View harus didefinisikan dan fungsi render dari View tersebut harus dipanggil, seperti $view->render("renderBody") . Untuk merespons panggilan API, fungsi respond dari kelas HttpResponse harus digunakan, misalnya HttpResponse::respond($data) . Lihat DefaultController sebagai contoh.
Aplikasi dimulai dengan file index.php. Pertama, permintaan dibuat, diikuti dengan registrasi CSS dan JS. Selanjutnya, konfigurasi aplikasi dan konfigurasi database diinisialisasi, lalu router dikonfigurasi. Terakhir, aplikasi dijalankan dengan memanggil $router->run(); (lihat file index.php untuk info lebih lanjut)
Kerangka kerja ini dilisensikan di bawah Lisensi MIT, yang merupakan lisensi sumber terbuka permisif yang memungkinkan penggunaan, modifikasi, dan distribusi perangkat lunak. Lisensi MIT memungkinkan fleksibilitas tingkat tinggi dalam cara penggunaan perangkat lunak dan mencakup serangkaian batasan minimal.