Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Ядро сайта
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Ядро сайта

Страниц (1): [1]
 

1. Prizma - 23 Июня, 2016 - 14:56:42 - перейти к сообщению
Ядро сайта состоит из ~400+- php файлов, ~1mb - запросы идут на 1 файл и там используется requare_once, чтобы собрать всё это дело.
Не знаком с оптимизационными механизмами, используемых на серверах хостеров.

Будет ли какая то избыточная нагрузку на сервер, которой можно было бы избежать?
Или механизмы кэширования сервера будут держать это дело в ОП и париться не стоит по этому поводу?

Сейчас на локальном сервере среднее время генерации страницы 0.06-0.1 сек. (пока 2/3 от ожидаемого объема написано и подключается для каждого запроса).

Или стоит уже сейчас думать о том, что нужно делить на модули и для каждого запроса includ(ить), только требуемый набор классов?

Сайт интернет магазина 200-500 посетителей в день, с расчетом на рост до 1000-3000 / сутки
2. Sail - 23 Июня, 2016 - 15:31:44 - перейти к сообщению
Prizma пишет:
...пока 2/3 от ожидаемого объема написано...
...и для каждого запроса includ(ить), только требуемый набор классов

Быть может, ещё не поздно обратить внимание на автоматическую загрузку классов?
Например:
PSR-0: Autoloading Standard или PSR-4: Autoloader
3. Prizma - 23 Июня, 2016 - 15:50:48 - перейти к сообщению
Sail пишет:
PSR-0: Autoloading Standard

вот этот пример показался очень интересным, те если классы со всеми namespace сделаны по стандарту, то это несколько строчек кода и подгружаются только требуемые классы... просто потрясающе!

Спасибо!
(Добавление)
Страница сгенерирована за 0.046601 секунд. Подгружено классов: 72

И autoload.php больше не нужен Улыбка Крутая тема. Еще раз спасибо Танцующая корова
(Добавление)
Может еще кому понадобится:
PHP:
скопировать код в буфер обмена
  1. $s = microtime(true);
  2. $i = 0;
  3.  
  4. function autoload($className)
  5. {
  6.     global $i;
  7.     $i++;
  8.         $className = ltrim($className, '\\');
  9.         $fileName  = '';
  10.         $namespace = '';
  11.         if ($lastNsPos = strrpos($className, '\\')) {
  12.                 $namespace = substr($className, 0, $lastNsPos);
  13.                 $className = substr($className, $lastNsPos + 1);
  14.                 $fileName  = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
  15.         }
  16.         $fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
  17.         require $fileName;
  18. }
  19.  
  20. /**
  21.  * Инициализация ...
  22.  */
  23.  
  24. $f = microtime(true);
  25. $time = $f-$s;
  26.  
  27. printf("Страница сгенерирована за %f секунд. Подгружено классов: %d", $time, $i);

 

Powered by ExBB FM 1.0 RC1