Инструкции по установке
Перед установкой Flight необходимо выполнить несколько базовых предварительных требований. А именно, вам понадобится:
- Установите PHP на вашей системе
- Установите Composer для лучшего опыта разработчика.
Базовая установка
Если вы используете Composer, вы можете выполнить следующую команду:
composer require flightphp/coreЭто добавит на вашу систему только основные файлы Flight. Вам нужно будет самостоятельно определить структуру проекта, макет, зависимости, конфигурации, автозагрузку и т.д. Этот метод гарантирует, что никакие другие зависимости, кроме Flight, установлены не будут.
Вы также можете скачать файлы напрямую и распаковать их в вашу веб-директорию.
Базовая установка отлично подходит для обучения, микросервисных API и экспериментов с копированием и вставкой. Для полной структуры приложения, которой одинаково легко будут следовать люди и AI-инструменты для кодирования, используйте рекомендуемый скелет ниже.
Рекомендуемая установка
Настоятельно рекомендуется начинать любой новый проект с приложения flightphp/skeleton. Установка проста как ветерок.
composer create-project flightphp/skeleton my-project/
cd my-project/
composer start
# необязательная демо БД + посты
php runway migrateЭтот шаг настраивает структуру проекта, автозагрузку Composer PSR-4, конфигурацию и такие инструменты, как Tracy, Tracy Extensions и Runway. Он также включает корневой файл AGENTS.md (и локальные копии в app/), чтобы AI-ассистенты работали с той же структурой, что и вы — см. AI и опыт разработчика.
Что даёт скелет
project-root/
├── AGENTS.md # источник истины для AI / агентов
├── SECURITY.md # ожидания по безопасности
├── .env.example # секреты / оверлеи деплоя (копируется в .env)
├── public/index.php # только веб-вход
├── app/
│ ├── config/ # загрузка, маршруты, сервисы, config_sample.php
│ ├── Controller/ # App\Controller\* (папка в PascalCase!)
│ ├── Middleware/ # App\Middleware\*
│ ├── Model/ # App\Model\* (ActiveRecord)
│ ├── Utils/ # Config, Env, DatabaseFactory
│ ├── commands/ # команды CLI Runway
│ ├── views/ # шаблоны Twig (*.twig)
│ ├── cache/
│ └── log/
├── migrations/ # SQL-миграции (.sql / .mysql.sql)
└── tests/ # PHPUnitПространства имён соответствуют регистру папок. Composer сопоставляет "App\\": "app/", поэтому:
| Путь на диске | Пространство имён |
|---|---|
app/Controller/HomeController.php |
App\Controller\HomeController |
app/Middleware/… |
App\Middleware\… |
app/Model/… |
App\Model\… |
app/Utils/… |
App\Utils\… |
В Linux app/controller/ не то же самое, что app/Controller/. Автозагрузка чувствительна к регистру — используйте папки в PascalCase, как в скелете. Подробнее: Автозагрузка.
Стандартный стек (новые проекты): представления Twig, SimplePdo + ActiveRecord, Dice с внедрением Engine (предпочтительно без Flight:: внутри классов приложения), опционально SQLite после php runway migrate.
create-project обычно копирует app/config/config_sample.php → config.php и .env.example → .env, если они присутствуют. Маршруты находятся в app/config/routes.php; сервисы и DI — в app/config/services.php.
Документация ↔ скелет: Эта документация описывает Flight API (часто с короткими примерами
Flight::). Скелет определяет структуру приложения. При добавлении кода вapp/следуйте структуре скелета; используйте документацию для названий методов, опций и плагинов.
Настройка вашего веб-сервера
Встроенный веб-сервер PHP
Это самый простой способ начать работу. Вы можете использовать встроенный сервер для запуска вашего приложения и даже использовать SQLite в качестве базы данных (при условии, что sqlite3 установлен в вашей системе), и почти ничего больше не потребуется! Просто выполните следующую команду после установки PHP:
php -S localhost:8000
# или с приложением-скелетом
composer startЗатем откройте браузер и перейдите по адресу http://localhost:8000.
Если вы хотите сделать корневую директорию вашего проекта иной (например, ваш проект находится в ~/myproject, а корневая директория — ~/myproject/public/), вы можете выполнить следующую команду, находясь в директории ~/myproject:
php -S localhost:8000 -t public/
# в приложении-скелете это уже настроено
composer startЗатем откройте браузер и перейдите по адресу http://localhost:8000.
Apache
Убедитесь, что Apache уже установлен в вашей системе. Если нет, поищите в Google, как установить Apache в вашей системе.
Для Apache отредактируйте ваш файл .htaccess, добавив следующее:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]Примечание: Если вам нужно использовать Flight в поддиректории, добавьте строку
RewriteBase /subdir/сразу послеRewriteEngine On.
Примечание: Если вы хотите защитить все серверные файлы, например, файл базы данных или файл окружения, добавьте это в ваш файл
.htaccess:
RewriteEngine On
RewriteRule ^(.*)$ index.phpNginx
Убедитесь, что Nginx уже установлен в вашей системе. Если нет, поищите в Google, как установить Nginx в вашей системе.
Для Nginx добавьте следующее в объявление вашего сервера:
server {
location / {
try_files $uri $uri/ /index.php;
}
}Создайте ваш файл index.php
Если вы выполняете базовую установку, вам понадобится стартовый код.
<?php
// Если вы используете Composer, подключите автозагрузчик.
require 'vendor/autoload.php';
// если вы не используете Composer, загрузите фреймворк напрямую
// require 'flight/Flight.php';
// Затем определите маршрут и назначьте функцию для обработки запроса.
Flight::route('/', function () {
echo 'hello world!';
});
// Наконец, запустите фреймворк.
Flight::start();В приложении-скелете публичная точка входа только запускает приложение. Маршруты регистрируются в app/config/routes.php (обычно в виде [App\Controller\…::class, 'method'], чтобы Dice мог внедрять зависимости). Сервисы, Twig, SimplePdo и контейнер настраиваются в app/config/services.php. Такая структура выбрана осознанно, чтобы AI-инструменты и люди редактировали одни и те же места каждый раз.
Установка PHP {#installing-php}
Если в вашей системе уже установлен php, можно пропустить эти инструкции и перейти к разделу загрузки
macOS
Установка PHP с помощью Homebrew
-
Установите Homebrew (если он ещё не установлен):
- Откройте Терминал и выполните:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Откройте Терминал и выполните:
-
Установите PHP:
- Установите последнюю версию:
brew install php - Чтобы установить конкретную версию, например, PHP 8.1:
brew tap shivammathur/php brew install shivammathur/php/php@8.1
- Установите последнюю версию:
-
Переключение между версиями PHP:
- Отвяжите текущую версию и привяжите нужную:
brew unlink php brew link --overwrite --force php@8.1 - Проверьте установленную версию:
php -v
- Отвяжите текущую версию и привяжите нужную:
Windows 10/11
Установка PHP вручную
-
Загрузите PHP:
- Посетите PHP для Windows и загрузите последнюю или конкретную версию (например, 7.4, 8.0) в виде zip-файла для не многопоточной (Non-Thread-Safe) сборки.
-
Распакуйте PHP:
- Извлеките загруженный zip-файл в
C:\php.
- Извлеките загруженный zip-файл в
-
Добавьте PHP в системный PATH:
- Перейдите в Свойства системы > Переменные среды.
- В разделе Системные переменные найдите Path и нажмите Изменить.
- Добавьте путь
C:\php(или туда, куда вы извлекли PHP). - Нажмите ОК, чтобы закрыть все окна.
-
Настройте PHP:
- Скопируйте
php.ini-developmentвphp.ini. - Отредактируйте
php.iniдля настройки PHP по необходимости (например, укажитеextension_dir, включите расширения).
- Скопируйте
-
Проверьте установку PHP:
- Откройте командную строку и выполните:
php -v
- Откройте командную строку и выполните:
Установка нескольких версий PHP
-
Повторите описанные выше шаги для каждой версии, помещая каждую в отдельную директорию (например,
C:\php7,C:\php8). -
Переключайтесь между версиями, изменяя системную переменную PATH, чтобы она указывала на директорию нужной версии.
Ubuntu (20.04, 22.04, etc.)
Установка PHP с помощью apt
-
Обновите списки пакетов:
- Откройте Терминал и выполните:
sudo apt update
- Откройте Терминал и выполните:
-
Установите PHP:
- Установите последнюю версию PHP:
sudo apt install php - Чтобы установить конкретную версию, например, PHP 8.1:
sudo apt install php8.1
- Установите последнюю версию PHP:
-
Установите дополнительные модули (необязательно):
- Например, для поддержки MySQL:
sudo apt install php8.1-mysql
- Например, для поддержки MySQL:
-
Переключение между версиями PHP:
- Используйте
update-alternatives:sudo update-alternatives --set php /usr/bin/php8.1
- Используйте
-
Проверьте установленную версию:
- Выполните:
php -v
- Выполните:
Rocky Linux
Установка PHP с помощью yum/dnf
-
Включите репозиторий EPEL:
- Откройте Терминал и выполните:
sudo dnf install epel-release
- Откройте Терминал и выполните:
-
Установите репозиторий Remi:
- Выполните:
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm sudo dnf module reset php
- Выполните:
-
Установите PHP:
- Чтобы установить версию по умолчанию:
sudo dnf install php - Чтобы установить конкретную версию, например, PHP 7.4:
sudo dnf module install php:remi-7.4
- Чтобы установить версию по умолчанию:
-
Переключение между версиями PHP:
- Используйте команду модуля
dnf:sudo dnf module reset php sudo dnf module enable php:remi-8.0 sudo dnf install php
- Используйте команду модуля
-
Проверьте установленную версию:
- Выполните:
php -v
- Выполните:
Общие примечания
- Для сред разработки важно настраивать параметры PHP в соответствии с требованиями вашего проекта.
- При переключении версий PHP убедитесь, что для конкретной версии, которую вы собираетесь использовать, установлены все соответствующие расширения PHP.
- Перезапустите ваш веб-сервер (Apache, Nginx и т.д.) после переключения версий PHP или обновления конфигураций, чтобы изменения применились.