yggverse/gemini 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

yggverse/gemini

最新稳定版本:1.0.1

Composer 安装命令:

composer require yggverse/gemini

包简介

PHP 8 Library for Gemini Protocol

README 文档

README

PHP 8 Library for Gemini Protocol

For optimization reasons, some experimental features like Dokuwiki and GTK3/Pango was dropped from 1.0.0 release, but available in previous versions. Gemtext component re-implemented as separated library (see Extras)

Extras

  • gemtext-php - Object-oriented PHP 8 library for Gemini / Gemtext operations

Usage

composer require yggverse/gemini

Client

PHP interface for Gemini protocol queries by TLS socket connection

Request

$request = new \Yggverse\Gemini\Client\Request(
    'gemini://yggverse.cities.yesterweb.org:1965/index.gmi'
);

Resolved request (SNI)

For direct connection provide resolved IP as the second argument

$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
);

Alternatively, use setResolvedHost method of Request object before getResponse

Request::setResolvedHost

$request->setResolvedHost(
    '68.133.1.71'
)
  • to resolve network address with PHP, take a look on the net-php library!

Request::getResolvedHost

Get resolved host back

Request::setHost

Request::getHost

Request::setPort

Request::getPort

Request::setPath

Request::getPath

Request::setQuery

Request::getQuery

Request::getResponse

Execute requested URL and return raw response

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

This class provides additional features for the raw response operations

$response = new \Yggverse\Gemini\Client\Response(
    $request->getResponse()
);

Response::setCode

Response::getCode

Response::setMeta

Response::getMeta

Response::setBody

Response::getBody

var_dump(
    $response->getBody()
);

Integrations

  • gemini-dl - CLI Batch downloader for Gemini Protocol
  • Yo! - Crawler for different networks
  • Yoda - PHP-GTK browser for Gemini Protocol
  • β-Doku - DokuWiki Satellite for Gemini Protocol

统计信息

  • 总下载量: 119
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 3
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 3
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-01-30