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