PHP 8'de partials ve views, özellikle MVC (Model-View-Controller) yapısında sıkça kullanılan kavramlardır. Web uygulamalarında sayfaların tekrar eden kısımlarını yeniden yazmamak ve kodu modüler hale getirmek için kullanılırlar. Partials, genellikle bir view'in (görünüm) parçasıdır ve daha küçük, tekrar kullanılabilir HTML/PHP kod blokları olarak tanımlanabilir.
Bu yapı, projenin bakımını kolaylaştırır ve sayfa düzenlemelerini merkezi bir noktada yapmanıza olanak tanır. PHP 8'de bu yapı, hem temel PHP ile hem de Twig, Blade gibi şablon motorlarıyla yaygın olarak kullanılır.
1. Partials Nedir?
Partials, sayfalar arasında tekrar eden HTML veya PHP kodlarının daha küçük parçalara bölünerek yeniden kullanılmasını sağlayan yapılardır. Örneğin, bir web sitesinin her sayfasında tekrar eden bir başlık (header) veya alt bilgi (footer) genellikle partial olarak tanımlanır ve her sayfada kullanılır.
Örnek: Partials Kullanımı (Header ve Footer)
Bu yapıyı kullanarak başlık ve alt bilgi gibi bölümleri ayırabilir ve her sayfada bu bölümleri include ederek kullanabilirsiniz.
header.php:
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php echo $sayfaBasligi; ?></title>
</head>
<body>
<header>
<h1>Web Sitem</h1>
<nav>
<ul>
<li><a target="_blank" href="/">Anasayfa</a></li>
<li><a target="_blank" href="/hakkimizda">Hakkımızda</a></li>
<li><a target="_blank" href="/iletisim">İletişim</a></li>
</ul>
</nav>
</header>
footer.php:
<footer>
<p>© 2024 Tüm Hakları Saklıdır.</p>
</footer>
</body>
</html>
anasayfa.php:
<?php
$sayfaBasligi = "Anasayfa";
include 'header.php';
?>
<main>
<h2>Hoşgeldiniz!</h2>
<p>Bu, anasayfanın içeriğidir.</p>
</main>
<?php include 'footer.php'; ?>
Bu yapıda header.php
ve footer.php
dosyaları ayrı ayrı tanımlandı ve bu dosyalar anasayfa.php
'de include
edilerek sayfaya dahil edildi. Bu sayede her sayfada aynı başlık ve alt bilgi kodunu tekrar yazmanıza gerek kalmaz.
2. Partials Kullanımının Avantajları
- Tekrar Eden Kodları Merkezi Hale Getirme: Header, footer, navigasyon gibi her sayfada aynı olan kodları bir kez yazar ve her sayfada kullanabilirsiniz.
- Bakımı Kolaylaştırır: Tek bir dosyada değişiklik yaparak tüm sayfalara bu değişiklikleri uygulayabilirsiniz.
- Kodun Daha Temiz ve Modüler Olmasını Sağlar: Sayfalar arasındaki kod yapısı daha düzenli olur, bu da kodun okunabilirliğini artırır.
3. PHP'de Partials Kullanımı
PHP'de partials kullanmanın en temel yolu include
veya require
fonksiyonlarıdır:
- include: Dosyayı çağırır ve çalıştırır. Eğer dosya bulunamazsa uyarı verir, ancak betiğin çalışması devam eder.
- require: Dosyayı çağırır ve çalıştırır. Eğer dosya bulunamazsa betik hata verir ve çalışmayı durdurur.
Örnek: Include ile Partials Kullanımı
<?php include 'header.php'; ?>
<main>
<h2>İçerik Bölümü</h2>
<p>Bu sayfanın içeriği burada olacak.</p>
</main>
<?php include 'footer.php'; ?>
Bu örnekte, sayfa içerisine header.php
ve footer.php
dosyaları eklenir. Bu sayede her sayfada başlık ve alt bilgi aynı şekilde tekrar kullanılabilir.
4. Blade ve Twig ile Partials (Laravel, Symfony)
Laravel ve Symfony gibi framework'lerde partials ve views kavramları daha yapılandırılmış bir şekilde kullanılır. Blade ve Twig gibi şablon motorları, partials kullanımını daha da kolaylaştırır.
Blade ile Partials (Laravel)
Laravel'de @include
ifadesi, partials kullanmanın en yaygın yoludur. Partials'lar, Blade şablonları içinde çağrılarak HTML/PHP parçalarını tekrar kullanmanızı sağlar.
header.blade.php:
<header> <h1>Web Sitem</h1> <nav> <ul> <li><a target="_blank" href="/">Anasayfa</a></li> <li><a target="_blank" href="/hakkimizda">Hakkımızda</a></li> <li><a target="_blank" href="/iletisim">İletişim</a></li> </ul> </nav> </header>
footer.blade.php:
<footer> <p>© 2024 Tüm Hakları Saklıdır.</p> </footer> </body> </html>
anasayfa.blade.php:
@extends('layouts.master') @section('content') @include('partials.header') <main> <h2>Hoşgeldiniz!</h2> <p>Bu, anasayfanın içeriğidir.</p> </main> @include('partials.footer') @endsection
Bu örnekte @include
kullanılarak header.blade.php
ve footer.blade.php
dosyaları, anasayfa.blade.php
dosyası içinde çağrılır. Blade motoru bu dosyaları birleştirerek tam bir HTML sayfası üretir.
Twig ile Partials (Symfony)
Twig şablon motoru da partials kullanımını destekler. Twig'de partials dosyaları genellikle {% include %}
ifadesiyle çağrılır.
header.twig:
<header> <h1>Web Sitem</h1> <nav> <ul> <li><a target="_blank" href="/">Anasayfa</a></li> <li><a target="_blank" href="/hakkimizda">Hakkımızda</a></li> <li><a target="_blank" href="/iletisim">İletişim</a></li> </ul> </nav> </header>
footer.twig:
<footer> <p>© 2024 Tüm Hakları Saklıdır.</p> </footer> </body> </html>
anasayfa.twig:
{% include 'header.twig' %} <main> <h2>Hoşgeldiniz!</h2> <p>Bu, anasayfa içeriğidir.</p> </main> {% include 'footer.twig' %}
Twig şablonlarında {% include %}
ile başka bir şablon dosyası sayfa içine dahil edilir. Böylece tekrar eden içerikler tek bir dosyada toplanır ve bakım kolaylaşır.
5. Partials ve Section Kullanımı
Laravel'in Blade motoru ve Twig, partials ile birlikte sections (bölümler) kullanarak sayfanın farklı bölümlerini düzenlemenize de olanak tanır.
Blade'de Section Kullanımı:
@extends('layouts.master') @section('content') <h2>Bu sayfanın içeriği</h2> @endsection
Twig'de Block Kullanımı:
{% extends 'base.twig' %} {% block content %} <h2>Bu sayfanın içeriği</h2> {% endblock %}
Partials ve Sections yapısı, farklı sayfalara özel içerik eklerken tekrar eden yapıları merkezi hale getirir.
Sonuç
PHP 8'de partials ve views kullanımı, web uygulamalarında kod tekrarını azaltmak, projeyi modüler hale getirmek ve sayfa düzenini daha esnek kılmak için etkili bir yöntemdir. Hem temel PHP ile hem de Twig veya Blade gibi şablon motorlarıyla kullanılabilirler. Bu yöntem, projenin sürdürülebilirliğini artırır ve sayfalar arasında ortak yapıları kolayca yönetmenizi sağlar.