1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Tinywan-zephir-framework

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Зефир-фреймворк

Использование 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

  • PHP файл зашифрован Zend Guard Loader

    1. Перезапустите службу php-fpm и проверьте, успешно ли установлено расширение.

Markdown

/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 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/Tinywan-zephir-framework.git
git@api.gitlife.ru:oschina-mirror/Tinywan-zephir-framework.git
oschina-mirror
Tinywan-zephir-framework
Tinywan-zephir-framework
master