За последние 24 часа нас посетили 37876 программистов и 1734 робота. Сейчас ищут 883 программиста ...

Каким образом лучше хранить php функции?

Тема в разделе "Прочие вопросы по PHP", создана пользователем realasd, 10 дек 2010.

  1. realasd

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

    С нами с:
    14 окт 2010
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Челябинск
    Допустим у меня на сервере есть много php функций в одном файле. Стоит ли мне разбивать этот файл на маленькие подфайлы, и уже подфайлы подключать к соответствующим страницам на сайте или нет? Как при таком разбиении изменится скорость загрузки страницы? Аналогичный вопрос про js функции.
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Много - это сколко?
     
  3. realasd

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

    С нами с:
    14 окт 2010
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Челябинск
    Размер файла 17 кб. Функций штук тридцать
     
  4. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    забей)
    Для пхп - это капля в океане.
     
  5. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    realasd
    и порабы уже пользоваться объектами...
     
  6. alexey_baranov

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

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    и автолоадом
     
  7. Hight

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

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    У меня в системе 3 функции. 2 относятся к автолоаду, 1 - эрорхэндлер.
     
  8. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    а я, а у меня, автолоад автолоадом лоадиться...
     
  9. Hight

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

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Костян
    Да я, да у меня, система сама себя пишет и на сервак заливает!
     
  10. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Hight
    может доработать, чтобы система сама себе функционал придумывала и оптимизировала? ;)
     
  11. Hight

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

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Может покурить? Тогда легко =)
     
  12. realasd

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

    С нами с:
    14 окт 2010
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Челябинск
    Автолоад наверное хорошая штука, только у меня нет ни одного класса.
     
  13. Hight

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

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Автолоад - это жизненная необходимость.
     
  14. mako

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

    С нами с:
    25 май 2010
    Сообщения:
    5
    Симпатии:
    0
    Думаю, у меня необходимость в ссылочке на мануал, дайте плз![/img]
     
  15. Hight

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

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
  16. alexey_baranov

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

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    не вижу большого смысла писать свои автолоады. они все равно будут хуже тех, что уже написаны. я взял готовый из второй доктрины. идеален! грузит и 5.3 и старые 5.2 библиотеки типа Zend и PHPExcel .

    PHP:
    1. <?php
    2. require_once 'Doctrine/Common/ClassLoader.php';
    3.  
    4. $zendClassLoader= new Common\ClassLoader("Zend", realpath(APPLICATION_PATH . '/../library'));
    5. $zendClassLoader->setNamespaceSeparator("_");
    6. $zendClassLoader->register();
    7.  
    8. $mainClassLoader= new Common\ClassLoader();
    9. $mainClassLoader->register();
    ракета - автолоад!
     
  17. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Объекты нужны, когда они нужны. В его случае 30 функций могут иметь слабую связь.

    realasd
    17 килобайт - это мало. Осмелюсь даже предположить, что загрузка двух-трех файлов по 6 килобайт будет дольше, чем загрузка одного в 17.


    Hight
    Обосрали тебя там)
    Я тоже ненавижу код в одну строку. Условие и блок в одну строку - это ад. Когда сканируешь код (чтобы понять функционал), на этом месте просто ступор.
    Делать каждый раз скандир - это слишком расточительно. Даже если он будет выполняться один раз для каждого пользователя. Что будет, если подключатся 10 человек одновременно? А если 50?

    Другой вопрос, если делать:
    PHP:
    1. <?php
    2. //...
    3. if (time() - filemtime("dirfiles.php") > 600) {
    4.     Hight_autoload_scan_dirs(CLASSES_DIRS, $list);
    5.     file_put_contents("dirfiles.php", '<?php'.PHP_EOL.'$list = '.var_export($list, true));
    6. }
    7. else
    8.     include "dirfiles.php"
    9.  
    10. if(array_ke ...
    11. ?>
     
  18. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Hight
    Я тоже пользуюсь чем-то подобным, только вместо scandir - glob('/*.php').

    Kreker
    и да кеширую. Правда надо не забывать убивать кеш при добавлении классов.
     
  19. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    никто не мешает сделать свой объект для каждой функции ;)
    да можно вообще ничего не писать...
    Volt(220)
    Нафига вообще сканить ФС для автолоада, если есть способы это не делать?
     
  20. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Костян
    Какие?
    Кроме кодирования пути в имени класса и карты классов (которая, по сути, то же сканирование выполненное руками).
     
  21. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    ну мне достаточно этого ....
     
  22. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Костян
    Мне не нравятся имена типа Zend_CodeGenerator_Php_Docblock_Tag_Return. =)
     
  23. Elkaz

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

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Вы такие страшные вещи говорите...
     
  24. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    но у тебя есть 5.3 ;) или хотя бы по крайней мере текстовый процессор ;);)
     
  25. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    начал изучать Yii - уже счастлив, что в нем обошлось без этого ))