mirror of
https://github.com/php-win-ext/phpy.git
synced 2026-03-24 17:02:15 +01:00
41 lines
1.3 KiB
Markdown
41 lines
1.3 KiB
Markdown
# 封装模块
|
|
`phpy` 使用反射工具自动将所有 `PHP` 扩展函数和类生成了封装模块,包名称为 `php` 可以直接使用
|
|
|
|
```python
|
|
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\Server` 为 `php.swoole.HttpServer`
|
|
- 函数名称使用了命名空间,将转为蛇形函数名,例如 `MongoDB\BSON\fromJSON` 为 `php.mongodb.bson_fromjson`
|
|
- 函数或方法名称是 `Python` 关键词,将自动添加下划线前缀,例如 `gmp_import` 为 `php.gmp._import`
|
|
|
|
## 对象实例
|
|
|
|
```python
|
|
from php import redis
|
|
|
|
db = redis.Redis()
|
|
db.connect("127.0.0.1", 6379, -1)
|
|
db.set("key", "swoole")
|
|
print(db.get("key"))
|
|
```
|
|
|
|
## 函数实例
|
|
|
|
```python
|
|
from php import std
|
|
import phpy
|
|
|
|
errno = phpy.Reference()
|
|
errstr = phpy.Reference()
|
|
rs = std.stream_socket_client('tcp://127.0.0.1:9999', errno, errstr, 30)
|
|
```
|