тогда так: PHP: (!empty($_SESSION['filter'])) ? $smarty->assign("filter", $_SESSION['filter']) : $_SESSION['filter'] = '';// мой пуперкод, кто не понял лох педальный чаще там не 'choise' а '<tr><td><a href... >".(!empty($row['id']) ? '<input type... ' : $row['txt'])."</... так что разбить на строки и четко их разделить будет намного читаемей. Предложи свой вариант без $$ if ($a) if ($b) { if ; if {} { } } } и т.п.
Хм, ну сами фаилы у меня бывают и до 2000 строк, однако т.к. в данный момент 1 фаил это 1 класс, то я просто куратно всё разбиваю на методы, которые крайне редко по длинне привышают 150 строк. И то, по большей части из-за красивого форматирования (особенно SQL'a) и иногда приличного кол-ва комментариев.
По негласным законам программирования один отдельный блок, файл или функция не должна превышать 3-5 страниц (обычно экранных). Иначе ее потом трудно отлаживать. Но этим редко кто руководствуется Лень дробить на отдельные блоки, хотя надо иногда - самому потом легче будет. В php я пока новичок и больше 300-500 строк кода в одном файле у меня еще не было. А вот в одной программе на Дельфи у меня есть файлики (их несколько таких) в которых и 20.000 строк кода не предел. Но в дельфи проще - там навигация по этим функциям хорошая - все классы и объекты показываются отдельным списком и т.п. Любую функцию я там буду искать секунд 15, даже совершенно не помня ее названия
Это не из-за самого делфи проще, а благодаря BDS. Для PHP тоже есть хорошие IDE, которые намного облегчают работу с большими объёмами кода.
Используй Zend, там такая же навигация. А если работать с проектами, то легко находится по имени функция в любом файле проекта (даже не открытом в данный момент). Плюс переходы к функциям/методам/константам как в делфи - Ctrl+клик на имени функции
DZEN Elementary my dear Whatson Первый же пришедший пример - метод добавления новой темы в форуме. 1). trim'ом обработать все данные 2). Проверить, что пользователь не заполнил. 3). Проверить, а хочет ли пользователь сделать голосование - если да, см. 3а., иначе 4. 3а). Проверить наличие всех данных и их валидность. 3б). Собственно добавить опрос в базу 4). Отпарсить сообщение для записи в базу. 5). Записать новую тему в базу, добавить первое сообщение в этой теме. 6). Обновить все связанные счётчики - кол-во сообщений в теме, кол-во топиков в форуме, кол-во постов у пользователя если в данном форуме их надо вообще считать. 7). Добавить запись о том, что пользователь хочет получаеть оповещения о новых сообщениях в теме если он выбрал это. 8). Поставить пометку, что пользователь читал эту тему, что бы ему она не подсвечивалась. Ну и вывод самой формы и обработка исключений (я их использую, т.к. это в разы удобнее и проще чем парится с кучей ифов). Набегает где-то 150 строк при нормальном форматировании этого кода.
DZEN слова-слова... вот щас займусь буквоедством, скажу, что убийство это наитяжелейшее преступление, и какой то файл на 2гб, который скорее всего нахрен не нужен совершенно не стоит убийства человека %) вообще 2гб я про винду win32, там все равно больше 2х не адресуется, на никсах мож побольше, гига 4-ре %)
Psih, это методы?!?!?!?!?!?! Это в классе? Я не перепутал? Тогда ещё раз : Если кто такое напишет в классах для меня - убийство такого человека будет считается освобождением земли от вселенского зла а не убийством. P.S. antonn Буквоедством заниматься не надо, всё в переносном смысле и утрированно. Но комрады 2 гига этож ппц какой-то.
Ну есть просто - класс ТопикиФорума. Что он должен уметь? Отображать топики и добавлять новые темы. Вот это туда и вписано. Насколько я понимаю ООП - так и должно быть
Если я ошибаюсь - исправьте меня. Если действительно сделать это классом - разве это не будет тянуть, извините, дофига ресурсов? Это ведь придется в памяти создавать объект класса, и потом еще с ним работать, не лучше ли просто вызывать функции из файле нежели методы из класса (к тому же такого немаленького).
один тяжелый SQL запрос сведёт в полный ноль заботу о быстроте кода аля func vs ооп. разговор о func vs ооп идет о милисекундах, когда есть другие места где разговор идет о секундах, так что дискуссия не о том, о чем надо думать.
Если мозги хрен знает где, тормозить будет что угодно. Писать надо просто и понятно, а не городить гору из кода. Смешивание функций и классов в нужных пропорциях очень облегчают жизнь знаете-ли и на скорость не влияют
у меня подозрение, что у части людей представление, что ООП - это создание и уничтожение классов в циклах для каждой запятой и хранение чего-то большого (но мне неизвестного) в каждом объекте.
PHP не держит класс в памяти, но в любом случае создаётся переменная, которая отвечает за хранение экземпляра объекта. Не забывайте так же что в 5 PHP кроме всего будет происходить проверка на доступность методов и переменных класса private/public. У кого нибудь есть реальные показатели различия когда на классах и просто по функциям? А вот у меня есть, и при посещении в 5000 даже такое может помочь, это смотря какой сервер .
Да и к слову, если уж об объектах и переменных - всё это хранится всёравно в виде структуры в PHP называемой ZVAL контейнером. Так что по сути PHP: <?php class MyClass { } $a = 5; $b = new MyClass(); Так что по сути в данном контексте между $a и $b по сути разница только в типе - $a это integer, а $b имеет тип "объект типа MyClass". Да, если объект более сложен, то разница будет при простейшем сравнении. Но кто делает классы для простых вещей? Правльно, умные люди так не делают. А когда у вас сложная структура и много разных переменных разница в скорости просто мизерна. Смею даже предположить что ООП будет в 5-м PHP чуть быстрее т.к. вызвать метод объекта быстрее чем глобальную функцию - у объекта своя маленькая хеш таблица методов и полей, а глобальная хеш таблица большая, следовательно и поиск может занять больше временипочти
жесть. ОДНА переменная!! сколько раз это будет происходить? ставлю бутылку сладкого, что дело в алгоритме, а не в "проверке методов и вызовах переменных" КАКИХ ресурсов это будет тянуть дофига? Сколько объектов скольких классов вызывается в данном примере?
Ага . Суть в том... Что это БУДЕТ происходить . При чём здесь алгоритм если функция одна и та же ? Ну, люблю я делать из мухи слона! Sergey89 Ага, лично я закругляюсь...