Увімкнення високопродуктивного модуля Phalcon PHP Framework в ServBay
ServBay — це потужне локальне середовище веб-розробки, спеціально створене для розробників, з інтеграцією багатьох популярних стеків технологій. Для PHP-розробників ServBay попередньо містить високопродуктивний модуль фреймворку Phalcon та пропонує надзвичайно простий спосіб його активації. Phalcon — це PHP-фреймворк, відомий своєю швидкістю й ефективністю, а його модульна архітектура допомагає створювати високопродуктивні веб-застосунки.
Короткий огляд фреймворка Phalcon
Phalcon — це відкритий, повнофункціональний PHP-фреймворк, який вирізняється винятковою швидкістю та мінімальним споживанням ресурсів. На відміну від більшості фреймворків, реалізованих чисто на PHP, Phalcon написаний на C і підключається до PHP як розширення. Ця унікальна архітектура надає Phalcon значну перевагу в продуктивності, а також розширений та потужний функціонал.
Основні переваги
- Висока продуктивність: Оскільки Phalcon працює як розширення на C рівні, він значно швидший за типові PHP-фреймворки та споживає менше пам’яті й процесорних ресурсів при обробці запитів.
- Мінімальне навантаження: Оптимізована архітектура фреймворку дозволяє ефективно обробляти велику кількість паралельних запитів без втрат продуктивності.
- Багатий функціонал: Phalcon підтримує повну архітектуру MVC (Model-View-Controller), потужний ORM (об’єктно-реляційне відображення), шаблонізатор, гнучку маршрутизацію, кешування, сервіс черг та інше — все для складних задач веб-розробки.
- Простота використання: Хоча ядро написано на C, розробка додатків здійснюється у звичному PHP-стилі. Чітке API та широка документація полегшують знайомство та роботу з фреймворком.
- Модульна архітектура: Комплектуючі Phalcon сильно розділені й модульні — можна використовувати лише потрібні частини або замінювати компоненти на власні.
Попередньо встановлені версії модуля Phalcon у ServBay
ServBay підтримує декілька актуальних версій PHP, для кожної з яких попередньо інтегрований відповідний модуль Phalcon. ServBay регулярно оновлює підтримувані версії PHP та супровідні пакети, щоб завжди бути актуальним із новинками технологій. Зазвичай версії Phalcon, які інтегруються, повністю сумісні з відповідними версіями PHP. Актуальну інформацію можна переглянути у менеджері пакетів ServBay. Нижче наведено відповідність поширених версій PHP та Phalcon (в ServBay може бути більше або новіших комбінацій):
- PHP 5.6, 7.0, 7.1: Phalcon 3.4.5
- PHP 7.2, 7.3, 7.4: Phalcon 4.1.2
- PHP 8.0, 8.1, 8.2, 8.3: Phalcon 5.7.0
- PHP 8.4, 8.5-dev: Phalcon 5.8.0
Як увімкнути модуль Phalcon
Активація Phalcon у ServBay — це дуже інтуїтивний процес. Для збереження легкості середовища модуль Phalcon за замовчуванням може бути вимкнений. Для його увімкнення достатньо кількох кліків у графічному інтерфейсі ServBay.
Рекомендований спосіб: через графічний інтерфейс ServBay
Це найзручніший і найпростіший спосіб:
- Відкрийте додаток ServBay.
- Перейдіть у лівому меню до пункту Мови (Languages).
- В переліку пакетів знайдіть і виберіть версію PHP, для якої потрібно увімкнути Phalcon, наприклад,
PHP 8.3
чиPHP 8.4
. - Натисніть кнопку Розширення (Extensions) справа від обраної версії PHP.
- У вікні зі списком розширень знайдіть модуль Phalcon.
- Переведіть перемикач ліворуч від Phalcon у активний стан.
- Натисніть Зберегти (Save) внизу вікна.
- ServBay запропонує перезапустити відповідну службу PHP для застосування змін. Підтвердіть і перезапустіть.
Після перезапуску модуль Phalcon буде активовано для обраної версії PHP.
Ручне редагування конфігурації (для досвідчених користувачів)
Користувачі, які потребують автоматизації налаштувань або розширеного дебагу, можуть активувати Phalcon, змінивши конфігураційні файли PHP вручну.
Крок 1: Знайдіть файл конфігурації
Необхідно знайти папку conf.d
для потрібної версії PHP — саме тут містяться налаштування розширень. Наприклад, для PHP 8.3 шлях виглядає так:
bash
/Applications/ServBay/etc/php/8.3/conf.d/phalcon.ini
1
Відкрийте цей файл у текстовому редакторі.
Крок 2: Відредагуйте налаштування Phalcon
Знайдіть такий рядок і заберіть крапку з комою ;
перед extension = phalcon.so
, щоби розкоментувати й активувати розширення:
ini
[Phalcon]
; Uncomment the following line to enable Phalcon
extension = phalcon.so
1
2
3
2
3
Має стати:
ini
[Phalcon]
extension = phalcon.so
1
2
2
Крок 3: Активація модуля PSR (тільки для PHP 7.2 – PHP 7.4)
Увага: якщо ви активували через графічний інтерфейс ServBay — цей крок пропустіть.
Для версій PHP 7.2–7.4 фреймворк Phalcon вимагає розширення PSR (PHP Standards Recommendations). ServBay вже містить цей модуль, треба лише впевнитися, що він включений. У файлі phalcon.ini
або у відповідному psr.ini
переконайтесь, що наступне розкоментовано:
ini
; Uncomment both Psr & Phalcon to enable Phalcon
[Psr]
extension = psr.so
[Phalcon]
extension = phalcon.so
1
2
3
4
5
6
2
3
4
5
6
Крок 4: Перезапустіть службу PHP
Після зміни налаштувань, незалежно від способу — потрібно обов’язково перезапустити відповідну службу PHP.
У головному вікні ServBay чи на вкладці Пакети (Packages) знайдіть модифіковану версію PHP і натисніть кнопку перезапуску (зазвичай це іконка з круговою стрілкою).
Перевірка, чи завантажений модуль Phalcon
Найпростіше перевірити завантаження Phalcon через інформаційну сторінку PHP (phpinfo()
).
- Створіть у кореневій папці сайту, налаштованого у ServBay, файл з назвою
phpinfo.php
. Наприклад, для сайтуservbay.demo
шлях буде/Applications/ServBay/www/servbay.demo/phpinfo.php
. - Додайте до цього файлу такий код:php
<?php phpinfo(); ?>
1
2
3 - Відкрийте у браузері URL, що відповідає вашому сайту, наприклад:
https://servbay.demo/phpinfo.php
. - На сторінці знайдіть секцію "Phalcon". Якщо бачите параметри Phalcon, його версію тощо — модуль підключений успішно.
Мал.: Знайдіть інформацію про Phalcon у phpinfo
Приклад використання
Після активації модуля Phalcon ви можете розробляти застосунки на його базі у ServBay. Нижче наведено простий приклад створення базового Phalcon-проекту, що працює у середовищі ServBay.
Припустимо, проект буде розміщено у папці /Applications/ServBay/www/phalcon-demo
.
Крок 1: Створіть структуру проєкту
Відповідно до рекомендацій Phalcon організуйте таку структуру папок і файлів:
/Applications/ServBay/www/phalcon-demo/
├── app/
│ ├── controllers/
│ │ └── IndexController.php
│ └── views/
│ └── index/
│ └── index.phtml
└── public/
└── index.php
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Крок 2: Створіть сайт ServBay
У ServBay додайте новий сайт (Website), вкажіть домен phalcon-demo.servbay.demo
, кореневий каталог сайту — public
у вашому проекті (/Applications/ServBay/www/phalcon-demo/public
). Переконайтеся, що сайт використовує PHP-версію з активованим Phalcon.
Крок 3: Напишіть приклад коду
Фронт-контролер:
public/index.php
Головний вхідний файл застосунку.php<?php use Phalcon\Autoload\Loader; use Phalcon\Di\FactoryDefault; use Phalcon\Mvc\View; use Phalcon\Mvc\Url; use Phalcon\Mvc\Application; // Визначення констант кореня проєкту та папки застосунку define('BASE_PATH', dirname(__DIR__)); // Вказує на /Applications/ServBay/www/phalcon-demo define('APP_PATH', BASE_PATH . '/app'); // Вказує на /Applications/ServBay/www/phalcon-demo/app // Реєстрація автозавантажувача для контролерів і моделей $loader = new Loader(); $loader->setDirectories( [ APP_PATH . '/controllers/', APP_PATH . '/models/', // Якщо будуть моделі — додайте папку ] ); $loader->register(); // Створення DI контейнера $container = new FactoryDefault(); // Реєстрація сервісу View у DI $container->set( 'view', function () { $view = new View(); $view->setViewsDir(APP_PATH . '/views/'); // Папка з шаблонами return $view; } ); // Реєстрація сервісу URL у DI $container->set( 'url', function () { $url = new Url(); $url->setBaseUri('/'); // Базовий URL return $url; } ); // Створення екземпляру Phalcon Application $application = new Application($container); try { // Обробка запиту та відправка відповіді $response = $application->handle( $_SERVER["REQUEST_URI"] ); $response->send(); } catch (\Exception $e) { // Виведення повідомлення про виняток echo 'Exception: ', $e->getMessage(); } ?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62Контролер:
app/controllers/IndexController.php
Контролер для головної сторінки.php<?php use Phalcon\Mvc\Controller; use Phalcon\Support\Version; // Для отримання версії Phalcon class IndexController extends Controller { // Дія за замовчуванням public function indexAction() { // Отримання поточної версії Phalcon $phalconVersion = new Version(); $versionString = $phalconVersion->get(); // Передача версії у шаблон $this->view->phalconVersion = $versionString; // Рендериться app/views/index/index.phtml } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20Вигляд:
app/views/index/index.phtml
Шаблон з привітанням та версією Phalcon.html<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello ServBay with Phalcon</title> <style> body { font-family: sans-serif; margin: 40px; text-align: center; } h1 { color: #333; } p { color: #666; } </style> </head> <body> <h1>Hello ServBay!</h1> <p>Ви успішно запустили застосунок Phalcon у ServBay.</p> <p>Поточна версія Phalcon: **<?= $phalconVersion ?>**</p> </body> </html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Крок 4: Запустіть застосунок
Переконайтеся, що в ServBay запущений Nginx/Caddy та вибрана версія PHP. Відвідайте у браузері налаштований вами домен, наприклад: https://phalcon-demo.servbay.demo
. Ви побачите сторінку з написом "Hello ServBay!" та версією Phalcon.
Мал.: Успішно запущений демонстраційний застосунок Phalcon
Важливі нюанси
- Перевірте сумісність версії PHP з вашим проектом на Phalcon.
- Після ручного редагування конфігурацій не забудьте перезапустити службу PHP.
- Якщо виникають проблеми, спершу перегляньте лог-файли PHP та веб-сервера (Nginx/Caddy). Вони зазвичай знаходяться у
/Applications/ServBay/var/log/
.
Поширені питання (FAQ)
З: Я все зробив, але Phalcon не відображається у phpinfo()
. Що робити?
В: Перевірте наступне:
- Ви змінили саме той PHP, з яким працює сайт (для ручного редагування).
- Рядок
extension = phalcon.so
НЕ має крапки з комою на початку. - Перезапустили правильний сервіс PHP.
- Сайт використовує саме ту версію PHP, де увімкнений Phalcon.
- Перегляньте логи помилок PHP у ServBay, можливо, є причини збоїв при завантаженні розширення.
З: Мій застосунок Phalcon кидає помилку Class 'Phalcon\...' not found
. Що не так?
В: Це означає, що модуль Phalcon не завантажено у цій версії PHP. Повторно виконайте кроки з активації, переконайтеся через phpinfo()
у наявності розширення. Якщо модуль присутній, ретельно перевірте своє налаштування автозавантаження чи використання простору імен.
З: Чи потрібні якийсь додаткові залежності для Phalcon?
В: Для PHP 7.2–7.4 необхідний модуль PSR. У ServBay він уже попередньо встановлений — достатньо переконатися, що одночасно увімкнено extension = psr.so
та extension = phalcon.so
у phalcon.ini
. Для PHP 8.0+ (Phalcon 5.x) це не потрібно, PSR підтримується на рівні фреймворка.
Підсумок
ServBay суттєво спрощує налаштування фреймворку Phalcon у локальному середовищі. Розробники можуть буквально за декілька кліків через графічний інтерфейс або мінімальні зміни в конфігураціях підключати високопродуктивний модуль Phalcon для будь-якої версії PHP. Завдяки широкій підтримці інших веб-технологій у ServBay, можна швидко вибудувати потужне, зручне і продуктивне локальне середовище для розробки сучасних застосунків на Phalcon. Вдало використовуйте характеристики Phalcon для створення швидких і ефективних веб-рішень.