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




<?= $data['title']; ?>

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.