Menu
Coddy logo textTech

Tekrar - Düzenli Proje

Coddy'nin PHP Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 14 / 91.

challenge icon

Görev

Kolay

Uygun namespace organizasyonuyla eksiksiz bir blog uygulaması oluşturalım ve namespace'ler, use anahtar sözcüğü ve PSR-4 otomatik yükleme hakkında öğrendiğiniz her şeyi bir araya getirelim.

Gerçek PHP uygulamalarının kodlarını nasıl organize ettiğini gösteren, beş dosyadan oluşan iyi yapılandırılmış bir proje oluşturacaksınız:

  • src/Models/Author.php: Blog\Models namespace'inde bir Author sınıfı tanımlayın. Bu sınıfta bir public $name özelliği, adı kabul edip atayan bir yapıcı ve "Author: [name]" değerini döndüren bir getBio() metodu bulunmalıdır.
  • src/Models/Post.php: Blog\Models namespace'inde bir Post sınıfı tanımlayın. Bu sınıfta public $title ve public $author özellikleri bulunmalıdır (burada author bir Author nesnesidir). Yapıcı, bir başlık ve bir Author nesnesi kabul ederek her ikisini de ayarlamalıdır. "[title] by [author name]" değerini döndüren bir getSummary() metodu ekleyin.
  • src/Services/Publisher.php: Blog\Services namespace'inde bir Publisher sınıfı tanımlayın. Bu sınıfta bir Post nesnesi kabul eden ve "Published: [post title]" değerini döndüren bir publish(Post $post) metodu bulunmalıdır. Farklı bir namespace'te bulunduğu için use anahtar sözcüğünü kullanarak Post sınıfını içe aktarmanız gerekir.
  • vendor/autoload.php: Blog\ namespace önekini src/ dizinine eşleyen, spl_autoload_register kullanarak bir PSR-4 otomatik yükleyici oluşturun. Bu tek otomatik yükleyici, tüm sınıflarınızın otomatik olarak yüklenmesini sağlar.
  • index.php: Giriş noktanız. Otomatik yükleyiciyi dahil edin, ardından Blog\Models\Author, Blog\Models\Post ve Blog\Services\Publisher sınıflarını içe aktarmak için use anahtar sözcüğünü kullanın. "Jane Smith" adlı bir Author, bu yazarı kullanarak "Getting Started with PHP" başlığına sahip bir Post ve bir Publisher oluşturun. Yazarın biyografisini, gönderinin özetini ve gönderiyi yayımlama sonucunu yazdırın (her biri kendi satırında).

Publisher servisinin Post modeline nasıl bağımlı olduğuna dikkat edin. Bu, farklı namespace'lerdeki sınıfların ihtiyaç duydukları öğeleri use ifadeleriyle içe aktararak birlikte nasıl çalışabileceklerini gösterir.

Kendin dene

<?php
// Autoloader'ı gerektir
require_once 'vendor/autoload.php';

// TODO: Gerekli sınıfları 'use' ifadeleri kullanarak içe aktar
// - Blog\Models\Author
// - Blog\Models\Post
// - Blog\Services\Publisher

// TODO: "Jane Smith" adında bir Author oluştur

// TODO: Create a Post with title "Getting Started with PHP" using that author

// TODO: Bir Publisher oluştur

// TODO: Yazarın biyografisini yazdır

// TODO: Gönderinin özetini yazdır

// TODO: Gönderiyi yayınlamanın sonucunu yazdır
?>

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online PHP derleyicisi