Menu
Coddy logo textTech

Özet - 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

Ad alanları, use anahtar kelimesi ve PSR-4 otomatik yükleme (autoloading) hakkında öğrendiğiniz her şeyi bir araya getirerek, uygun ad alanı organizasyonuna sahip eksiksiz bir blog uygulaması oluşturalım.

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.phpBlog\Models ad alanında bir Author sınıfı tanımlayın. Bu sınıfın public $name özelliği, ismi kabul eden ve atayan bir yapıcı metodu (constructor) ve "Author: " . $this->name döndüren bir getBio() metodu olmalıdır.
  • src/Models/Post.phpBlog\Models ad alanında bir Post sınıfı tanımlayın. Bu sınıfın public $title ve public $author özellikleri (burada author bir Author nesnesidir) olmalıdır. Yapıcı metot bir başlık ve bir Author nesnesi kabul ederek her ikisini de atar. "[title] by [author name]" döndüren bir getSummary() metodu ekleyin.
  • src/Services/Publisher.phpBlog\Services ad alanında bir Publisher sınıfı tanımlayın. Bir Post nesnesi kabul eden ve "Published: " . $post->title döndüren bir publish(Post $post) metoduna sahip olmalıdır. Post sınıfı farklı bir ad alanında olduğu için use anahtar kelimesini kullanarak onu içe aktarmanız gerekecektir.
  • vendor/autoload.phpBlog\ ad alanı önekini src/ dizinine eşleyen, spl_autoload_register kullanan 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 (require), ardından Blog\Models\Author, Blog\Models\Post ve Blog\Services\Publisher sınıflarını içe aktarmak için use anahtar kelimesini kullanın. "Jane Smith" adında bir Author, bu yazarı kullanarak "Getting Started with PHP" başlıklı bir Post ve bir Publisher oluşturun. Yazarın biyografisini, yazının özetini ve yazıyı yayınlamanın sonucunu (her biri kendi satırında olacak şekilde) yazdırın.

Publisher servisinin Post modeline nasıl bağımlı olduğuna dikkat edin — bu, farklı ad alanlarındaki sınıfların use ifadeleriyle ihtiyaç duyduklarını içe aktararak nasıl birlikte çalışabileceğini gösterir.

Kendin dene

<?php
// Otomatik yükleyiciyi dahil et
require_once 'vendor/autoload.php';

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

// TODO: "Jane Smith" adında bir Yazar (Author) oluşturun

// TODO: Bu yazarı kullanarak "Getting Started with PHP" başlıklı bir Gönderi (Post) oluşturun

// TODO: Bir Yayıncı (Publisher) oluşturun

// TODO: Yazarın biyografisini yazdırın

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

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

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