Proje Genel Bakışı
Coddy'nin PHP Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 82 / 91.
Görev
KolayKütüphane Yönetim Sistemi projesine, temel yapıyı kurarak başlayalım: bu bölüm boyunca temel alan nesnesi olarak kullanılacak basit bir Book sınıfı.
Kodunuzu iki dosya arasında düzenleyeceksiniz:
Book.php: Bir kütüphane kitabını temsil eden birBooksınıfı oluşturun. Kitabınızın üç özelliği olmalı:isbn(string),title(string) veauthor(string). Kodunuzu temiz tutmak için yapıcı parametre tanıtımını kullanın. Kitabın ayrıntılarını şu biçimde biçimlendirilmiş bir dize olarak döndürengetInfo()adlı bir metot ekleyin:"[title] by [author] (ISBN: [isbn])"main.php: Book dosyasını dahil edin ve sınıfınızı hayata geçirin. Bir kitabın ISBN'si, başlığı ve yazarı olmak üzere üç girdi alacaksınız. Bu değerlerle birBookörneği oluşturun vegetInfo()çağrısının sonucunu yazdırın.
Bu, kütüphane sisteminizin ilk yapı taşıdır. Gelecek derslerde bu temeli; kullanıcılar, ödünç alma işlevi ve yönetim özellikleri ekleyerek genişleteceksiniz: bunların tümü uyumlu bir uygulama olarak birlikte çalışacak.
Kendin dene
<?php
require_once 'Book.php';
// Girdiyi oku
$isbn = trim(fgets(STDIN));
$title = trim(fgets(STDIN));
$author = trim(fgets(STDIN));
// TODO: Giriş değerleriyle bir Book örneği oluştur
// TODO: getInfo() çağrısının sonucunu yazdır
?>Nesne Yönelimli Programlama bölümündeki tüm dersler
1OOP Temelleri
Harici DosyalarOOP'ye GirişSınıflar ve Nesneler$this Anahtar SözcüğüMetotlarÖzelliklerYapıcı (__construct)Yıkıcı (__destruct)Tekrar - Basit Hesap Makinesi4Kalıtım
Temel Kalıtımparent:: Anahtar SözcüğüMetot Geçersiz Kılmafinal Anahtar SözcüğüSoyut SınıflarTekrar - Çalışan Hiyerarşisi7Kapsülleme
Public, Protected, PrivateErişim Belirleyicileri DerinlemesineGetter ve Setter'larBilgi GizlemeYapıcı Özellik Terfisi (8.0)Tekrar - Öğrenci Kayıt Sistemi10İleri Düzey OOP Kavramları
Composition ve KalıtımBağımlılık EnjeksiyonuAnonim SınıflarEnum'lar (PHP 8.1)Fiber'lar (PHP 8.1)Nesne Klonlamaya Derinlemesine BakışÜreteçler ve Yineleyiciler13Tasarım Kalıpları Bölüm 2
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıBileşik KalıpDepo Kalıbı2Namespace’ler ve Autoloading
Namespace’lere Girişuse Anahtar SözcüğüPSR-4 Autoloading StandardıComposer AutoloaderTekrar - Düzenli Proje5Arayüzler ve Sözleşmeler
Arayüzlere GirişArayüzleri UygulamaBirden Çok Arayüz UygulamaArayüz ve Soyut Sınıf KarşılaştırmasıArayüzlerle Tür İpuçlarıTekrar - Şekil Hesaplayıcı8Sihirli Metotlar
Sihirli Metotlara Giriş__toString ve __debugInfo__get, __set, __isset, __unset__call ve __callStatic__clone ve Nesne Klonlama__serialize ve __unserializeTekrar - Özel Koleksiyon11Tür Sistemi ve Hata Yönetimi
Tür BildirimleriNullable TürlerBirleşim ve Kesişim Türleriİstisna SınıflarıÖzel İstisna HiyerarşisiTry, Catch, FinallyTekrar - Form Doğrulayıcı14Proje: Kütüphane Yönetimi
Proje Genel BakışıKitap ve Kullanıcı Sınıfları3Sınıf Özellikleri
Örnek ve Statik ÖzelliklerSınıflarda SabitlerStatik Metotlar ve ÖzelliklerPrivate ve Protected ÖzelliklerSalt Okunur Özellikler (PHP 8.1)Tekrar - Banka Hesabı Yöneticisi6Çok Biçimlilik
Metot Geçersiz Kılmayı Yeniden Ele AlmaArayüzler Yoluyla Çok BiçimlilikTür İpuçları ve Birleşim TürleriGeç Bağlanan Statik ÇağrılarÖzet - Ödeme İşlemcisi9Trait'ler
Trait'lere GirişBirden Çok Trait KullanımıTrait Çakışmalarını ÇözümlemeTrait'lerde Soyut MetotlarTrait'ler ve Kalıtım Karşılaştırması12Tasarım Desenleri 1. Bölüm
Tasarım Desenlerine GirişSingleton DeseniFactory DeseniObserver DeseniStrategy DeseniKendi başına pratik yap: Online PHP derleyicisi