Понедельник, 2024-05-06, 4:59 AM
Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Пиринговые сети
Форма входа

Главное меню

Календарь

Друзья сайта
Программы
Блог KAD.DHT
Торренты eMule
Торрент трекер НТК
Компьютеры и сети
"25-й КАДР"

Рекламный блок


Статистика
Rambler's Top100 Адресная книга Интернет. Желтые страницы.

Рейтинг сайтов smarttop.info
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Мои статьи

50 советов по улучшению PHP кода
50 советов по улучшению PHP кода

Скорость работы приложения зачастую является определяющим фактором, ведь как известно - время деньги. Пользователь никогда непростит "тормознутости" сайту и уйдёт от туда при первой же возможности, так и не оценив твой супер-пупер движок и замечательный контент. Сегодня команда netfaq.ru поделиться с тобой полезным опытом оптимизации PHP кода.

1) И самый важный совет. Продумывай алгоритм. Максимально упрости всё и везде, где это возможно. Поверь нам, это очень поможет тебе как при отладке так и при сопровождении проектов.
2) echo работает быстрее чем print
[исследование]
3) Заключай строку с текстом без переменных в ординарные кавычки ('...') вместо двойных ("...").
[исследование]
4) Используй sprintf(..) для форматированного-вывода строки, это примерно в 10 раз быстрее чем вывод переменных в строке обрамлённой в двойные кавычки.
[исследование]
5) При обходе всех элементов массива циклом for, лучше вычислить его размер заранее. Это ускорит исполнение. Приведу пример:

Плохой стиль:
 for($i = 0; $i < count($array); $i++) {
...
}
Хороший стиль:
 $max = count($array);
for($i = 0; $i < $max; $i++) {
...
}
[исследование]
6) Следует обнулять либо разыменовывать (unset) ненужные переменные, это сильно экономит память. [исследование]
7) Забудь о __get, __set,__autoload
[исследование]
8) Везде где можно заменяй require_once() на require()
[исследование]
9) Указание абсолютного пути к файлу при вызове include(), require() экономит ресурсы. [исследование]
10) require() и include() с недавних пор работают совершенно идентично, отличаются лишь в одном, при вызове require("file.inc.php"), если file.inc.php не существует, то скрипт прерывает свою работу. [исследование]
11) Начиная с PHP5, timestamp начала выполнения скрипта может быть получен из переменной $_SERVER['REQUEST_TIME'], лучше использовать её чем вызов time() или microtime(). [исследование]
12) Регулярные выражения в формате PCPE выполняются быстрее чем в EREG. Но всегда стоит рассмотреть возможность использования "родных" для PHP функций strncasecmp,strpbrk и stripos. [исследование] 13) При парсинге данных в формате XML стоит использовать xml2array, а для парсинга HTML можно попробовать DOM document или DOM XML из PHP 4. [исследование]
14) str_replace быстрее чем preg_replace. [исследрвание]
15) Условный оператор "else if" быстрее чем "операторы выбора" типа case/switch [исследование]
16) Подавление ошибок при помощи префикса "@" работает очень медленно. [исследование]
17) Что-бы увеличить пропускную способность, можно использовать mod_deflate в Apache v.2*, либо mod_gzip для Apache v.1* [исследование]
18) Завершение сеанса работы с СУБД не просто хороший тон, но и полезное правило. [исследование]
19) $row['id'] в 7 раз быстрее чем $row[id], интерпритатор сразу "понимает" что id это константа, а не переменная, соответственно индекс в массиве находится быстрее. [исследование]
20) Использование это стандарт которого стоит придерживаться. [исследование]
21) Рекомендуется иметь в php.ini error_reporting(E_ALL), это облегчит отладку. [исследование]
22) PHP скрипты обрабатываются Апачем в от 2 до 10 раз медленне чем статичные html страницы. [исследование]
23) PHP скрипты (кроме кэшированных) всегда интерпретируются "на лету" каждый раз когда их вызывают. Если установить инструмент кэширования (такой как memcache,eAccelerator,Turck MMCache) это ускорит отображение страницы за счёт устранения времени на компиляцию скрипта. [исследование]
24) Альтернативной техникой кэширования явлется использование Smarty или Cache Lite для тех страниц которые изменяются относительно редко. [исследование]
25) Используй isset() везде где это возможно для замены strlen():
 if (strlen($foo) < 5) { echo “Foo is too short”; } vs. if (!isset($foo{5})) { echo “Foo is too short”; } ).
