Menu
Coddy logo textTech

Kitap ve Kullanıcı Sınıfları

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

challenge icon

Görev

Kolay

Book ve User sınıflarını oluşturarak Kütüphane Yönetim Sistemimizin temelini oluşturalım. Bu temel alan nesneleri, kütüphane işlemlerini yönetmek için birlikte çalışacak.

Kodunuzu üç dosyaya ayıracaksınız:

  • Book.php: Kütüphane kitaplarını takip eden bir Book sınıfı oluşturun. Kitabınız, kurucu destekli özellik tanımlama kullanılarak ayarlanan üç salt okunur özelliğe sahip olmalıdır: isbn, title ve author. true olarak başlayan özel bir $isAvailable özelliği ekleyin. Üç yöntem ekleyin:
    • isAvailable(): bool: kullanılabilirlik durumunu döndürür
    • markAsBorrowed(): void: kullanılabilirliği false olarak ayarlar
    • markAsReturned(): void: kullanılabilirliği true olarak ayarlar
  • User.php: Book dosyasını dahil edin ve kütüphane üyelerini temsil eden bir User sınıfı oluşturun. Kullanıcınız, kurucu destekli özellik tanımlama aracılığıyla iki salt okunur özelliğe sahip olmalıdır: id (int) ve name (string). Özel bir $borrowedBooks dizisi (başlangıçta boş) ve 3 olarak ayarlanmış bir MAX_BOOKS sabiti ekleyin. Şu yöntemleri ekleyin:
    • getBorrowedBooks(): array: ödünç alınan kitaplar dizisini döndürür
    • canBorrow(): bool: kullanıcı MAX_BOOKS sayısından daha az kitap ödünç almışsa true döndürür
    • addBook(Book $book): void: bir kitabı ödünç alınan kitaplar dizisine ekler
    • removeBook(string $isbn): void: array_filter kullanarak ISBN'ye göre bir kitabı kaldırır
  • main.php: User dosyasını dahil edin ve sınıflarınızı hayata geçirin. Dört girdi alacaksınız: kullanıcı kimliği, kullanıcı adı, kitap ISBN'si ve kitap başlığı (yazar "Unknown" olacaktır).

    Sağlanan değerlerle bir User ve bir Book oluşturun. Öncelikle kullanıcının kitap ödünç alıp alamayacağını yazdırın, ardından kullanıcının kitabı ödünç almasını sağlayın (kitabı ödünç alınmış olarak işaretleyin ve kullanıcıya ekleyin). Son olarak kitabın kullanılabilirliğini ve ödünç alınan kitapların sayısını yazdırın.

    Çıktı biçimi:

    Can borrow: [yes/no]
    Book available: [yes/no]
    Books borrowed: [count]

Kapsüllemenin dahili durumu nasıl koruduğuna dikkat edin: bir kitabın kullanılabilirliği yalnızca özel yöntemler aracılığıyla değişir ve kullanıcının ödünç aldığı kitaplar kontrollü erişim yoluyla yönetilir. Bu temel, bir sonraki adımda oluşturacağımız ödünç alma sistemini destekleyecek.

Kendin dene

<?php

require_once 'User.php';

// Girdileri oku
$userId = intval(trim(fgets(STDIN)));
$userName = trim(fgets(STDIN));
$bookIsbn = trim(fgets(STDIN));
$bookTitle = trim(fgets(STDIN));
$bookAuthor = "Unknown";

// TODO: Sağlanan id ve name ile bir User nesnesi oluştur

// TODO: Sağlanan isbn, title ve author ile bir Book nesnesi oluştur

// TODO: Kullanıcının başlangıçta ödünç alıp alamayacağını yazdır
// Format: "Can borrow: yes" or "Can borrow: no"

// TODO: Kullanıcının kitabı ödünç almasını sağla:
// - Kitabı ödünç alınmış olarak işaretle
// - Kitabı kullanıcının ödünç aldığı kitaplara ekle

// TODO: Kitabın müsaitliğini yazdır
// Format: "Book available: yes" or "Book available: no"

// TODO: Ödünç alınan kitapların sayısını yazdır
// Format: "Books borrowed: [count]"

?>

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

Kendi başına pratik yap: Online PHP derleyicisi