MVC Mimarisi Nedir?
MVC, yazılım geliştirmede kullanılan bir mimari desenidir. Uygulamayı üç ana bileşene ayırır: Model, View (Görüntü) ve Controller (Denetleyici). Model, verilerin yönetilmesi ve işlenmesi ile ilgilidir; View, kullanıcı arayüzünü temsil ederken, Controller, Model ile View arasında bir köprü görevi görür. Bu yapı, uygulamanın çeşitli bileşenlerinin bağımsız olarak geliştirilmesine, test edilmesine ve bakımının yapılmasına olanak tanır.
PHP 7.4 Özellikleri
PHP 7.4, performans iyileştirmeleri ve yeni özellikler sunarak geliştiricilere daha iyi bir deneyim sunar. Geliştiricilerin kod yazarken daha az hata yapmalarına yardımcı olmak amacıyla bazı modern programlama pratiklerini destekler. Özellikle, “typed properties” (tipleme özellikleri), “arrow functions” (ok işlevleri), “preloading” (ön yükleme) ve “opcache” gibi yeni özellikler ile birlikte MVC mimarisinin uygulanması daha verimli hale gelir.
MVC Yapısının Oluşturulması
MVC mimarisi ile bir PHP uygulaması oluşturulurken aşağıdaki adımlar izlenir:
1. Klasör Yapısı: MVC mimarisi için uygun bir klasör yapısı oluşturulmalıdır. Önerilen bir yapı şu şekildedir:
“`
/app
/controllers
/models
/views
/public
/config
“`
2. Model: Model katmanı, veritabanı ile iletişim kurar ve veri işleme ile sorumludur. Bir model sınıfı tanımlamak için, örneğin bir `User` modeli oluşturulabilir:
“`php
// app/models/User.php
class User {
private $db;
public function __construct() {
$this->db = new Database(); // Veritabanı bağlantısı
}
public function getUsers() {
return $this->db->query(“SELECT FROM users”);
}
}
“`
3. View: View katmanı, kullanıcılara gösterilecek arayüzü oluşturur. Genellikle HTML ve PHP kodu içerir. Örneğin, bir kullanıcı listesini gösterecek bir view oluşturulabilir:
“`php
// app/views/user_list.php
foreach ($users as $user) {
echo “
{$user[‘name’]}
“;
}
“`
4. Controller: Controller katmanı, kullanıcının gerçekleştirdiği işlemleri yönetir. İlgili modeli çağırır ve uygun view dosyasını yükler. Aşağıdaki gibi bir controller sınıfı oluşturulabilir:
“`php
// app/controllers/UserController.php
class UserController {
private $userModel;
public function __construct() {
$this->userModel = new User();
}
public function list() {
$users = $this->userModel->getUsers();
include ‘app/views/user_list.php’;
}
}
“`
Uygulamanın Çalıştırılması
Bir MVC uygulamasının çalıştırılması için genellikle bir `index.php` dosyası kullanılır. Bu dosya, uygulamanın giriş noktasıdır ve gelen istekleri yönlendirmekten sorumludur. Örneğin, aşağıdaki gibi bir yapı oluşturulabilir:
“`php
// public/index.php
require_once ‘../app/controllers/UserController.php’;
$controller = new UserController();
$controller->list();
“`
Route Yönetimi
MVC mimarisi gereği, farklı URL’lere bağlı olarak farklı controller’ların çağrılması gerekir. Route yönetimi, gelen isteği analiz ederek doğru controller’ı çağırarak yapılır. Basit bir route yönetim sistemi aşağıdaki gibi oluşturulabilir:
“`php
// public/index.php
$request = $_SERVER[‘REQUEST_URI’];
if ($request === ‘/users’) {
$controller = new UserController();
$controller->list();
}
“`
Veritabanı Bağlantısı
Model katmanı, veritabanına erişim için bir bağlantı sınıfı gerektirir. Bu sınıf, veritabanı ile bağlantı kurulmasını ve sorguların gerçekleştirilmesini sağlar. Aşağıda basit bir veritabanı bağlantı sınıfı örneği yer almaktadır:
“`php
// app/Database.php
class Database {
private $host = ‘localhost’;
private $db_name = ‘test_db’;
private $username = ‘root’;
private $password = ”;
private $conn;
public function __construct() {
$this->connect();
}
public function connect() {
$this->conn = null;
try {
$this->conn = new PDO(“mysql:host={$this->host};dbname={$this->db_name}”, $this->username, $this->password);
} catch (PDOException $e) {
echo “Connection error: ” . $e->getMessage();
}
return $this->conn;
}
public function query($sql) {
$stmt = $this->conn->prepare($sql);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}
“`
Sonuç
PHP 7.4 ile MVC mimarisi, modern web uygulamalarının geliştirilmesinde etkili bir yöntemdir. Model, View ve Controller bileşenlerinin ayrı ayrı yönetilmesi, uygulama geliştirmenin yanı sıra bakımını da kolaylaştırır. MVC yapısının uygulanması, sürdürülebilir bir yazılım geliştirme süreci için istenilen esnekliği sağlar. PHP’nin sunduğu özellikler, bu mimari ile birlikte daha verimli ve etkin bir geliştirme süreci elde etmeye yardımcı olur.