[исследование]
26) ++$i работает быстрее чем $i++, используй пре-инкрементацию везде где это возможно [исследование]
27) Следует полагаться на "родные" (native) функции PHP (они работают гораздо быстрее) и не изобретать велосипед. Если требуется написать очень быструю функцию аналога которой нет в PHP то лучше всего сделать это на Си в виде расширения, или оформить как модуль. [исследование]
28) Документируй свой код.
29) Изучи различие между хорошим кодом и плохим. [исследование]
30) Придерживайся стандартов программирования, это поможет другим людям читать твой код. [исследование]
31) Помни о принципе разделениия содержимого от представления. Короче говоря разделяй PHP и HTML. [исследование]
32) Зачастую не стоит париться с такими сложными шаблонизаторами как Smarty. Достаточно использовать средства включенные в PHP. Такие как ob_get_contents и extract. [исследование]
33) Никогда не доверяй данным исходящим от пользователя (типа $_POST[..], $_GET[..]), используй mysql_real_escape_string при работе с MySQL и htmlspecialchars при отображении данных (из БД к примеру) в HTML. [исследование]
34) В рабочем проекте надо отключить display_errors(). Следи за тем что-бы в корневой папке проекта не оказался скрипт с phpinfo(). Всё это ценная информация для хакеров. [исследование]
35) Выключи register_globals, и вообще отвыкай от них если до этого использовал. В PHP6 их поддержка будет полностью отключена.[исследование]
36) Не храни пароли в БД открытым текстом. Используй md5 хэширование [исследование]
37) Используй ip2long и long2ip чтоб хранить IP адреса в цифровом формате вместо строкового. [исследование]
38) Не забывай про PEAR. Аналог СPANEL в Perl. База содержит множество уже готовых к работе модулей, способных решать самые разнообразные проблемы.
39) Не забдуь после header('Location:'.$url) поставить die(); 40) В ООП, если метод может быть статичным следует его таковым объявить. Скорость исполнения вырастает на порядок. [исследование]
41) Инкрементация локальных переменных в ООП методе происходит наиболее быстро. [исследование]
42) Инкрементация переменной принадлежащей самому объекту (например $this->prop++) в 3 раза медленне чем локальной переменной. [исследование]
43) Инкрементация необъявленной локальной переменной в 9-10 раз медленне чем уже объявленной. [исследование]
44) Избегай неиспользуемых переменных.
45) Прежде чем садиться что-то писать, поищи аналог в гугле, почерпнёшь много нового и наверняка в голове появяться свежии идеи.
46) Хорошо спроектированный класс устраняет массу проблем с отладкой и сопровождением.
47) Функция с одним параметром и пустым "телом" исполняется по времени столько же сколько 7-8 инкрементаци $local++, аналогичный метод в объекте исполняется по времени ~ 15 инкрементаций $local++. [исследование]
48) Стоит разумно использовать OOП. Зачастую использование ООП замедляет выполнение программ. [исследование]
49) Делай unset (уничтожение) переменной которую больше нигде не использовать. Это относится к параметрам подключения к БД например. 50) RTFM! Read This Fuckin Manual :-) PHP имеет отличный мануал который пригождается очень часто



Источник: http://netfaq.ru/php/50_tips_php
Категория: Мои статьи | Добавил: netnsk7072 (2009-09-08) | Автор: admin W
Просмотров: 1348 | Комментарии: 1 | Теги: PHP, советы | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:

Copyright www.netnsk.ru © 2024
Сделать бесплатный сайт с uCoz