封装模块

phpy 使用反射工具自动将所有 PHP 扩展函数和类生成了封装模块,包名称为 php 可以直接使用

  1. from php import [ext-name]

来导入 PHP 扩展中定义的常量、函数、类。

命名规则

  • 模块名称全部使用小写,例如 PDO ,对应的模块为 php.pdo
  • 标准库函数在 php.std 模块中,例如 php.std.file_get_contents()
  • 语言核心函数在 php.core 模块中,例如 php.core.get_included_files()
  • 函数前缀与扩展名称一致时,则省略扩展名称前缀,例如 php.curl.curl_init() 应简写为 php.curl.init()
  • 类名使用命名空间并且与扩展名称一致时,将转为驼峰类名,例如 Swoole\Http\Serverphp.swoole.HttpServer
  • 函数名称使用了命名空间,将转为蛇形函数名,例如 MongoDB\BSON\fromJSONphp.mongodb.bson_fromjson
  • 函数或方法名称是 Python 关键词,将自动添加下划线前缀,例如 gmp_importphp.gmp._import

对象实例

  1. from php import redis
  2. db = redis.Redis()
  3. db.connect("127.0.0.1", 6379, -1)
  4. db.set("key", "swoole")
  5. print(db.get("key"))

函数实例

  1. from php import std
  2. import phpy
  3. errno = phpy.Reference()
  4. errstr = phpy.Reference()
  5. rs = std.stream_socket_client('tcp://127.0.0.1:9999', errno, errstr, 30)