Дам старт в 10$
Несколько человек интересовались покупкой домена, но сам назначить цену не могу. Прошу помощи: сколько примерно стоит домен cp.su?
Да, extends =). ТС-у доказывать смысла вообще нет - он еще не понял что это, а без это понять как и где применять невозможно.
P.S.: код в классах состоит не из функций, а из методов, которые привязанны к объекту (ну это в теории).
function doArchive($file) { $ext = ...; $function = 'wrapper_doArchive_' . $ext; return call_user_func($function, $file); }
Эмм.. Реально считаешь свой код заменой моему? =))) Ок, добавь обработку .bz - должно быть тоже самое, что и для .zip. Копи/паст? Особенно если все-таки какие-то мелочи надо добавить =)
Дальше объяснять? Можно еще добавить пре-/пост- обработку - вообще будет весело.
По поводу листингов/архивов - я-то как-раз и дал пример на листинги, только расширенный, когда не только тупой листинг, но еще и работа с ним. Могу еще примеры добавить, когда нужны одни и те же (по названиям) функции/методы, но с разным кодом внутри. Например: файл с 5-ю функциями и 5 мест для их вызова, но в каждом месте одна из функций должна меняться. Что получится на функциях? Правильно - 10 файлов и 5 инклудов в каждом месте подключения.
В общем, многие вещи на классах значительно проще решать. Тот же обход директорий ;)
А может просто будем читать внимательнее? =))) Вроде понятно написано: "Пример с тем-же print, а точнее var_dump... Можно сделать просто var_dump, а можно обернуть его в статичный метод класса." При чем тут твои слова? =)
Да легко... Например, есть базовый класс, для основных действий (обход директорий, копирование, перемещение и пр.). И есть наследуемые, которые по расширению файла делают определенные действия (например, .rar|.zip|.7z - отправлять на ftp, .txt|.rtf|.doc|.xml - конвертировать и копировать в определенные папки и т.д.). На функциях получится примерно так: определяем расширение, вызываем нужную функцию:
$ext = ...; if (in_array($ext, array('rar', 'zip', '7z'))) wrapper_archive($filename); ...
Дальше враппер делает определенные действия, заложенные алгоритмом. Все верно? На классах примерно так-же:
class wrapper_archive { ... } class wrapper_rar extends wrapper_archive {} class wrapper_zip extends wrapper_archive {} class wrapper_7z extends wrapper_archive {} ... $ext = ...; $class = 'wrapper_' . $ext; $class::action();
Набросок на классах. А теперь самое интересное: что произойдет, когда надо будет 7z обрабатывать отдельно? Например, добавить новый файл в архив и описание, оставив его на месте?
На функциях - правим основной код, на классах - нужный класс, не трогая остальное (а значит, меньше риска что вообще поломаем код приложения).
Никто не спорит, что все, что можно сделать на классах можно сделать и на функциях. Но ООП сильно (ОЧЕНЬ СИЛЬНО) упрощает поддержку ;)
Кстати, советую поизучать кохану. За счет хорошей файловой структуры ООП там показывает всю свою силу. Не трогая сам фреймворк его-же (фреймворк, т.е.) можно изменять!! Попробуйте реализовать подобное на функциях. Как уже говорил - это возможно, но очень сложно, а уж поддерживать - лучше сразу застрелиться =)))
Ну это вы тоже очень зря. Еще раз предлагаю посмотреть ko3. Все хелперы - статичные классы с кучей методов. И каждый можно заменить на свое, не трогая другие.
Пример с тем-же print, а точнее var_dump... Можно сделать просто var_dump, а можно обернуть его в статичный метод класса. Для чего? Чтобы потом, через неделю-две, переписать: будет не просто выводиться результат, но еще и отправляться на мыло, например =)))
Первый похоже на java: http://wizard-traffic.com/manager/
А если так:
class Filer extends DirectoryIterator { ... } ... $filer = new Filer(); foreach ($filer -> files() as $file) { ... }
Так проще? =)
Выбрал бы фреймворк, что кстати уже не однократно делал. Тормоза чаще всего не в коде, а во взаимодействии кода и базы. И фреймворк тут помогает не тратить время на то, что можно сделать быстро и качественно (код, кеширование и пр.), а потратить время с умом на проектирование хранения данных.
А в чем сомнения-то? Torg.ua - это avito.ru, slando.com.ua - slando.ru.
tablica.pl, emarket.ua, ataxa.ru - это уже третий движок, в подвале можно посмотреть другие сайты на нем, если я не ошибаюсь. Во всяком случае, все они берут статику из одного места ;)
А движки очень даже отличаются. Хотя бы по обработке несуществующих страниц ;)
Покажите сайт в личку, плз