|
Переписываем стандартные функции Некоторые программисты рекомендуют переименовать стандартные функции, чтобы те, кто работает на Visual Basic смогли с легкостью перейти на язык PHP: <?php function len ($str) { return strlen ($str); } ?> Иногда встречаются и рекомендации о том, что если вы только начинаете работать с PHP, сначала нужно поменять имена имена встроенных функций на более привычные.
Но есть, по крайней мере, две причины не совершать этого. Во первых, у нас получится менее читаемый код. Для людей, которые будут просматривать ваш код, будет масса непонятных функций, и они удивятся тому, по какой причине вы не воспользовались стандартными функциями PHP. Да и в конце концов, это только уменьшит производительность программы. Проблема состоит не только в том, что будет обрабатываться большой объем кода, но и в том, что вызов таких пользовательских функций требует большего времени, нежели прямой вызов стандартных функций. Пользуйтесь стандартными функциями PHP!
Иногда это бывает трудным, т.к. программист редко располагает знанием всего набора функций – времени на их запоминание, как правило, - нету. Конечно же проще всего переименовать функции… Но еще раз повторяю, этого не следует делать из-за приведенных выше причин.
Неплохо было бы иметь в своем распоряжении справочник по функциям PHP (удобно пользоваться индексированной версией в PDF). И когда вам нужно написать какую-нибудь функцию, просто посмотреть внимательно, есть ли она в списке стандартных функций.
Следует также учесть, что в программных кодах можно встретить пользовательские функции, которые были написаны еще до того, как их ввели в качестве стандартных функций PHP (к примеру – функции сравнения двух массивов). Это совершенно не означает того, что их необходимо заменять на стандартные, ковыряясь лишний раз в коде.
16. Клиентская часть программы не отделяется от серверной части Множество программистов рекомендуют объединять PHP код (который выполняется сервером) с HTML кодом (интерпретируемого на клиентской стороне) в один большой файл.
Это скорее всего подходит для маленьких сайтов. Но в случае, когда ваш сайт начинает расти, для вас может стать проблемой необходимость добавления неких новых функций. Этот стиль программирования делает код громоздким и «непослушным». API функции
Если вы хотите отделить PHP от HTML кода, то есть несколько вариантов. Первый способ – это создание функции динамического формирования вывода и добавление ее в необходимое место вашей веб-страницы.
Пример: index.php - код страницы
<?php include_once ("site.lib"); ?> <html> <head> <title><?php print_header (); ?></title> </head> <body> <h1><?php print_header (); ?></h1> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td width="25%"> <?php print_links (); ?> </td> <td> <?php print_body (); ?> </td> </tr> </table> </body> </html>
site.lib - Сам код программы
<?php
$dbh = mysql_connect ("localhost", "sh", "pass") or die (sprintf ("Не могу открыть соединение с MySQL [%s]: %s", mysql_errno (), mysql_error ()));
@mysql_select_db ("MainSite") or die (sprintf ("Не могу выбрать базу данных [%s]: %s", mysql_errno (), mysql_error ()));
$sth = @mysql_query ("SELECT * FROM site", $dbh) or die (sprintf ("Не могу выполнить запрос [%s]: %s", mysql_errno (), mysql_error ()));
$site_info = mysql_fetch_object ($sth);
function print_header () { global $site_info; print $site_info->header; }
function print_body () { global $site_info; print nl2br ($site_info->body); }
function print_links () { global $site_info;
$links = explode ("\n", $site_info->links); $names = explode ("\n", $site_info->link_names);
for ($i = 0; $i < count ($links); $i++) { print "\t\t\t <a href=\"$links[$i]\">$names[$i]</a> \n<br>\n"; } } ?>
Вполне логично, что такой код будет более читаемым. Еще одним преимуществом такой концепции является возможность изменять дизайн без правки программного кода.
|