aktuba

Рейтинг
68
Регистрация
29.12.2007

Дам старт в 10$

Несколько человек интересовались покупкой домена, но сам назначить цену не могу. Прошу помощи: сколько примерно стоит домен cp.su?

Stek:
а в классе это сделается все само ? :) Хотите секрет открою ? Код в классах так же состоит из функций, который точно так же вам придется дописывать.

А вообще про классы доказывайте топикстартуру, мне то это зачем ?

Да, extends =). ТС-у доказывать смысла вообще нет - он еще не понял что это, а без это понять как и где применять невозможно.

P.S.: код в классах состоит не из функций, а из методов, которые привязанны к объекту (ну это в теории).

Stek:
aktuba, ты сейчас меня таким образом в оппоненты к пользователям классов хочешь внести ? :) Да ппф, как нефиг делать :)
 

function doArchive($file) {
$ext = ...;
$function = 'wrapper_doArchive_' . $ext;
return call_user_func($function, $file);
}


Это очень классно в споре брать одну вещь (листинг директории) и доказывать ее с помощью совершенно другой (работой с архивами) :)

Эмм.. Реально считаешь свой код заменой моему? =))) Ок, добавь обработку .bz - должно быть тоже самое, что и для .zip. Копи/паст? Особенно если все-таки какие-то мелочи надо добавить =)

Дальше объяснять? Можно еще добавить пре-/пост- обработку - вообще будет весело.

По поводу листингов/архивов - я-то как-раз и дал пример на листинги, только расширенный, когда не только тупой листинг, но еще и работа с ним. Могу еще примеры добавить, когда нужны одни и те же (по названиям) функции/методы, но с разным кодом внутри. Например: файл с 5-ю функциями и 5 мест для их вызова, но в каждом месте одна из функций должна меняться. Что получится на функциях? Правильно - 10 файлов и 5 инклудов в каждом месте подключения.

В общем, многие вещи на классах значительно проще решать. Тот же обход директорий ;)

Stek:
Какой var_dump ? Где я про var_dump что то писал ? Может не будем следовать женской логике и придумывать то, о чем не было речи, а ? :)

А может просто будем читать внимательнее? =))) Вроде понятно написано: "Пример с тем-же print, а точнее var_dump... Можно сделать просто var_dump, а можно обернуть его в статичный метод класса." При чем тут твои слова? =)

Stek:
Так проще, но все равно, объясните мне вообще смысл делать отдельный класс на чтение директории ? Хотя возможно пример глупый с файлами, кроме вопроса "нафига так делать" он ничего не вызывает. Точно так же я могу сделать отдельную функцию readDirFiles(); и использовать ее с таким же успехом. Разницы ни какой.

Да легко... Например, есть базовый класс, для основных действий (обход директорий, копирование, перемещение и пр.). И есть наследуемые, которые по расширению файла делают определенные действия (например, .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 обрабатывать отдельно? Например, добавить новый файл в архив и описание, оставив его на месте?

На функциях - правим основной код, на классах - нужный класс, не трогая остальное (а значит, меньше риска что вообще поломаем код приложения).

Никто не спорит, что все, что можно сделать на классах можно сделать и на функциях. Но ООП сильно (ОЧЕНЬ СИЛЬНО) упрощает поддержку ;)

Кстати, советую поизучать кохану. За счет хорошей файловой структуры ООП там показывает всю свою силу. Не трогая сам фреймворк его-же (фреймворк, т.е.) можно изменять!! Попробуйте реализовать подобное на функциях. Как уже говорил - это возможно, но очень сложно, а уж поддерживать - лучше сразу застрелиться =)))

Stek:
Для меня прелесть классов в возможности создавать читаемые имена и иметь единое пространство данных внутри программы. А оборачивать элементарные функции в класс, ну его нафиг. Видел как люди с 100% OOP скриптом, даже print делали как $print->show('Hello world');

Ну это вы тоже очень зря. Еще раз предлагаю посмотреть ko3. Все хелперы - статичные классы с кучей методов. И каждый можно заменить на свое, не трогая другие.

Пример с тем-же print, а точнее var_dump... Можно сделать просто var_dump, а можно обернуть его в статичный метод класса. Для чего? Чтобы потом, через неделю-две, переписать: будет не просто выводиться результат, но еще и отправляться на мыло, например =)))

KILLER666:
подскажите где найти скрипт на котором работают wizard-traffic_com adsyst_ru, копался в поиске, не смог найти.
нужно сделать приват программу именно на данном скрипте, понравился.

Первый похоже на java: http://wizard-traffic.com/manager/

Stek:
Второй пример - это как раз тот случай, когда ООП используется ради "ООП ведь как это круто, а на процедурах лохи программируют!". В результате чего, каждую функцию php оборачивают в объект ... и используют снова как функцию, только уже вызывая объект.

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

"$file->isDot()" вообще убивает, нафига вне класса проверять на мусор, класс сам это не в состоянии сделать ? :)

А если так:

class Filer extends DirectoryIterator {

...
}

...

$filer = new Filer();
foreach ($filer -> files() as $file) {
...
}

Так проще? =)

qList:
К примеру, если у вас есть задача написать высоконагруженный проект, где основное требование - быстродействие, выбирали бы ли вы фреймворки с написанными кем-то классами (наверняка не совсем отимальными) или писали бы свои функции/классы.

Фреймворки удобны разработчикам, а вот с точки зрения продуктивности приложения какая ситуация.

Выбрал бы фреймворк, что кстати уже не однократно делал. Тормоза чаще всего не в коде, а во взаимодействии кода и базы. И фреймворк тут помогает не тратить время на то, что можно сделать быстро и качественно (код, кеширование и пр.), а потратить время с умом на проектирование хранения данных.

denn_g:
Всегда удивлял профессиональный ответ "Самописный"
Хозяева сайтов Torg ua и emarket ua разные компании и что они обе написали одинаковый движок?
Еще польский tablica*pl

А в чем сомнения-то? Torg.ua - это avito.ru, slando.com.ua - slando.ru.

tablica.pl, emarket.ua, ataxa.ru - это уже третий движок, в подвале можно посмотреть другие сайты на нем, если я не ошибаюсь. Во всяком случае, все они берут статику из одного места ;)

А движки очень даже отличаются. Хотя бы по обработке несуществующих страниц ;)

Покажите сайт в личку, плз

Всего: 956