Genel PHP

PHP ile MVC Tasarım Deseni Uygulama Rehberi

PHP ile MVC Tasarım Deseni Uygulama Rehberi

PHP ile MVC Tasarım Deseni Uygulama Rehberi

PHP, günümüzde en çok kullanılan dinamik web geliştirme dillerinden biridir. Hem öğrenme kolaylığı hem de geniş çaplı topluluğu sayesinde birçok geliştirici tarafından tercih edilir. Ancak, karmaşık projeler geliştirirken kodun okunabilirliğini ve sürdürülebilirliğini sağlamak önemlidir. İşte burada MVC (Model-View-Controller) tasarım deseni devreye girer. Bu makalede, PHP ile MVC mimarisini kullanarak nasıl daha modüler ve yönetilebilir projeler geliştirebileceğinizi adım adım inceleyeceğiz.

MVC Nedir?

MVC, Model-View-Controller kelimelerinin kısaltmasıdır. Yazılımcılar arasında çok popüler bir tasarım desenidir ve uygulamanın bölümlere ayrılmasını sağlar. İşlevleri kısaca şöyle açıklayabiliriz:

Model: Uygulamanın veri mantığını temsil eder. Veritabanı işlemlerinin yönetildiği yerdir.
View: Kullanıcıya sunulan arayüzdür. Görsellik ve şablonlar burada ele alınır.
Controller: Model ve View arasında köprü görevi görür. İstemci isteklerini alır ve uygun Model fonksiyonlarını çağırarak View’da sonuçları sunar.

MVC Mimarisi ile PHP Projesi Oluşturma

1. Proje Yapısını Kurma

İlk adımda, projenizin temellerini oluştur olan klasör yapısını belirlemeniz gerekiyor:

“`
my_mvc_project/
'��'�''�' index.php
'��'�''�' app/
'�� '��'�''�' Controllers/
'�� '��'�''�' Models/
'�� '��'�''�' Views/
'��'�''�' core/
'��'�''�' public/
“`

index.php: Projenizin giriş noktası.
Controllers, Models, Views: MVC’nin ana klasörleri.
core/: Çekirdek dosyaları ve yardımcı sınıfları içeren klasör.
public/: CSS, JavaScript gibi kaynak dosyaların yer aldığı klasör.

2. Router Yapısı Oluşturma

Projenizin genel yapısının ardından, URL’leri belirli Controller'''lara yönlendirecek bir Router oluşturalım.

“`php
// core/Router.php
class Router {
protected $routes = [];

public function add($route, $callback) {
$this->routes[$route] = $callback;
}

public function dispatch($url) {
if (array_key_exists($url, $this->routes)) {
call_user_func($this->routes[$url]);
} else {
echo “404 – Not Found”;
}
}
}
“`

3. Controller Yazma

Örnek bir Controller sınıfını görüşelim. Bu, istemciden gelen istekleri Model’e yönlendirecek ve geri dönen verileri View'''a aktardığında yerini alır.

“`php
// app/Controllers/HomeController.php
class HomeController {
public function index() {
// Modelden veri çekme işlemi yapılır
$data = array(‘title’ => ‘Ana Sayfa’, ‘content’ => ‘MVC hakkında bilgiler…’);

// Görünümü yükleme
require_once ‘../app/Views/home.php’;
}
}
“`

4. Model Yapma

Model, veritabanı ile etkileşimde bulunarak veriyi işleyen kısımdır.

“`php
// app/Models/User.php
class User {
private $db;

public function __construct() {
$this->db = new Database();
}

public function getUserById($id) {
$this->db->query(“SELECT * FROM users WHERE id = :id”);
$this->db->bind(‘:id’, $id);
return $this->db->single();
}
}
“`

5. View Şablonu Oluşturma

Görünümler, kullanıcıya sunulacak olan çıktıların hazırlandığı yerdir.

“`php

Hoşgeldiniz!

 

“`

6. Projeyi Çalıştırma

Son olarak, uygulamanızı başlatmak için projenizin ana dizininde yer alan index.php yoluyla giriş yapın.

“`php
// index.php
require_once ‘core/Router.php’;
require_once ‘app/Controllers/HomeController.php’;

$router = new Router();
$router->add(”, [new HomeController(), ‘index’]);
$router->dispatch(”);
“`

Sonuç

Artık PHP’de MVC mimarisi kullanarak basit bir web uygulaması oluşturmanın temel adımlarını öğrendiniz. Bu yapı, uygulamalarınızı modüler hale getirir, geliştirme sürecini hızlandırır ve projelerinizi daha yönetilebilir kılar. MVC mimarisi ile geliştirilen projeler, sanal sunucu veya bulut sunucu türü barındırma çözümleri ile çok daha verimli çalışabilir. İlerleyen projelerinizde bu yapıyı özelleştirerek daha karmaşık ve dinamik çözümler geliştirebilirsiniz.