Основы загрузки 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 в ваши скрипты. Если это более одноточечная запись, вы можете настроить сервер для фильтрации всех запросов на него и отправить его соответствующим сценариям диспетчера.