[PHP-NOTES] note 130230 added to domdocument.registernodeclass

[email protected] ("[email protected]")
Newsgroups php.notes
Message-ID <[email protected]>
<?php

require_once 'Book.php';

class BookManager {
    private array $books = [];
    private int $nextId = 1;

    public function __construct(array $initialBooks = []) {
        foreach ($initialBooks as $bookData) {
            $book = new Book($bookData['id'], $bookData['title'], $bookData['author'], $bookData['year']);
            $this->books[$book->id] = $book;
            if ($book->id >= $this->nextId) {
                $this->nextId = $book->id + 1;
            }
        }
    }

    public function getAllBooks(): array {
        return array_map(fn($book) => $book->toArray(), $this->books);
    }

    public function getBookById(int $id): ?Book {
        return $this->books[$id] ?? null;
    }

    public function createBook(string $title, string $author, int $year): Book {
        $book = new Book($this->nextId++, $title, $author, $year);
        $this->books[$book->id] = $book;
        return $book;
    }

    public function updateBook(int $id, string $title, string $author, int $year): bool {
        if (!isset($this->books[$id])) {
            return false;
        }
        $this->books[$id] = new Book($id, $title, $author, $year);
        return true;
    }

    public function deleteBook(int $id): bool {
        if (!isset($this->books[$id])) {
            return false;
        }
        unset($this->books[$id]);
        return true;
    }
}
----
Server IP: 45.112.84.4
Probable Submitter: 80.90.5.137 (proxied: 193.170.70.27)
----
Manual Page -- https://php.net/manual/en/domdocument.registernodeclass.php
Edit        -- https://main.php.net/note/edit/130230
Del: integrated  -- https://main.php.net/note/delete/130230/integrated
Del: useless     -- https://main.php.net/note/delete/130230/useless
Del: bad code    -- https://main.php.net/note/delete/130230/bad+code
Del: spam        -- https://main.php.net/note/delete/130230/spam
Del: non-english -- https://main.php.net/note/delete/130230/non-english
Del: in docs     -- https://main.php.net/note/delete/130230/in+docs
Del: other reasons-- https://main.php.net/note/delete/130230
Reject      -- https://main.php.net/note/reject/130230
Search      -- https://main.php.net/manage/user-notes.php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.