Я относительно новичок в ООП в PHP, и я не уверен, что то, что я пытаюсь сделать, возможно или рекомендовано. Во всяком случае, не могу понять. Буду признателен за любые указатели на учебные пособия или документы, которые могут помочь - я не жду здесь полного ответа.
У меня есть система, в которой у каждого пользователя есть несколько «Библиотек». Каждая библиотека содержит ряд «Элементов».
БД настраивается следующим образом:
user_libraries
- id (unique)
- user_id (identifies user)
- name (just a string)
elements
- id (unique)
- content (a string)
library_elements
- id (unique)
- library_id
- element_id
где library_id
- это идентификатор из user_libraries
, а element_id
- это идентификатор из элементов
].
Я хочу иметь доступ к определенной пользовательской библиотеке и ее элементам.
Я установил класс библиотеки и могу использовать его для получения списка библиотек (или подсписка).
Я делаю это так:
$mylibraryset = new LibrarySet();
$mylibraryset->getMyLibraries();
что дает (когда я использую print_r):
LibrarySetObject (
[user_id] => 105
[data_array] => Array (
[0] => Array (
[id] => 1
[user_id] => 105
[type] => 1
[name] => My Text Library
)
[1] => Array (
[id] => 2
[user_id] => 105
[type] => 2
[name] => Quotes
)
)
)
Теперь я бы хотел иметь возможность для каждой из этих библиотек (элементов в data_array), чтобы получить все элементы.
Лучшая идея, которая у меня была до сих пор, - это сделать что-то вроде:
foreach($mylibrary->data_array as $library) {
$sublibrary = new Library();
$sublibrary -> getAllElements();
}
где Sublibrary - это еще один класс, который имеет функцию getAllElements. Однако я не могу заставить его работать, и я не уверен, что нахожусь на правильном пути ...
Есть ли способ, которым я смогу сделать что-то вроде этого:
$mylibrary->sublibraries[0]->element[0]
получить определенный элемент?
Как я уже сказал, я не жду здесь полного объяснения - просто указатели, чтобы я начал.