За последние 24 часа нас посетили 64092 программиста и 1742 робота. Сейчас ищут 853 программиста ...

Подключение файлов или много строк кода

Тема в разделе "Прочие вопросы по PHP", создана пользователем DZEN, 28 ноя 2007.

Статус темы:
Закрыта.
  1. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    тогда так:
    PHP:
    1. (!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 {}

    {

    }
    }
    }
    и т.п.
     
  2. DZEN

    DZEN Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    250
    Симпатии:
    0
    Класс! Теперь у меня все комментарии будут такими ;).
     
  3. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Хм, ну сами фаилы у меня бывают и до 2000 строк, однако т.к. в данный момент 1 фаил это 1 класс, то я просто куратно всё разбиваю на методы, которые крайне редко по длинне привышают 150 строк. И то, по большей части из-за красивого форматирования (особенно SQL'a) и иногда приличного кол-ва комментариев.
     
  4. DZEN

    DZEN Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    250
    Симпатии:
    0
    Фигасе методы. Приведи пример, что такой метод делает.
     
  5. EasyCross

    EasyCross Активный пользователь

    С нами с:
    4 июн 2007
    Сообщения:
    17
    Симпатии:
    0
    По негласным законам программирования один отдельный блок, файл или функция не должна превышать 3-5 страниц (обычно экранных). Иначе ее потом трудно отлаживать. Но этим редко кто руководствуется :) Лень дробить на отдельные блоки, хотя надо иногда - самому потом легче будет.

    В php я пока новичок и больше 300-500 строк кода в одном файле у меня еще не было. А вот в одной программе на Дельфи у меня есть файлики (их несколько таких) в которых и 20.000 строк кода не предел. Но в дельфи проще - там навигация по этим функциям хорошая - все классы и объекты показываются отдельным списком и т.п. Любую функцию я там буду искать секунд 15, даже совершенно не помня ее названия :)
     
  6. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Это не из-за самого делфи проще, а благодаря BDS. Для PHP тоже есть хорошие IDE, которые намного облегчают работу с большими объёмами кода.
     
  7. Mavir

    Mavir Guest

    Используй Zend, там такая же навигация. А если работать с проектами, то легко находится по имени функция в любом файле проекта (даже не открытом в данный момент). Плюс переходы к функциям/методам/константам как в делфи - Ctrl+клик на имени функции
     
  8. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    DZEN
    Elementary my dear Whatson ;)
    Первый же пришедший пример - метод добавления новой темы в форуме.
    1). trim'ом обработать все данные
    2). Проверить, что пользователь не заполнил.
    3). Проверить, а хочет ли пользователь сделать голосование - если да, см. 3а., иначе 4.
    3а). Проверить наличие всех данных и их валидность.
    3б). Собственно добавить опрос в базу
    4). Отпарсить сообщение для записи в базу.
    5). Записать новую тему в базу, добавить первое сообщение в этой теме.
    6). Обновить все связанные счётчики - кол-во сообщений в теме, кол-во топиков в форуме, кол-во постов у пользователя если в данном форуме их надо вообще считать.
    7). Добавить запись о том, что пользователь хочет получаеть оповещения о новых сообщениях в теме если он выбрал это.
    8). Поставить пометку, что пользователь читал эту тему, что бы ему она не подсвечивалась.
    Ну и вывод самой формы и обработка исключений (я их использую, т.к. это в разы удобнее и проще чем парится с кучей ифов).
    Набегает где-то 150 строк при нормальном форматировании этого кода.
     
  9. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    DZEN
    слова-слова... вот щас займусь буквоедством, скажу, что убийство это наитяжелейшее преступление, и какой то файл на 2гб, который скорее всего нахрен не нужен совершенно не стоит убийства человека %)
    вообще 2гб я про винду win32, там все равно больше 2х не адресуется, на никсах мож побольше, гига 4-ре %)
     
  10. DZEN

    DZEN Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    250
    Симпатии:
    0
    Psih, это методы?!?!?!?!?!?! Это в классе? Я не перепутал?
    Тогда ещё раз : Если кто такое напишет в классах для меня - убийство такого человека будет считается освобождением земли от вселенского зла а не убийством.

    P.S. antonn Буквоедством заниматься не надо, всё в переносном смысле и утрированно. Но комрады 2 гига этож ппц какой-то.
     
  11. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Ну есть просто - класс ТопикиФорума. Что он должен уметь?
    Отображать топики и добавлять новые темы. Вот это туда и вписано. Насколько я понимаю ООП - так и должно быть :)
     
  12. DZEN

    DZEN Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    250
    Симпатии:
    0
    Если я ошибаюсь - исправьте меня.
    Если действительно сделать это классом - разве это не будет тянуть, извините, дофига ресурсов?
    Это ведь придется в памяти создавать объект класса, и потом еще с ним работать, не лучше ли просто вызывать функции из файле нежели методы из класса (к тому же такого немаленького).
     
  13. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    сколько ж тут пальм растет.....
    обоснуйте.
     
  14. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    один тяжелый SQL запрос сведёт в полный ноль заботу о быстроте кода аля func vs ооп.

    разговор о func vs ооп идет о милисекундах, когда есть другие места где разговор идет о секундах, так что дискуссия не о том, о чем надо думать.
     
  15. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Если мозги хрен знает где, тормозить будет что угодно.
    Писать надо просто и понятно, а не городить гору из кода. Смешивание функций и классов в нужных пропорциях очень облегчают жизнь знаете-ли и на скорость не влияют :)
     
  16. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    +10
     
  17. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    у меня подозрение, что у части людей представление, что ООП - это создание и уничтожение классов в циклах для каждой запятой и хранение чего-то большого (но мне неизвестного) в каждом объекте.
     
  18. DZEN

    DZEN Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    250
    Симпатии:
    0
    PHP не держит класс в памяти, но в любом случае создаётся переменная, которая отвечает за хранение экземпляра объекта. Не забывайте так же что в 5 PHP кроме всего будет происходить проверка на доступность методов и переменных класса private/public. У кого нибудь есть реальные показатели различия когда на классах и просто по функциям? А вот у меня есть, и при посещении в 5000 даже такое может помочь, это смотря какой сервер :(.
     
  19. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Да и к слову, если уж об объектах и переменных - всё это хранится всёравно в виде структуры в PHP называемой ZVAL контейнером. Так что по сути
    PHP:
    1. <?php
    2. class MyClass {
    3. }
    4. $a = 5;
    5. $b = new MyClass();
    6.  
    Так что по сути в данном контексте между $a и $b по сути разница только в типе - $a это integer, а $b имеет тип "объект типа MyClass".
    Да, если объект более сложен, то разница будет при простейшем сравнении. Но кто делает классы для простых вещей? Правльно, умные люди так не делают. А когда у вас сложная структура и много разных переменных разница в скорости просто мизерна.
    Смею даже предположить что ООП будет в 5-м PHP чуть быстрее т.к. вызвать метод объекта быстрее чем глобальную функцию - у объекта своя маленькая хеш таблица методов и полей, а глобальная хеш таблица большая, следовательно и поиск может занять больше временипочти
     
  20. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    жесть. ОДНА переменная!!
    сколько раз это будет происходить?

    ставлю бутылку сладкого, что дело в алгоритме, а не в "проверке методов и вызовах переменных"


    КАКИХ ресурсов это будет тянуть дофига? Сколько объектов скольких классов вызывается в данном примере?
     
  21. DZEN

    DZEN Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    250
    Симпатии:
    0
    А где храниться хеш таблица объекта :)?
     
  22. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Бугога. Ещё одна тема функции vs объекты. Угомонитесь господа. Или по теме или ничего не пишите.
     
  23. DZEN

    DZEN Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    250
    Симпатии:
    0
    Ага :).
    Суть в том... Что это БУДЕТ происходить :).
    При чём здесь алгоритм если функция одна и та же ;)?
    Ну, люблю я делать из мухи слона!
    Sergey89
    Ага, лично я закругляюсь...
     
Статус темы:
Закрыта.