2013-05-30 3 views
1

Я пишу приложение php, которое управляет файлами (просмотр, перемещение, удаление и т. Д.), И мне нужно создать несколько функций для этого.Является ли php-объект для каждого файла хорошей идеей?

У меня есть два способа кодировать эти функции.

  • вариант 1, с использованием объектов:

    $myFile = new ofile('myFile.txt'); 
    $myFile->move('someDirectory'); 
    $myFile->delete(); 
    
  • вариант 2, используя обычные функции:

    move('myFile.txt','someDirectory/myFile.txt'); 
    unlink('someDirectory/myFile.txt'); 
    

Так что мои вопросы:

Какое решение лучше? Это большая разница в производительности?

+7

Нет, разница в стиле - не в исполнении. – troelskn

+4

вариант 1 является более сексуальным ... – Orangepill

+2

Этот вопрос полностью закончен - голосование возобновляется. – alfasin

ответ

3

Разница в производительности не существует.

Первый вариант намного лучше подходит для ремонтопригодности и расширяемости.

Однако рассмотрите способы перемещения, такие как move, delete, чтобы разделить класс менеджера, чтобы в будущем, когда вам нужна поддержка новой файловой системы (например, S3), вы не столкнетесь с рефакторингом ада.

еще лучше, считает не изобретать колесо и смотрит в решения с открытым кодом, такой как https://github.com/KnpLabs/Gaufrette

1

Я лично, как ООП подхода больше, потому что вы производите более портативный, расширяемый, ремонтопригоден и читаемый код.

Если вы решите пойти с вариантом 1, то я настоятельно рекомендую посмотреть SplFileObject. Вы можете расширить свой собственный класс и использовать множество важных методов.

$file = new SplFileObject('example.php'); 
var_dump($file->getRealPath()); 
var_dump($file->getFilename()); 

Читайте также о FilesystemIterator и DirectoryIterator не изобретать колесо.

+0

+1 для повторного использования Spl. –

+0

Мне всегда интересно, что мало кто знает об итераторах SPL и других интересных расширениях. – bitWorking

Смежные вопросы