можешь поискать любой PSR на русском
например PSR-0
принципы те же но с небольшим отличием
но это только выглядит как умный стандарт
на самом деле все очень просто
Ааа, ну ок)
LIME пишет:
PHP шагнул в ООП целиком и бесповоротно
придется осваивать иначе никак
Не не, я не против ООП=) Просто пишу приложение в учебных целях. И хочу для лучшего понимания сначала написать полностью процедурно. Затем это же переписать на ООП
Проверять, что $module присвоено одно из допустимых значений:
<?
...
$module = $_GET['module'];
$arr = array('main', 'about', 'links', 'forum');
if (!in_array($module,$arr)) $module = $arr[0];
include $module . '.php';
...
?> Этот способ является более эффективным, красивым и аккуратным.
Я тоже к такому варианту склонялся. Сканировать папку modules, собрать имена подпапок в массив, проверять вхождение в этот массив $module . Но наверно более долгая операция, т.к. + обращение к файл. системе. Хотя хз
Есть папка 'modules'. В ней подпапки модулей 'myModule1/' , 'myModule2/', etc. В зависимости от параметра $_GET['module'] загружается соответствующий модуль. Имя параметра - совпадает с папкой модуля.
Писать просто include 'modules/'.$module.'/index.php'; Как я понимаю не безопасно. Верно?
1) Вариантов подключения с валидацией - в принципе много. Вопрос - как сами реализуете подобное?
2) Стеснялся задать тупой вопрос=) Но все же, для параноика.. Каким образом работают ф-ии/языковые конструкции в РНР? Т.е. здесь - include 'modules/'.$module.'/index.php' Мне нужно беспокоится только за тот случай, если в качестве строки $module окажется путь к другому файлу, так? А если $module будет содержать строку произвольного РНР кода, есть ли вероятность что он здесь выполнится? В include, или напр в ф-ии file_exists('modules/'.$module.'/index.php') ? Напр. $module = "myfile.php'; <тут какой-то вредоносный код>";
Каков принцип работы плейсхолдеров? Я понимаю, если происходит подстановка строковых параметров. Тогда, да, как понимаю, там этот параметр, вылижут, отэкранируют, проверят, и пр. Со строковыми параметрами - безусловно удобнее.
Каков принцип работы плейсхолдеров? Я понимаю, если происходит подстановка строковых параметров. Тогда, да, как понимаю, там этот параметр, вылижут, отэкранируют, проверят, и пр. Со строковыми параметрами - безусловно удобнее.
Ок, thanks. А выигрыш в скорости происходит только в рамках одного http-запроса? Т.е.: перешли по УРЛ(сделали http-запрос), далее при выполнении php, произошла подготовка SQL запроса (prepare); теперь (в рамках этого же http-запроса) делаем неск-ко execute() например в цикле. Вопрос: выигрываем по скорости только в рамках этого запроса? А если мы стали ходить, по страницам товаров, например (другие http-запросы), где меняется только $item_id в "WHERE id=$item_id" - мы не получаем выигрыша по скорости в этом случае? (там же вроде как кешируется шаблон SQL запроса на стороне СУБД)
Подскажите плиз, что в подобных запросах рациональнее использовать(что будет быстрее работать)? Делать такие запросы в PDO с prepare, либо делать их напрямую ->query() ?