PHP ile MVC Tasarımı: Başlangıç Rehberi
PHP, web geliştirme dünyasında popüler bir sunucu tarafı betik dilidir. Geliştiricilerin isteğe bağlı dinamik içerikler oluşturmasına olanak tanır. Ancak, kodların karmaşıklığı arttıkça, bu kodları yönetmek zorlaşır ve bu da bakımı zor bir projeye yol açabilir. İşte bu noktada MVC (Model-View-Controller) tasarımı devreye girer. Bu makalede, PHP ile MVC tasarımının neden önemli olduğunu ve nasıl uygulandığını adım adım inceleyeceğiz.
MVC Nedir?
MVC, yazılım mühendisliğinde yaygın bir mimari desendir. Üç ana bileşenden oluşur: Model, Görünüm ve Kontrolcü.
– Model: Verilerin ve iş mantığının bulunduğu katmandır. Veri tabanı işlemleri gibi uygulamada kullanılacak verilerin yönetimini gerçekleştirir.
– Görünüm (View): Kullanıcıya sunulan arayüzdür. Model tarafından sağlanan verileri kullanıcıya gösterir.
– Kontrolcü (Controller): Model ve Görünüm arasında köprü görevi görür. Kullanıcının girdilerine uygun olarak Model’i günceller ve gerektiğinde güncel verileri Görünüm’e iletir.
Bu yapı sayesinde, kodun bölümlere ayrılarak daha organize bir hale gelmesi ve bakımının kolaylaşması sağlanır.
PHP ile MVC Nasıl Uygulanır?
1. Proje Dizini Yapısı Oluşturma
Öncelikle, MVC yapısını destekleyen bir proje dizini oluşturalım:
“`
/my_mvc_app
/app
/controllers
/models
/views
/public
index.php
.htaccess
“`
– app/
: MVC bileşenlerinin bulunduğu dizindir. Kontrolcüler, modeller ve görünümler burada tutulur.
– public/
: Kullanıcılara doğrudan erişime açık olan dizindir. index.php
dosyası burada yer alır.
– .htaccess
: Apache yapılandırması dosyasıdır. URL yönlendirmeleri ve diğer yapılandırmalar için kullanılır.
2. Model Katmanını Oluşturma
Model, veri tabanı ile etkileşimi yönetir. Örnek olarak bir User
model dosyası oluşturabiliriz.
“`php
// app/models/User.php
class User {
private $db;
public function __construct() {
$this->db = new Database();
}
public function getUserById($id) {
return $this->db->query(“SELECT * FROM users WHERE id = ?”, [$id])->fetch();
}
}
“`
3. Kontrolcü Katmanını Oluşturma
Kontrolcüler, kullanıcı taleplerini işler. Örneğin:
“`php
// app/controllers/UserController.php
class UserController {
protected $userModel;
public function __construct() {
$this->userModel = new User();
}
public function show($id) {
$user = $this->userModel->getUserById($id);
if ($user) {
require_once ‘../app/views/user/show.php’;
} else {
echo “User not found!”;
}
}
}
“`
4. Görünüm Katmanını Oluşturma
Görünüm, kullanıcıya veri sunan katmandır. Örneğin:
“`php
Email:
“`
5. Ön Yüz Denetim (Routing)
.htaccess
dosyasını kullanarak yönlendirme kuralı ayarlayın:
“`
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
“`
6. Başlangıç Dosyasını Ayarlama
index.php
dosyası, tüm istekleri karşılayarak uygun kontrolcüye yönlendirir:
“`php
// public/index.php
require_once ‘../app/init.php’;
$url = $_GET[‘url’] ?? ‘home/index’;
$url = explode(‘/’, $url);
$controllerName = ucfirst($url[0]) . ‘Controller’;
$methodName = $url[1] ?? ‘index’;
$id = $url[2] ?? null;
$controller = new $controllerName;
$controller->$methodName($id);
“`
Uygulama Sunucusu Seçenekleri
Bir MVC yapısını başarıyla uyguladığınızda, çalıştırmak için uygun bir sunucuya ihtiyaç duyarsınız. İster sanal sunucu, bulut sunucu, ister fiziksel sunucu kullanmayı tercih edin, projenize uygun çözümü bulabilirsiniz. PHP uygulamaları için optimize edilmiş ortamlar seçerek, performansı artırabilir ve kullanıcı deneyimini iyileştirebilirsiniz.
MVC mimarisi, projelerinizi düzenlemenin ve bakımını kolaylaştırmanın harika bir yoludur. Bu yapı, kodunuzu daha modüler hale getirerek, uzun vadede hem geliştirme sürecini hızlandırır hem de hata ayıklamayı kolaylaştırır. Kendi PHP projelerinizde MVC kullanarak, kodunuzun temizliğinden ve sadeliğinden emin olabilirsiniz.