Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Події
Інше
Про нас
Новини 27 серпня 2026

TypePHP: компілятор PHP у нативні бінарники від команди Swoole

Команда Swoole опублікувала відкритий вихідний код TypePHP - компілятора, який перетворює PHP-код у нативний машинний код. Альберт Чен (Albert Chen) повідомив про це у соцмережі X, зазначивши, що реліз відбувся раніше запланованого жовтневого терміну.

Що таке TypePHP

TypePHP - це Ahead-Of-Time (AOT) компілятор, який транслює PHP-код спочатку в C++, а потім у нативний машинний код. На відміну від кешу байт-коду чи віртуальної машини, він не інтерпретує опкоди під час виконання: натомість генерує оптимізовані нативні бінарники, що запускаються безпосередньо на процесорі.

Ключові особливості

Компілятор зберігає звичний синтаксис PHP і додає інформацію про типи на етапі компіляції. Це дозволяє генерувати швидкий, статично типізований C++-код для критичних ділянок програми (hot paths).

Динамічні PHP-значення, внутрішні функції, рефлексія та метадані об'єктів продовжують взаємодіяти з Zend-рантаймом через PHPX. Користувацькі функції після компіляції більше не виконуються як Zend-опкоди - вони працюють як нативний машинний код.

Самокомпіляція на чистому PHP

Особливістю TypePHP є те, що компілятор повністю написаний на PHP і підтримує самокомпіляцію (self-hosting). Бінарник компілятора tpc створюється шляхом компіляції власного PHP-коду за допомогою TypePHP. Весь ланцюжок bootstrap-процесу базується на чистому PHP - без жодного C чи C++ коду в самому компіляторі.

Це означає, що TypePHP використовує себе для компіляції власного вихідного коду, демонструючи зрілість і повноцінність рішення.

Де дізнатися більше

Детальну документацію та додаткову інформацію про проєкт можна знайти на офіційному сайті TypePHP. Вихідний код доступний у репозиторії на GitHub.

1

Читати в документації

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Читайте також

whereBinary()
Новини 28 серпня 2026

whereBinary(): регістрозалежні запити MySQL у Laravel

Laravel 13.27 додає новий метод whereBinary() для точного побайтового порівняння рядків у MySQL. Він вирішує проблему, коли стандартне collation utf8mb4_unicode_ci ігнорує регістр, акценти та пробіли при порівнянні токенів, slug-ів та інших критичних даних.

ToolSearch
Новини 27 серпня 2026

Laravel AI: завантаження інструментів на вимогу з ToolSearch

Laravel AI v0.11.0 додає механізм відкладеного завантаження інструментів агента через ToolSearch. Замість надсилання всіх тридцяти інструментів одразу, провайдер отримує лише пошуковий запис і завантажує повні визначення тільки тоді, коли модель вирішує їх використати.

2

Вакансії за темою

Nova Digital
10 днів тому

Lead Backend PHP Developer (R&D)

Lead Backend PHP Developer для R&D відділу. Розробка PoC та MVP на Laravel/Symfony з інтеграцією AI-рішень, технічне лідерство команди, проєктування архітектури для масштабування. Вимоги: 5+ років PHP, досвід Team Lead, PostgreSQL, RabbitMQ, Docker, Kubernetes, GCP, розуміння LLM API.

Frozeneon
17 днів тому

Full-Stack Developer (AI Oriented)

Full-Stack розробник з фокусом на PHP та Laravel. Розробка нових проєктів і оптимізація існуючих мікросервісних систем для високонавантажених платформ. Обов'язково: PHP 7.2+, Laravel, MySQL, Git, UNIX-адміністрування. Плюсом: Node.js, Docker, AWS, Redis, RabbitMQ, JavaScript/Vue.js.

iPOST Нова
Сьогодні

Senior PHP Developer (Product, Highload)

Senior PHP Developer для продуктової платформи доставки. Розробка backend та архітектури на PHP 8.2+, Yii2, MySQL з фокусом на highload, оптимізацію продуктивності та інтеграції з зовнішніми сервісами. Вимоги: 5+ років PHP, 4+ років Yii2, досвід великого production-коду, REST API, Docker, Git, тести. Плюс — досвід із AI-інструментами.

Пакети за темою

Laravel Debugbar

barryvdh/laravel-debugbar

Інтеграція PHP Debugbar у Laravel для відлагодження та аналізу роботи додатку.

19,281 v4.4.2 13 8

Laravel Octane

laravel/octane

Прискорює застосунок, тримаючи його в пам'яті між запитами через FrankenPHP, Swoole або RoadRunner. Прибирає завантаження фреймворку з кожного запиту, даючи кратний приріст пропускної здатності.

4,035 v2.19.1 13 2