Lewati ke konten utama
  1. Posts/

PHP MVC Web - Part 1 PHP Entry Point

·452 kata·3 menit· loading · loading ·
Code Web Php
Desdulianto
Penulis
Desdulianto
Seorang professional IT, bekerja dari rumah
php-web-mvc - This article is part of a series.
Part 1: This Article

Pada artikel ini kita akan membahas mengenai pengembangan web dengan pattern MVC menggunakan PHP. Kita tidak akan menggunakan framework tapi akan menulis sendiri seluruh komponen yang dibutuhkan. Code akan kita tulis di-inspirasi oleh framework Laravel.

Contoh code dari artikel ini bisa dilihat di todo-project-php.

Kita akan mengeksplorasi beberapa konsep yang umum ditemukan pada web framework seperti router, controller, view, controller dan middleware.

Disclaimer, code yang akan kita tulis belum production ready. Contoh code hanya digunakan untuk tujuan pembelajaran konsep MVC pada pengembangan web.

Pada seri pertama ini kita akan membahas mengenai entry point. Oke, mari kita mulai!

PHP Entry Point
#

Hal pertama yang akan kita kerjakan adalah mem-forward seluruh request ke script PHP ke satu script yang menjadi entry point.

Secara tradisional, model eksekusi web PHP adalah sebagai berikut:

  1. user mengirimkan request ke web server
  2. web server memproses request dan memilih script PHP yang akan dijalankan sesuai dengan URL request. Biasanya URL request berisikan nama script PHP yang akan dijalankan misalnya: http://localhost/index.php atau http://localhost/hello.php
  3. web server mengeksekusi script PHP dengan mengirimkan request ke script
  4. Script PHP memproses request, menghasilkan response (atau error) dan dikirimkan kembali ke web server
  5. Web server mengirimkan response ke user

Berdasarkan model eksekusi di atas, user dapat mengakses sembarang file script PHP yang di-hosting. Implikasinya kita perlu meng-require seluruh code pada seluruh file script PHP. Selain tidak scalable, hal ini akan mempolusi code yang akan dikembangkan.

Untuk mengatasi masalah ini, kita akan membuat sebuah script PHP yang menjadi entry point. Seluruh request akan diarahkan ke script entry point ini dan script ini yang akan meng-require script PHP lain sesuai dengan path logic yang dilalui pada pemrosesan request.

User tidak lagi bisa mengakses file script PHP secara random. Code yang kita kembangkan menjadi lebih terstruktur dan rapi.

Cara meng-forward request ke script PHP ini tergantung pada web server yang digunakan.

Untuk contoh code yang akan kita kerjakan, kita akan letakkan source code di /todo/. Untuk web server Apache, kita akan menggunakan RewriteEngine untuk mem-forward request ke satu file script PHP.

.htaccess

RewriteEngine On
RewriteBase /todo/
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /todo/index.php [L]

File .htaccess in diletakkan di directory yang menghosting file script PHP. Web server Apache akan membaca konfigurasi dari .htaccess dan meng-apply rule RewriteEngine untuk meng-forward seluruh request ke script /todo/index.php.

File index.php nantinya akan menerima seluruh request dari user dan memanggil code PHP yang lain sesuai dengan kebutuhan. index.php ini adalah entry point kita.

Contoh, untuk saat sekarang kita cuma tampilkan Hello World.

index.php

<?php

echo "Hello World";

Sekarang, ketika user mengakses http://localhost/todo semua request akan diproses oleh index.php sebagai script entry point.

Berikut ini isi directory di project kita pada seri pertama ini:

.
├── .htaccess
└── index.php
php-web-mvc - This article is part of a series.
Part 1: This Article