Как применить функцию к списку файлов в ООП
Изучаю ООП и затормозил на следующем моменте.
У меня есть класс, который отвечает за вывод списка файлов. Пример
$files = new FilesList();
$filesList = $files->getFiles($currentPath);
Метод getFiles создает массив со списком файлов по пути $currentPath.
Например
[
['type' => 'file', 'name' => '1.jpg'],
['type' => 'dir', 'name' => 'some_dir'],
['type' => 'file', 'name' => '2.png']
]
Я могу вывести этот список просто через foreach.
foreach ($filesList as $file) {
if (is_array(($file)) && isset($file['name'])) {
echo sprintf('<div>%s</div>', $file['name']);
}
}
Но теперь встала задача, напротив каждого файла добавить ссылки удалить, переименовать
Как в ООП решается подобная задача?
Я хочу создать новый класс, например, FilesTools.
Но не могу понять, как мне связать 2 класса теперь?
Буду благодарен за любые советы!
Ответы (1 шт):
Тебе не надо 2 таких класса. Нужно нечто, что умеет получать список, удалять и переименовывать.
Если хочется делать методы нестатическими, можно в качестве состояния хранить genm в инстансе и дольше работать с ним.
Можно сделать два класса - один для каталога и один для файла. Тогда логично их наследовать от базового с общей функциональностью.
FsEntry
name: string
rename(newName: string): void
delete(): void
isSymLink(): boolean
Directory extends FsEntry
getDirictories(): Directory[]
getFiles(): File[]
createDirectory(name: string, deep: boolean): boolean /* создана или уже была */
File extends FsEntry
read(): byte[]
write(data: byte[], flags: string): void
isFifo(): boolean