Глава 8
Повторное использование кода в сценариях РНР
В этой главе...
| › |
Включение файлов в сценарии |
| › |
Вопросы безопасности, связанные с включением файлов |
| › |
Создание функций |
| › |
Использование функций |
Зачастую одни и те же действия необходимо выполнить в разных частях сценария. Например, нужно несколько раз получить информацию из базы данных. Или можно
представить себе ситуацию, когда один и тот же код используется в разных файлах. Если окажется, что время от времени вы набираете одни и те же десять строк кода (постоянно выделяя и копируя их), то лучше поместить их в отдельный файл и использовать, когда того потребует ситуация. Можно выделить следующие преимущества такого подхода.
| |
|
|
Меньше работы — это всегда стимулирует. |
Отладка осуществляется один раз. Можно написать код один раз, проверить его работоспособность, а затем использовать столько, сколько потребуется. Редко удается сразу переписать код без каких-либо опечаток, не говор я уже о том, чтобы написать новый. Его всегда нужно проверять. Поэтому использование готового проверенного кода позволяет сэкономить много времени |
| |
|
|
Простота понимания. Чем меньше кода, тем более простым и читаемым является сценарий. Например, одну строку кода, содержащую функцию get -Data(), проще понять, чем, скажем, десять срок, которые реально используются для получения данных. |
| |
|
|
Простота поддержки. Если необходимо внести какие-то изменения в сценарий, то при повторном использовании кода их нужно будет внести всего один
раз во внешнем файле. В противном случае пришлось бы искать нужный
фрагмент кода везде, где он используется, и изменять его оответствующим
образом. Например, если поменяется имя базы данных, то куда практичней
будет внести изменения один раз в одном файле, чем во всех частях, где используется ее имя. |
В языке РНР существуют два варианта повторного использования кода: с помощью включения файла в сценарий или путем использования функций. В данной главе будут рассмотрены оба этих подхода.
Включение кода в сценарий
Можно создать отдельный файл, состоящий из нужного количества строк кода, и включить его в исходный сценарий там, где это нужно. Для этого в РНР предназначена функция include.
Включение файлов
Предположим, что вы создаете интерактивный каталог товаров и что ваше приложение содержит большое количество страниц, отражающих его содержимое. Размеры изображений (ширина и высота) можно задать как константы, а затем использовать их в дескрипторах HTML для вывода изображений. Таким образом, все картинки будут одинакового размера.
Впоследствии можно изменять размеры изображений путем простой замены значений констант. При этом отпадает необходимость вносить изменения в каждый дескриптор
<img> сценария. Создать константы можно следующим образом:
define("HEIGHT", 60);
define("WIDTH", 60);
Затем их можно использовать в HTML-дескрипторах:
<img src="mypic.jpg" height="<?php echo HEIGHT?>"
width="<?php echo WIDTH?>" />;
Если изображения товаров выводятся в разных файлах сценария, нет необходимости
в каждом из них размещать определения констант. Константы можно объявить в одном файле, например size.inc (это расширение обычно используется для файлов включения), а затем включать его в сценарий там, где это будет нужно:
<?php
define("HEIGHT", 60);
define("WIDTH", 60);
?>
Теперь для включения файла следует воспользоваться выражением
include("size.inc") ;
<? include("size.inc") ; ?>
<img src="mypic.jpg" height="<?php echo HEIGHT?>"
width="<?php echo WIDTH?>" |
include("testpages/size.inc") ; ?>
 | |