Версия для печати

-   Объединенный Открытый Проект
--  Документация по XPDK /index.php?f=94
--- Модульный принцип и выполнение действий в XPDK /index.php?t=1170



Автор статьи: XXXX Pro
Первоисточник:


Практически все современные достаточно круп­ные программы пишутся по модульному принципу. Его использование позво­ляет во-первых, добиться лучшей организации кода, во вторых, уменьшить за­траты времени на обработку PHP-скрипта сервером, а в третьих – использование модульного принципа существенно облегчает разделение труда при работе команды разработчиков. Соответственно, возникает вопрос: как именно указывать, какой модуль следует подключить.
В XPDK эта проблема может быть решена двумя способами: простое решение – это указывать нужный модуль через переменную m в параметрах запроса. Но такое решение накладывает достаточно жесткие ограничения на расположение файлов программы: все модули должны храниться в том же самом каталоге, что и основной выполняемый файл, так как переменная m фильтруется средствами самого XPDK на наличие символов / . \ для избежания include-bugs, а все вспомогательные файлы (например, конфигурационные) – в подкаталогах.
Второй вариант - подключение модулей выполняется разработчиком программы самостоятельно в основном скрипте. Это снимает все ограничения, но при этом желательно выполнять функцию unset на $_GET['m'] и $_POST['m'].

Все конкретные действия выполняемые скриптами в XPDK-программах следует реализовывать в виде отдельных функций. Имя вызываемой функции передается в XPDK через переменную a, после чего осуществляется вызов соответствующей функции с помощью call_user_func. При этом такие функции не должны иметь параметров, так как call_user_func не указывает каких-либо параметров при вызове из соображений безопасности. (В следующих версиях XPDK для еще большей надежности будет реализована проверка, где именно определена данная функция.) Важным моментом является то, что обработка формы производится той же функцией, что и ее генерация (проверка того, что именно требуется сделать - генерацию или обработку, рекомендуется производить с помощью функции is_submitted).



2001-2008, 4X_Pro, Объединенный Открытый Проект.
При использовании материалов сайта ссылка на первоисточник обязательна.
Если первоисточник не указан явно, им следует считать Объединенный Открытый Проект.
Этот форум работает на скрипте Intellect Board
© 2004-2007, XXXX Pro, Объединенный Открытый Проект http://intboard.ru