yggverse / gemini
用于 Gemini 协议的 PHP 8 库
1.0.1
2024-07-08 01:36 UTC
README
用于 Gemini 协议 的 PHP 8 库
出于优化原因,一些实验性功能如 Dokuwiki
和 GTK3/Pango
已从 1.0.0
版本中删除,但在 以前版本 中可用。 Gemtext
组件重新实现为独立的库(见 附加组件)
附加组件
- gemtext-php - 用于 Gemini/Gemtext 操作的面向对象的 PHP 8 库
用法
composer require yggverse/gemini
客户端
通过 TLS 套接字连接进行 Gemini 协议查询的 PHP 接口
请求
$request = new \Yggverse\Gemini\Client\Request( 'gemini://yggverse.cities.yesterweb.org:1965/index.gmi' );
解析后的请求(SNI)
对于直接连接,请将解析后的 IP 地址作为第二个参数提供
$request = new \Yggverse\Gemini\Client\Request( 'gemini://yggverse.cities.yesterweb.org:1965/index.gmi' // target URL '68.133.1.71' // resolved IP, skip to use system-wide resolver );
或者,在 getResponse
之前使用 Request
对象的 setResolvedHost
方法
Request::setResolvedHost
$request->setResolvedHost( '68.133.1.71' )
- 要使用 PHP 解析网络地址,请查看 net-php 库!
Request::getResolvedHost
获取解析后的主机
Request::setHost
Request::getHost
Request::setPort
Request::getPort
Request::setPath
Request::getPath
Request::setQuery
Request::getQuery
Request::getResponse
执行请求的 URL 并返回原始响应
var_dump( $request->getResponse() );
Request::getOptions
Request::setOptions
$request = new \Yggverse\Gemini\Client\Request( 'gemini://yggverse.cities.yesterweb.org', '68.133.1.71' // make direct request to the resolved host ); $request->setOptions( [ 'ssl' => [ 'peer_name' => 'yggverse.cities.yesterweb.org', // SNI 'verify_peer' => false, 'verify_peer_name' => false ] ] );
响应
此类提供对原始响应操作的附加功能
$response = new \Yggverse\Gemini\Client\Response( $request->getResponse() );
Response::setCode
Response::getCode
Response::setMeta
Response::getMeta
Response::setBody
Response::getBody
var_dump( $response->getBody() );