Полезно знать…

Если вы собираетесь заниматься PHP на серьёзном уровне, вам может пригодиться знать несколько тонкостей, которые лекционный курс университета обычно упускает из вида.

Во-первых, вы обязаны знать, что такое BOM. BOM (Byte Order Mark) — это специальный служебный символ, опционально ставящийся в начале текстового файла в кодировке семейства UTF (Unicode Translation Format). Его назначение — указание на используемую версию UTF. Как известно, UTF бывает нескольких видов — UTF-8, UTF-16 и UTF-32. Наиболее часто встречается первый из них, считающийся обычно наиболее совершенным. Проблема заключается в том, что PHP-интерпретатор при чтении текстовых файлов направляет в стандартный поток вывода (или в браузер) всё, что находится вне блоков <?php … ?>, включая BOM. Таким образом, если вы используете, например, UTF-8 (а вы должны её использовать, не каменный век ведь на дворе), то вы рискуете наступить на чрезвычайно хитрые грабли, которые будут препятствовать работе ваших скриптов. Поэтому при сохранении файлов в кодировке UTF-8 обязательно обращайте внимание на сигнатуру BOM — для корректной работы PHP-сценария она должна отсутствовать.

Во-вторых, вам нужно знать некоторые директивы конфигурационного файла php.ini: даже если у вас нет доступа к этому файлу, многими настройками интерпретатора вы можете управлять, используя ini_set и некоторые другие функции. Рассмотрим некоторые важные директивы.

  • error_reporting — эта директива отвечает за вывод сведений об ошибках. Ошибки бывают разных уровней критичности (Notice, Warning, Error). Как правило, при работе хорошо написанных скриптов не возникает никаких сообщений. Однако, если вам нужно воспользоваться чьим-то скриптом, генерирующим слишком много сообщений уровня E_NOTICE, то возможно, имеет смысл принудительно задать менее жёсткий контроль ошибок. Если же вы пишете скрипты самостоятельно, то вам настоятельно рекомендуется использовать максимально жёсткий уровень контроля за ошибками, чтобы обнаружить все возможные проблемы.
  • display_errors отвечает за вывод сообщений об ошибках как таковых. С её помощью этот вывод можно отключить полностью, и тогда информация об ошибках не будет выдаваться даже если выставлен самый агрессивный error_reporting. Эту настройку имеет смысл использовать на production-сервере, чтобы при возникновении каких-либо проблем пользователи не могли получить конфиденциальную информацию (как минимум путь к скриптам на сервере).
  • open_basedir позволяет ограничить список каталогов, в подкаталогах которых сценарию разрешено открывать файлы. Это самая важная из всех настроек безопасности. Если вы всерьёз задумываетесь о предоставлении хостинга, вам нужно обязательно уметь корректно задавать open_basedir для каждого пользователя, в противном случае взлом сайтов на вашем хостинге станет тривиальной задачей.

В-третьих, вам нужно хорошо ориентироваться в библиотеке языка и не пренебрегать PEAR и PECL, а также сторонними компонентами, к примеру, Twig. Они позволят вам сократить огромное количество усилий на решение рутинных задач и заняться делом.

Один комментарий: Полезно знать…

  1. Наимжон говорит:

    Спасибо за совет )))

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>