Jika menggunakan XAMPP/Apache:
- Clone repository di
DocumentRoot/todo
(biasanya dic:\xampp\htdocs
kalau di windows). - Pastikan apache server telah menyala dan kunjungi melalui browser ke
http://localhost/todo
Menggunan web server built-in PHP (php -S
):
- Clone repository ini
- Jalankan perintah
php -S 127.0.0.1:8080
untuk menghidupkan web server PHP yang diakses dihttp://localhost:8080
(sesuaikan IP dan port number jika dibutuhkan)
Model View Controller merupakan pola pengembangan aplikasi dengan membagi code menjadi 3 komponen utama:
-
Model, komponen yang bertugas untuk mengelola data yang diolah di dalam aplikasi. Model berisikan struktur data untuk menampung data dan juga fungsi/method untuk melakukan operasi terhadap struktur data.
-
View, komponen yang bertugas untuk menampilkan informasi dan menyediakan user interface supaya user dapat melakukan operasi terhadap aplikasi.
-
Controller, komponen yang berinteraksi dengan Model dan View. Controller menerima input dari user dan kemudian melakukan manipulasi data terhadap model melalui interface yang tersedia dan kemudian model mengirimkan update/perubahan ke View untuk ditampilkan kepada user.
Composer, merupakan tools dependency management untuk mengelola dependency pada project PHP.
Langkah-langkah untuk memulai project PHP menggunakan Composer:
-
Jika Composer belum terpasang, install mengikuti panduan.
-
Buat directory baru untuk menampung project. Misalnya
mkdir todo
. Pindah ke dalam directory projectcd todo
. -
Optional, inisialisasi repository git baru
git init
. -
Inisialiasi project composer,
composer init
. Jawab pertanyaan panduan untuk menginisialisasi project composer.
Project PHP menggunakan composer memiliki struktur seperti berikut:
-
src
, root directory untuk untuk source code project. -
composer.json
, file yang mendefinisikan informasi mengenai project composer beserta dependency. -
composer.lock
, menyimpan informasi mengenai versi dependency terakhir yang terpasang. -
vendor
, directory yang menampung dependency project yang telah di-download.
Seluruh source code project akan diletakkan di dalam directory src
.
Namespace digunakan untuk menyediakan struktur penamaan untuk code PHP.
Project composer menggunakan namespace untuk mengorganisasikan code project dan mengikuti standard PSR-4: Autoloader untuk meng-autoload file source dependency.
Contoh:
namespace App\Http\Controller;
class HelloController {...}
Mengikuti standard PSR-4 source code di atas harus disimpan pada directory
App\Http\Controller
dengan nama file HelloController.php
.
File composer.json
mendefinisikan directory root untuk melakukan autoloading.
Contoh:
"autoload": {
"psr-4": {
"Uph22si1Web\\Todo\\": "src/"
}
}
Menyatakan bahwa namespace Uph22si1Web\Todo
dapat ditemukan di directory src
.
Panduan menampilkan contoh code untuk melakukan autoloading.
require __DIR__ . '/vendor/autoload.php';
Selama ini kita selalu mengakses script PHP dengan menuliskan path nya secara lengkap.
Misalnya http://localhost/db.php
mengakses script db.php
yang berada di
root directory web server.
Supaya web dapat diakses dengan URL yang lebih "bersih", misalnya http://localhost/todo
,
kita dapat menggunakan satu script PHP yang berfungsi sebagai entry point untuk aplikasi
web PHP.
Script PHP entry point ini berfungsi menjadi router yang nantinya akan menjalankan
script sesuai dengan URL yang direquest oleh user.
Konfigurasi entry point ini mengikuti web server yang digunakan untuk
meng-host aplikasi PHP.
Ide sederhananya adalah web server dikonfigurasi untuk mengirimkan seluruh request
ke script entry point vs web server langsung mengakses file yang direquest oleh user.
Contoh membuat script router sederhana: How to Build a Routing System for a PHP App from Scratch