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!
= $data['content']; ?>
“`
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.