Genel PHP

PHP ile MVC Tasarımı: Başlangıç Rehberi

PHP ile MVC Tasarımı: Başlangıç Rehberi

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.