Genel PHP

PHP ile MVC Model-View-Controller Mimarisi Uygulaması

PHP ile MVC Model-View-Controller Mimarisi Uygulaması

PHP ile MVC (Model-View-Controller) Mimarisi Uygulaması

PHP, web geliştirme dünyasında yaygın olarak kullanılan bir programlama dilidir. Güçlü ve esnek yapısıyla birçok geliştiricinin tercihi olan PHP, MVC (Model-View-Controller) mimarisi ile birleştiğinde oldukça düzenli ve yönetilebilir projeler geliştirilmesine olanak sağlar. Bu makalede, PHP ile MVC mimarisini derinlemesine inceleyecek ve adım adım bir uygulama geliştireceğiz.

MVC Mimarisi Nedir?

Model-View-Controller (MVC), yazılım mimarisini üç ana bileşene ayırır:

Model: Uygulamanın veri katmanını temsil eder. Veritabanı ile iletişim kurar ve veri üzerinde işlem yapar.
View: Kullanıcıya gösterilecek olan arayüzü oluşturur. Modelden gelen veriyi alır ve kullanıcıya sunar.
Controller: Model ve View arasında köprü görevi görür. Kullanıcıdan gelen talepleri alır, işleyip Model’e yönlendirir ve sonuçları View’e aktararak gösterir.

PHP ile MVC Mimarisi Kurulumu

MVC mimarisine geçiş yapmadan önce gerekli olan temel dosya yapısını oluşturalım:

“`
/mvc-app/
/controllers/
/models/
/views/
/core/
.htaccess
index.php
“`

1. Core Yapısı Oluşturma

MVC yapısının çekirdeği olan core klasörünü oluşturalım. Bu klasörde, temel sınıfları ve yöntemleri barındıran core/App.php ve core/Controller.php dosyalarını oluşturacağız.

core/App.php
“`php
class App {
// URL’yi ayrıştırma
protected $controller = ‘home’;
protected $method = ‘index’;
protected $params = [];

public function __construct() {
$url = $this->parseUrl();
// Controller kontrolü ve yükleme
if (file_exists(‘../mvc-app/controllers/’ . $url[0] . ‘.php’)) {
$this->controller = $url[0];
unset($url[0]);
}
require_once ‘../mvc-app/controllers/’ . $this->controller . ‘.php’;
$this->controller = new $this->controller;
// Method kontrolü
if (isset($url[1])) {
if (method_exists($this->controller, $url[1])) {
$this->method = $url[1];
unset($url[1]);
}
}
$this->params = $url ? array_values($url) : [];
call_user_func_array([$this->controller, $this->method], $this->params);
}

public function parseUrl() {
if (isset($_GET[‘url’])) {
return explode(‘/’, filter_var(rtrim($_GET[‘url’], ‘/’), FILTER_SANITIZE_URL));
}
}
}
“`

core/Controller.php
“`php
class Controller {
public function model($model) {
require_once ‘../mvc-app/models/’ . $model . ‘.php’;
return new $model();
}

public function view($view, $data = []) {
require_once ‘../mvc-app/views/’ . $view . ‘.php’;
}
}
“`

2. Controller Yapısı Oluşturma

İhtiyacımız olan ilk controller dosyasını controllers/Home.php içinde oluşturalım.

controllers/Home.php
“`php
class Home extends Controller {
public function index($name = ‘Guest’) {
$user = $this->model(‘User’);
$user->name = $name;

$this->view(‘home/index’, [‘name’ => $user->name]);
}
}
“`

3. Model Yapısı Oluşturma

Uygulamanızın veri işleme bölümünü models/User.php dosyasında oluşturalım.

models/User.php
“`php
class User {
public $name;
}
“`

4. View Yapısı Oluşturma

Kullanıcıya sunulacak görünümü views/home/index.php dosyasında tanımlayalım.

views/home/index.php
“`php

Selam, !

“`

5. Ana Giriş Dosyası

MVC mimarimizi aktif hale getirmek için index.php dosyasını yapılandıralım.

index.php
“`php
require_once ‘core/App.php’;
require_once ‘core/Controller.php’;

$app = new App();
“`

6. .htaccess Dosyası

URL yönlendirmelerini düzgün hale getirmek için .htaccess dosyası ayarlayın.

“`apache
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] “`

Performans İçin Uygun Sunucu Seçimi

Web uygulamalarınızın yüksek performansla çalışabilmesi için uygun bir sunucu hizmeti seçimi büyük önem taşır. Örneğin, cloud sunucu seçenekleri ile, kaynaklarınızı esnek bir şekilde kullanabilir, büyüyen projeleriniz için gerekli altyapıyı sağlayabilirsiniz. Ayrıca, VPS sunucu çözümleri ile uygun maliyetli ve ölçeklenebilir bir yapı kurarak projenizi ekonomik bir şekilde yönetebilirsiniz.

Bu makalenin amacı, PHP ile MVC mimarisi kurarken izlenecek adımları açıklamaktır. Profesyonel bir web geliştirme ortamı oluşturmak için önerilen yöntemleri izleyebilir ve projelerinizde daha temiz, düzenli bir kod yapısı elde edebilirsiniz. Unutmayın, iyi yapılandırılmış bir uygulama hem kullanıcı deneyimini hem de geliştirici verimliliğini mükemmel seviyelere taşır.