Фронт-контроллер - это единая точка входа для вашего приложения.

Для начала создайте пустую папку под свой проект. Вам также понадобится точка входа, куда будут направляться все запросы. Это означает, что вам следует создать файл index.php

Распространенный способ для этого - помещать index.php в корневую папку каждого проекта. Таким же образом поступают некоторые фреймворки. Позвольте мне объяснить, почему вам так делать не стоит.

index.php - это стартовая точка, которая должна находиться внутри веб-директории (публичной папки домена), что значит доступность для веб-сервера всех ее поддиректорий. Если вы все настроили правильно, то можете предотвратить доступ к поддиректориям, где лежат файлы приложения.

Однако иногда не все идет по плану. И если что-то пойдет не так, а ваши файлы размещены как описано выше, весь код вашего приложения может быть выставлен посетителям. Нет необходимости объяснять, почему это нехорошо.

Вместо этого, создайте подпапку public в своем проекте для доступа веб-сервера только к ней. А для файлов приложения папку src также в корне проекта.

Внутрь папки public вы уже можете поместить свой index.php. Помните, что в нем вы ничего не хотите раскрывать, поэтому вставьте в него только такой код:

<?php declare(strict_types = 1); 

require __DIR__ . '/../src/Bootstrap.php';

Волшебная константа __DIR__ содержит путь к текущей директории. Используя ее, вы можете быть уверены, что require всегда задействует корректный относительный путь. В противном случае, поместив index.php в другую папку и обратившись к нему, требуемый файл Bootstrap.php найден не будет.

declare(strict_types = 1); устанавливает строгую типизацию для конкретного файла. В данном руководстве мы будем делать это для всех PHP-файлов. Это означает, что вы не сможете просто указать в качестве параметра метода, например, цифру, если он требует строку. Когда не используется строгая типизация, происходит автоматическое преобразование в нужный тип. Со строгой типизацией в случае неправильного типа будет сгенерировано исключение.

Файл Bootstrap.php свяжет ваше приложение воедино. Мы скоро им займемся.

Остальная часть папки public предназначена для ваших публичных ресурсов (таких как файлы JavaScript, таблиц стилей и т.д.)

Теперь перейдите в папку src и создайте файл Bootstrap.php с таким содержимым:

<?php declare(strict_types = 1);

echo 'Hello World!';

Давайте-ка проверим, все ли корректно. Откройте консоль и зайдите в папку public. Затем введите php -S localhost:8000 и нажмите enter. Это запустит встроенный веб-сервер, и вы сможете открыть свою страницу в браузере через http://localhost:8000 В итоге должна появиться надпись hello world

Если возникла ошибка, вернитесь в редактор и попробуйте исправить. Если видите лишь пустую страницу, вернитесь в консоль и там проверьте на ошибки.

А сейчас можно было бы закрепить прогресс. Если вы еще не используете Git, создайте репозиторий. Поскольку это не туториал по Git, я не буду вдаваться в детали. Однако использование контроля версий должно стать привычкой, даже для учебных проектов типа этого.

Некоторые редакторы и IDE помещают свои собственные файлы в ваши папки для проектов. Если подобное имеет место, создайте файл .gitignore в корне своего проекта и исключите лишние файлы и директории. Ниже пример для PHPStorm:

.idea/

Источник

Наверх