Многократное использование кода и создание функций

Многократное использование кода

Одной из целей, к которой стремятся разработчики программного обеспечения является повторное использование кода вместо создания нового кода. Это связано вовсе не с тем, что разработчики программного обеспечения отличаются особой ленью. Повторное использование существующего кода снижает стоимость, повышает надежность и единообразие программ. В идеале новый проект создается путем объединения существующих пригодных для повторного использования компонентов при минимальном объеме разработки с нуля.

Стоимость

В течение эффективного срока службы какой-либо части программного обеспечения поддержка, модифицирование, тестирование и документирование будут занимать значительно больше времени, чем ее первоначальное создание. При создании коммерческой программы следует попытаться ограничить количество ее вариантов, характерных для конкретной организации. Один из наиболее практичных способов достижения этой цели — повторное использование существующего кода вместо создания несколько иной версии этого же кода для выполнения новой задачи. Меньший объем кода означает меньшую стоимость. Если уже существует программное обеспечение, которое отвечает требованиям нового проекта, следует использовать его. Стоимость приобретения существующего программного обеспечения почти всегда меньше стоимости разработки эквивалентной программы. Тем не менее, к использованию существующего программного обеспечения, которое почти соответствует предъявляемым требованиям, следует подходить обдуманно. Иногда модификация существующего кода может оказаться труднее создания нового.

Надежность

Если программный модуль используется в той или иной организации, вероятно, он был тщательно протестирован. Даже если он состоит всего из нескольких строк, при его изменении существует вероятность пропустить что-либо, предусмотренное автором кода или добавленное в первоначальный код после выявления недостатков во время тестирования. Как правило, существующий, проверенный код более надежен, чем новый.

Единообразие

Внешние интерфейсы системы, включая пользовательские интерфейсы и интерфейсы внешних систем, должны быть единообразными. Создание нового кода, который согласован с остальными частями системы, требует целеустремленности и продуманных усилий. При повторном использовании кода, который применяется в другой части системы, единообразие функционирования должно обеспечиваться автоматически.

Кроме этих преимуществ, повторное использование кода означает меньший объем работы для разработчика, по крайней мере, если исходный код имеет модульную структуру и хорошо продуман. В ходе работы над программами старайтесь определить те разделы кода, к которым можно будет снова обращаться в будущем.

Использование операторов require () и include ()

PHP предоставляет в распоряжение программиста два простых, но очень полезных оператора, которые позволяют повторно использовать любой тип кода. Используя операторы require() и include(),можно загружать файл в PHP-сценарий. Файл может содержать все, что обычно вводится в сценарий, включая PHP-операторы, текст, HTML-дескрипторы, РНР-функции или РНР-классы.

require ()

В файле c именем 32.php хранится следующий код:

<?php
echo 'Это очень простой РНР-оператор.<br>';
?>

А в файле с именем 33.php содержит такой код:

<?php
echo 'Это главный файл.<br>';
require ('32.php');
echo 'Этот сценарий завершен. <br>';
?>

В окне веб-браузера это будет выглядеть ТАК.

Чтобы можно было использовать оператор require (), необходим файл. В этом примере использовался файл 32.php. При выполнении этого сцерария опрератор require ()

require ('32.php');

заменяется содержимым запрашиваемого файла, после чего сценарий выполняется. Это значит, что загруженный файл 33.php выполняется так, как если бы сценарий имел следующий вид:

<?php
echo 'Это главный файл.<br>';
echo 'Это очень простой РНР-оператор.<br>';
echo 'Этот сценарий завершен. <br>';
?>

При использовании оператора require () следует обратить внимание на различия в обработке расширений имен файлов и РНР-дескрипторов.

Расширения имен файлов и оператор requere ()

РНР не обращает внимания на расширение имени запрашиваемого файла. Следовательно, файл можно называть как угодно, если только он не будет вызываться непосредственно. При использовании оператора require() для загрузки файла, файл фактически становится частью PHP-файла и будет выполняться как таковой.

Обычно PHP-операторы не должны выполняться, если они находятся в файле, названном, например, page.html. Как правило, РНР вызывается только для анализа файлов с определенными расширениями, такими как .php. Однако если загрузить файл page.html через оператор require (), любые хранящиеся внутри него PHP-операторы будут обработаны. Следовательно, для включенных файлов можно использовать любые расширения, однако имеет смысл придерживаться практичного соглашения и использовать расширения наподобие .inc.

При этом следует иметь в виду, что если файлы, имеющие расширение .inc или какое-либо другое нестандартное расширение, сохраняются в дереве документов Web, и пользователи непосредственно загружают их в браузеры, они смогут просмотреть код в виде простого текста, что распространяется и на любые пароли. Поэтому важно либо хранить включаемые файлы вне дерева документов, либо использовать стандартные расширения.

РНР-дескрипторы и оператор require ()

В рассматриваемом примере повторно используемый файл 32.php состоит из следующей записи:

<?php
echo 'Это очень простой РНР-оператор.<br>';
?>

РНР-код размещен внутри РНР-дескрипторов. Это нужно делать, если вы хотите, РНР-код внутри запрошенного выми файла обрабатывался именно как РНР-код. Если не открывать РНР-дескриптор, РНР будет рассматривать этот код просто как текст или HTML-код и выполнять его не будет.

назадвверхвперед
Rambler's Top100