Основы загрузки PHP
Я пишу свое первое приложение PHP. Все говорят о наличии bootstrap.php
для инициализации вашего приложения. Это имеет смысл, и я собрал тот, которым я доволен. Я не понимаю две вещи, о которых никто не упоминает:
-
Где я могу позвонить из своего бункера? Включить ли я его на каждую страницу? Скажите, пожалуйста, лучший способ...
-
Как это сделать, чтобы мой бутстрап не вызывался чаще, чем нужно? Я предполагаю, что его нужно только вызывать либо в начале приложения, либо в начале нового сеанса.
Ответы
Ответ 1
1: Обычно загрузочный файл находится в каталоге "приложение". Он вызывается из "общедоступного" каталога, который находится на том же уровне, что и приложение (не внутри него). Index.php внутри общей папки должен содержать bootstrap.php, и именно там должен быть установлен ваш Document_Root (обратите внимание, что вам может потребоваться изменить/добавить некоторые включенные пути для его работы)
2: Он должен быть включен только один раз через файл index.php в общей папке. Просто включить его должно быть достаточно, если бы все было сделано правильно.
Надеюсь, что это поможет.
Ответ 2
Это зависит от архитектуры вашего приложения.
Если ваша архитектура - это старая старая "стая php-скриптов" - скрипты PHP, вызываемые непосредственно из браузера, - тогда вы будете включать ее вверху каждого script, так или иначе.
Большинство разработчиков (и фреймворков) в эти дни каждый раз направляют свои запросы через /index.php, как правило, с некоторыми переписывания URL-адресов, чтобы сделать приятные, красивые URL-адреса для пользователей.
В этот день и возраст вы, вероятно, должны делать последнее или, по крайней мере, думать об этом. Это приводит к гораздо лучшей организации и, что еще более важно, позволяет сохранить весь свой код за пределами корня документа веб-сервера, что является хорошей практикой безопасности по нескольким причинам, выходящим за рамки этого ответа.
Ответ 3
Посмотрите на singleton pattern. Вы можете удвоить свой класс начальной загрузки в качестве контейнера ресурсов, например:
$bootstrap = Bootstrap::getInstance();
$dbConn = $bootstrap->getPdoDbh();
Вы можете include
или require
файл, или использовать автозагрузчик, и убедитесь, что у вас есть вызов для создания объекта на всех ваших страницах. Возможно, вы даже можете позвонить в getInstance()
в нижней части файла после определения класса.
Или вы можете использовать маршрутизацию на основе URL-адресов и иметь все ваши запросы через один файл index.php, как это делает Zend Framework. Или еще лучше, используйте Zend Framework.
В этом ответе предполагается, что вы выполняете OOP с PHP >= 5, и это действительно так.
Ответ 4
это зависит от того, что делает ваш файл bootstrap. Если это просто файл, который устанавливает некоторые параметры ini и т.д., Чтобы создать нормальную среду выполнения и установить соединение с базой данных, достаточно просто включить его с require_once в ваши скрипты. Если это более одноточечная запись, вы можете настроить сервер для фильтрации всех запросов на него и отправить его соответствующим сценариям диспетчера.