Это скрипт для преобразования PHP в ZEPHIR. Он создан в депозитарии nikic/PHP-Parser

Установка.

composer require fezfez/php-to-zephir

Как использовать.

vendor/bin/php-to-zephir phpToZephir:convert myDirToConvert 

Если сделать символьную ссылку - то можно вызывать php-to-zephir вот так.

php-to-zephir phpToZephir:convert myDirToConvert

Он преобразует все файлы рекурсивно в язык Zephir.

Если вы нашли ошибку, пожалуйста, сообщите об этом в новой ветке (с тестируемой PHP код, чтобы увидеть ошибки).

Фатальная ошибка :'(

Если вы обнаружите, фатальную ошибку во время преобразования, добавить --debug и определить, где фатальная ошибка произойдет. Тогда открытый вопрос!

 

Параметры встроенного хелпа.

Применение:
  command [options] [arguments]

Options:
  -h, --help            Отобразить это справочное сообщение
  -q, --quiet           Не выводить никаких сообщений
  -V, --version         Показать версию приложения
      --ansi            Форсировать вывод ANSI
      --no-ansi        Отключить вывод ANSI
  -n, --no-interaction  Не задавать интерактивный вопрос
  -v|vv|vvv, --verbose  Увеличить количество сообщений: 1 для нормального вывода, 2 для более подробного вывода и 3 для отладки

Доступные команды:
  help                        Displays help for a command
  list                          Выводит список команд
  phpToZephir:convert  Преобразование php-файла или каталога в Zephir

Есть альтернативное решение поновее.

/php-to-zephir

Преобразует файлы PHP 7 в файлы Zephir zep и может создавать файлы прототипов Zephir внешних используемых библиотек.

Требования

PHP >= 7.1

Установка

$ composer require --dev sandrokeil/php-to-zephir:dev-master

Использование

Чтобы создать файлы Zephir zep из ваших PHP-файлов, запустите:

$ bin/php2zephir php2zephir:zep:create [источник path/file] [назначение path/file]

Для создания прототипов Zephir для внешних библиотек запустите:

$ bin/php2zephir php2zephir:prototype:create [источник path/file] [назначение file prototype.php]

Создать PHAR

Файл PHAR может быть создан с помощью box.

$ php box.phar compile

Модульные тесты.

$ docker-compose run --rm php vendor/bin/phpunit

Zephir Docker Image

Если вы хотите скомпилировать свои файлы Zephir zep для изображений PHP Alpine 3.8 Docker, попробуйте мой Zephir Docker images.

 

Ограничения

  • Не может обрабатывать зарезервированные имена переменных, такие как $resource, это приведет к ошибке компиляции