나는 책을 위해 아래 수업을 가지고있다. 현재 ID로 데이터베이스에서 책을 검색하는 한 가지 방법이 있습니다. 분명히 다른 방법은 개체 목록을 얻는 방법
class Book {
Public $id
public $name;
public $price;
public $isbn;
public function getBook($id) {
$sql = 'SELECT id, name, price, isbn FROM book WHERE id = ' . (int) $id;
$row = /* DB functions here to get a matching row */
$this->name = $row['name'];
$this->price = $row['price'];
$this->isbn = $row['isbn'];
return TRUE;
}
}
여기 내 질문 등, 책을 삭제 새로운 책을 저장하기 위해 추가 할 수 있고, 뭔가 내가 하단에 도착 본 적이 없습니다. 모든 책 또는 문자 "A"로 시작하는 모든 책의 목록을 얻으려면 어떻게합니까?
명확히하기 위해 데이터베이스를 쿼리하고 결과 집합을 반복하는 방법을 알고 있습니다. 각 결과에서 하나의 책 인스턴스를 만들기 위해 생성자를 위 클래스에 추가 할 수 있습니다. 하지만 내 "searchBooks"방법은 어디로 가야합니까? 그것은 Book 클래스에 속해야합니까? 또는 검색 방법이 아마도 BookShop이라는 완전히 다른 클래스에 속해야합니까?
나는 이것을 올바르게 설명했으면한다. 개체가 단 하나의 기본으로 다루어지는 예가 많이 있지만 개체 목록이나 컬렉션을 어디에서 어떻게 만들어야하는지 짐작할 수 없습니다.
귀하의 예는 기본적으로 단일 책임 원칙을 위반합니다. 요약하면 : 모델 (책)과 데이터베이스에 액세스하는 클래스 (BookRepository)에서 책 제목 등을 쿼리하는 함수를 사용할 수 있습니다. – nietonfir