Зефир-фреймворк
Использование Zephir для написания расширений PHP.
Содержание:
Проект структуры
.
├── zephirlib -- расширение библиотеки
│ ├── Auth
│ │ └── License.zep -- лицензия на доступ
│ ├── Base
│ │ ├── AbstractModule.zep -- абстрактный класс модуля
│ │ ├── Base.zep
│ │ └── Service.zep
│ ├── Db
│ │ └── Mysql.zep
│ └── Module -- каталог бизнес-модулей
│ ├── Category.zep
│ └── Edit.zep
├── config.json -- файл конфигурации расширения
└── ext -- скомпилированный файл .so
Как использовать
$service_uuid = "13c7c8e1-3ac2-41a6-95dc-ff954b431bbf";
$auth_license = "1501402071-0-0-eabfb0fb52c429d4fa037585f7afd512";
$video = new \ZephirLib\Module\VideoEdit($service_uuid,$auth_license);
dump($video);
// результат печати
object(ZephirLib\Module\VideoEdit)#3 (3) {
["service_uuid":protected] => string(36) "13c7c8e1-3ac2-41a6-95dc-ff954b431bbf"
["auth_license":protected] => string(47) "1501402071-0-0-eabfb0fb52c429d4fa037585f7afd512"
["auth_status"] => int(-1)
}
Среда компиляции и зависимости
Версия re2c должна быть не ниже 0.13.6;
Установите PHP7;
Установите zephir:
sudo apt-get install php7.1-dev gcc make re2c autoconf
git clone https://github.com/phalcon/zephir.git
cd zephir
sudo ./install -c
Установите php-zephir-parser:
git clone git://github.com/phalcon/php-zephir-parser.git
cd php-zephir-parser
// рекомендуется указать расположение файла конфигурации, но можно также создать символическую ссылку
sudo ./install --phpize /usr/local/php-7.1.9/bin/phpize --php-config /usr/local/php-7.1.9/bin/php-config
Измените файл конфигурации PHP.ini:
$ sudo find / -name zephir_parser.so
/usr/local/php-7.1.9/lib/php/extensions/no-debug-non-zts-20160303/zephir_parser.so
Откройте файл vim /usr/local/php-7.1.9/etc/php.ini и добавьте следующее содержимое:
//Добавить следующее содержание
[Zephir Parser]
extension=zephir_parser.so
Перезапустите сервер:
sudo service php-fpm restart
Проверьте конфигурацию:
Установка фреймворка
Скачайте:
git clone https://github.com/Tinywan/zephir-framework.git
Скомпилируйте:
cd zephir-framework/zephirlib
zephir build
Compiling...
Installing...
Extension installed!
Add extension=zephirlib.so to your php.ini
Don't forget to restart your web server
Добавьте расширение в файл php.ini:
Для PHP 7:
vim /usr/local/php-7.1.9/etc/php.ini
# Добавить содержимое
extension=/usr/lib/php/20160303/zephirlib.so
Перезагрузите сервер:
sudo systemctl restart php-fpm.service
Для PHP 5:
cd /usr/lib/php5/20121212/
sudo vim /etc/php5/mods-available/zephirlib.ini
// Добавить содержимое
extension=zephirlib.so
Создайте символическую ссылку в каталоге /etc/php5/fpm/conf.d
:
ln -s ../../mods-available/zephirlib.ini 20-zephirlib.ini
Перезагрузите сервер: sudo service php5-fpm restart
/etc/php5/fpm/conf.d/20-zephirlib.ini
Общие проблемы
Ошибка компиляции:
zephir build
Preparing for PHP compilation...
Preparing configuration file...
configure: error: Cannot find php-config. Please use --with-php-config=PATH
Compiling...
sh: php-config: command not found
kernel/filter.h:23:17: fatal error: php.h: No such file or directory
Как решить эту проблему в Issue. Пример:
ln -sf /www/server/php/70/bin/php-config /usr/bin/php-config
.
Решение: проверьте командную строку (cli
) конфигурационного файла и добавьте расширение zephir_parser
. * Версия re2c слишком низкая, что привело к сбою установки php-zephir-parser
.
Для установки re2c выполните: sudo apt-get install re2c
.
В системе Ubuntu 14.04 LTS установка по умолчанию. Для Centos используйте команду
yum install re2c
.
Ошибка при установке php-zephir-parser
:
sudo ./install
error: minimal required version of re2c is 0.13.6
Просмотр текущей версии:
www@:~$ re2c --version
re2c 0.13.5
Примечание: для Zephir и
php-zephir-parser
требуется версия re2c >= 0.13.6.
Загрузка и установка последней версии:
wget https://github.com/skvadrik/re2c/releases/download/0.16/re2c-0.16.tar.gz
tar zxvf re2c-0.16.tar.gz
cd re2c-0.16
./configure
make
make install
www@:~/tinywan/re2c-0.16$ re2c --version
re2c 0.16
Обратите внимание: объём памяти сервера должен быть не менее 512M, иначе компиляция не удастся.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )