socialweb/atproto-lexicon

基于PHP的AT协议应用Lexicon解析器

0.2.1 2023-05-25 01:35 UTC

README

基于PHP的AT协议应用Lexicon解析器

Source Code Download Package PHP Programming Language Read License Build Status Codecov Code Coverage Psalm Type Coverage

关于

socialweb/atproto-lexicon 解析Lexicon架构,用于AT协议

当前版本符合@atproto/lexicon的提交a900e95

本项目遵循行为准则。参与本项目及其社区,您应遵守此准则。

安装

使用Composer将此包作为依赖项安装。

composer require socialweb/atproto-lexicon

使用方法

use SocialWeb\Atproto\Lexicon\Nsid\Nsid;
use SocialWeb\Atproto\Lexicon\Parser\DefaultParserFactory;
use SocialWeb\Atproto\Lexicon\Parser\DefaultSchemaRepository;
use SocialWeb\Atproto\Lexicon\Parser\LexiconParser;

$schemas = '/path/to/bluesky-social/lexicons';

$schemaRepository = new DefaultSchemaRepository($schemas);
$parser = new LexiconParser(new DefaultParserFactory($schemaRepository));

$nsid = new Nsid('app.bsky.feed.post');
$schemaFile = $schemaRepository->findSchemaPathByNsid($nsid);
$schemaContents = file_get_contents((string) $schemaFile);

$document = $parser->parse((string) $schemaContents);

解析引用

使用此库,您可以解析Lexicon架构中的引用。

例如

use SocialWeb\Atproto\Lexicon\Types\LexResolvable;

foreach ($document->defs as $defId => $def) {
    if ($def instanceof LexResolvable) {
        $resolved = $def->resolve();
    }
}

贡献

欢迎贡献!要贡献,请熟悉CONTRIBUTING.md

协调披露

保护用户信息的安全是首要任务,我们欢迎外部安全研究者的贡献。如果您认为在存储库维护的软件中发现了一个安全问题,请阅读SECURITY.md以获取提交漏洞报告的说明。

版权和许可

版权 © socialweb/atproto-lexicon贡献者和根据自由软件基金会发布的GNU通用公共许可证(LGPL-3.0-or-later)许可使用。请参阅COPYING.LESSERCOPYINGNOTICE以获取更多信息。