moehrenzahn / scripturekit
此包最新版本(1.1)没有提供许可证信息。
ScriptureKit PHP
1.1
2020-04-09 23:11 UTC
Requires
- php: ^7.2
- ext-mbstring: *
- ext-simplexml: *
Requires (Dev)
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-17 11:30:02 UTC
README
A PHP框架,用于处理来自Zefania项目和qurandatabase.org的圣经XML文件。
要求
- PHP 7.2或更高版本,且包含SimpleXML和mbstring扩展
- Composer包管理器
安装
ScriptureKit只能通过包管理器Composer安装
composer require moehrenzahn/scripturekit
有关如何在项目中使用Composer的更多信息,请参阅Composer文档。
功能
您可以使用ScriptureKit进行以下操作
- 加载章节文本
- 加载节文本
- 加载一组节文本
- 为章节、节组或节渲染格式化的引用字符串
- 加载圣经文件的版本详情。
加载节文本时,有以下选项可用
- 以
HTML
或纯文本形式渲染 - 突出显示单个节
- 在句子末尾自动添加段落分隔符
- 包含注释(仅限ZefaniaXML)
ScriptureKit与以下圣经文件兼容
- ZefaniaXML文件 (.xml)
XML格式(一文件完整古兰经)
,由qurandatabase.org导出 (.xml)- Sefaria JSON格式,通过Sefaria Merger连接
使用方法
实例化
$availableCollections = [ Moehrenzahn\ScriptureKit\Data\VerseRequest::COLLECTION_NT, Moehrenzahn\ScriptureKit\Data\VerseRequest::COLLECTION_OT ]; $version = new \Moehrenzahn\ScriptureKit\Data\Version( 'International Standard Version', // Title of the version 'xml/bibles/isv.xml', // Filesystem path to the xml file you want to load \Moehrenzahn\ScriptureKit\Data\Version::TYPE_BIBLE, // The type of version (Zefania XML Tanakh, Zefania XML Bible, or Qurandatabase Quran) $availableCollections // List of Collections available in the version, see Moehrenzahn\ScriptureKit\Data\VerseRequest::COLLECTION_* ); // Instantiate the ScriptureKit service $service = new \Moehrenzahn\ScriptureKit\Service($version);
加载节文本
$version = new \Moehrenzahn\ScriptureKit\Data\Version($filePath, $type, $availableCollections); $service = new \Moehrenzahn\ScriptureKit\Service($version); $verseRequestBuilder = new \Moehrenzahn\ScriptureKit\VerseRequestBuilder( 3, // Number of the start chapter to load, Moehrenzahn\ScriptureKit\Data\VerseRequest::COLLECTION_NT, // Collection from which to load the verse (Tanakh, OT, NT, or Quran) 16 // Start verse to load ); // Number of the Book to load (if collection is not Quran). First book starts at 1 (Matthew) $verseRequestBuilder->setBookNumber(4); // List of verses to render with highlight $verseRequestBuilder->setHighlightedVerses([]); // Render as HTML instead of plain text $verseRequestBuilder->setReturnHtml(true); // See \Moehrenzahn\ScriptureKit\VerseRequestBuilder for more options $verseRequestBuilder->set...(); $verse = $service->createVerse($verseRequestBuilder->build()); // Print verse text (as HTML) echo $verse->getText(); // Print verse reference string ("New Testament, John 3:16") echo $verse->getFullReference(); // Print a compact reference (John 3:16) echo $verse->getCompactReference(); // See \Moehrenzahn\ScriptureKit\Data\RenderedVerse for more options echo $verse->get...();
加载版本详情
$version = new \Moehrenzahn\ScriptureKit\Data\Version($filePath, $type, $availableCollections); $service = new \Moehrenzahn\ScriptureKit\Service($version); $detailedVersion = $service->createDetailedVersion(); echo $detailedVersion->getTitle(); echo $detailedVersion->getDetails()['language'];
国际化
您可以国际化书籍和章节的名称,以及节分隔符(默认:
)。
在生成节引用时将使用您配置的字符串。
$version = new \Moehrenzahn\ScriptureKit\Data\Version($filePath, $type, $availableCollections); $service = new \Moehrenzahn\ScriptureKit\Service($version); $requestBuilder = new \Moehrenzahn\ScriptureKit\VerseRequestBuilder($chapterNumber, $collection, $startVerse, $endVerse, $endChapter); $requestBuilder->setChapterVerseSeparator(','); $requestBuilder->setTanakhBookNames(\Moehrenzahn\ScriptureKit\Util\TanakhBookNames::BOOK_NAMES); $requestBuilder->setBibleBookNames(\Moehrenzahn\ScriptureKit\Util\BibleBookNames::BOOK_NAMES); $requestBuilder->setQuranChapterNames(\Moehrenzahn\ScriptureKit\Util\QuranChapterNames::CHAPTER_NAMES);
测试
ScriptureKit包含一个非详尽的PHPUnit测试套件。您可以通过项目的makefile执行测试
make phpunit
作者
Max Melzer
moehrenzahn.de
hi@moehrenzahn.de