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

OSCHINA-MIRROR/kitech-php-go

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

Расширение PHP с использованием Go/Golang. Оболочка Zend API для Go/Golang.

Простое и удобное в использовании расширение PHP.

Возможности:

  • поддержка функций;
  • поддержка структур и классов;
  • поддержка констант;
  • примитивные типы данных в качестве параметров и возвращаемых значений: целые и вещественные числа, строки, логические значения;
  • сложные типы данных в качестве параметров: карты, срезы, массивы;
  • всё может быть сделано программно.

Среда:

  • современная система Linux или Unix;
  • PHP 5.5+ или 7.x;
  • версия Go 1.4+.

Сборка и установка:

Go get: скоро появится.

Вручную:

cd $GOPATH/src/
git clone https://github.com/kitech/php-go.git
ln -s php-go/zend ./
ln -s php-go/phpgo ./
make -C php-go/
ls -lh php-go/hello.so
php56 -d extension=php-go/hello.so php-go/examples/hello.php

Примечание: поддержка PHP 7 не завершена, для тестирования используйте PHP 5.

Примеры:

import "phpgo"

func module_startup(ptype int, module_number int) int {
    return 0
}
func module_shutdown(ptype int, module_number int) int {
    return 0
}
func request_startup(ptype int, module_number int) int {
    return 0
}
func request_shutdown(ptype int, module_number int) int {
    return 0
}

function foo_in_go() {
}

type Bar struct{}
func NewBar() *Bar{
    return &Bar{}
}

func init() {
    phpgo.InitExtension("mymod", "1.0")
    phpgo.RegisterInitFunctions(module_startup, module_shutdown, request_startup, request_shutdown)
    
    phpgo.AddFunc("foo_in_php", foo_in_go)
    phpgo.AddClass("bar_in_php", NewBar)
}

TODO:

  • установить с помощью go get;
  • улучшить поддержку PHP 7;
  • поддержка пространства имён.

Вклад:

  1. Создайте форк.
  2. Создайте свою ветку функций (git checkout -b my-new-feature).
  3. Зафиксируйте изменения (git commit -am 'Добавить некоторую функцию').
  4. Отправьте изменения в ветку (git push origin my-new-feature).
  5. Создайте новый запрос на вытягивание.

Комментарии ( 0 )

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

Введение

Напишите расширение PHP, используя Go. Обёртка Zend API для Go. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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