Xpoint
   [напомнить пароль]

Совместимый код

В данной серии мини-статей рассказывается о том, как на PHP писать максимально переносимый и совместимый с различными системами код. Ориентированно в первую очередь на новичков, но некоторые вопросы будут интересны и профессионалам Web-программирования.

В настоящее время в интернете существует множество статей, посвященных Интернет – разработке, в том числе, на PHP. Огромное число таких материалов рассказывает о проблемах безопасности приложений. Для Web ориентированных систем этот вопрос довольно важен, поскольку все работа таких систем сводится к постоянной обработке данных, получаемых от пользователя. Однако, существует еще один важный аспект разработки, специфичный для интерпретируемых скриптовых языков программирования – это переносимость.
Действительно, приложения, написанные на PHP поставляются в виде исходных кодов, а не исполняемых бинарных файлов (даже закодированные Zend-encoder’ом скрипты, с точки зрения алгоритма обработки не сильно отличаются от исполнения «голого» PHP-кода). Зачастую, разработчик не может знать, и предполагать, какие настройки интерпретатора будут на сервере, на котором будет запущен проект. По этому, в своей разработке программист должен учесть максимальное число нестандартных настроек и сделать так, что бы случайное их несовпадение не превращало в каторгу устранение проявившихся ошибок.

Ниже будут описаны основные наиболее часто встречающиеся проблемы, связанные с переносимостью систем, однако, раньше хочется обратить внимание на один важный момент: Можно идеально знать, про все возможные проблемы и особенности систем. Можно идеально проектировать программирование. Но нельзя забывать про такой важный момент как стиль оформления кода.

  1. register_globals
  2. magic_quotes, slashes & magic_quotes_sybase
  3. <?php; <?; <%
  4. Файловая система - запуск внешних программ и чтение файлов
  5. ISAPI vs CGI: .htaccess
  6. Работа с файлами и safe mode

Чего еще?
З.Ы. Писать начну позже, пока надо нормально систематизировать

Powered by POEM™ Engine Copyright © 2002-2005