Інструкції зі встановлення
Перш ніж встановити 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/ # bootstrap, маршрути, сервіси, 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.
Документація ↔ скелет: Ця документація навчає API Flight (часто з короткими прикладами
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 вже встановлено у вашій системі. Якщо ні, загугліть, як встановити Apache у вашій системі.
Для Apache відредагуйте ваш файл .htaccess наступним чином:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]Примітка: Якщо вам потрібно використовувати flight у піддиректорії, додайте рядок
RewriteBase /subdir/одразу післяRewriteEngine On.
Примітка: Якщо ви хочете захистити всі серверні файли, наприклад файл бази даних або
.env. Помістіть це у ваш файл.htaccess:
RewriteEngine On
RewriteRule ^(.*)$ index.phpNginx
Переконайтеся, що Nginx вже встановлено у вашій системі. Якщо ні, загугліть, як встановити 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
Якщо у вашій системі вже встановлено php, можете пропустити ці інструкції та перейти до розділу завантаження
macOS
Встановлення PHP за допомогою Homebrew
-
Встановіть Homebrew (якщо ще не встановлено):
- Відкрийте Terminal і виконайте:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Відкрийте Terminal і виконайте:
-
Встановіть 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:
- Перейдіть до System Properties > Environment Variables.
- У розділі System variables знайдіть Path і натисніть Edit.
- Додайте шлях
C:\php(або куди ви розпакували PHP). - Натисніть OK, щоб закрити всі вікна.
-
Налаштуйте PHP:
- Скопіюйте
php.ini-developmentуphp.ini. - Відредагуйте
php.ini, щоб налаштувати PHP за потреби (наприклад, встановитиextension_dir, увімкнути розширення).
- Скопіюйте
-
Перевірте встановлення PHP:
- Відкрийте Command Prompt і виконайте:
php -v
- Відкрийте Command Prompt і виконайте:
Встановлення кількох версій PHP
-
Повторіть наведені вище кроки для кожної версії, розміщуючи кожну в окремій директорії (наприклад,
C:\php7,C:\php8). -
Перемикайтеся між версіями, змінюючи системну змінну PATH, щоб вказувати на бажану директорію версії.
Ubuntu (20.04, 22.04 тощо)
Встановлення PHP за допомогою apt
-
Оновіть списки пакетів:
- Відкрийте Terminal і виконайте:
sudo apt update
- Відкрийте Terminal і виконайте:
-
Встановіть 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:
- Відкрийте Terminal і виконайте:
sudo dnf install epel-release
- Відкрийте Terminal і виконайте:
-
Встановіть сховище 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 або оновлення конфігурацій, щоб застосувати зміни.