rootxs/sudobible

开源圣经API。

0.0.2 2015-07-30 03:21 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:47:23 UTC


README

开源圣经API。

安装与设置

使用您的数据库凭据和可选的翻译偏好(默认翻译为世界英语圣经,一种现代、公有领域的英语翻译)实例化SudoBible。

$oBible = new \RootXS\SudoBible([
	'db_host' => 'localhost',
	'db_user' => 'my_user',
	'db_pass' => 'my_super_secure_password',
	'db_name' => 'my_db',
	'translation' => 'ASV',
]);

首次设置时调用以下方法一次,然后在您的表创建完成后删除此代码

$oBible->install();

保留此代码在您的应用程序中不会破坏任何东西。它只会使您的应用程序在每次运行时进行多次多余的数据库查询。因此,建议您运行一次,然后从您的代码中删除它。

或者,您可以手动运行位于“queries”目录中的查询。找到您的数据库类型(例如,“mysql”)的子目录,然后按顺序运行“create”脚本,然后运行“insert”脚本。

基本用法

获取单个经文

$oPassage = $oBible->verse('John', 3, 16);

获取整章

$oPassage = $oBible->chapter('John', 3);

获取一段经文(提供起始和结束经文编号)

$oPassage = $oBible->ref('John', 3, 16, 17); // John 3:16-17
$oPassage = $oBible->ref('Hebrews', 5, 11, 6, 2); // Hebrews 5:11-6:2

根据主题获取一个或多个经文

$aPassages = $oBible->topic('church'); // returns an array of all related passages
$oPassage = $oBible->topic('church', true); // returns a single, random related passage

SudoBiblePassage对象

verse()chapter()ref()每个都返回一个包含请求的经文并提供操作它的实用程序的SudoBiblePassage对象。

打印经文

SudoBiblePassage对象使用__toString()魔术方法,允许您简单地使用echoprint对象。

echo $oBible->verse('John', 3, 16);

输出

因为神爱世人,甚至赐下他的独生子,使一切信他的,不至灭亡,反得永生。(约翰福音3:16)

设置经文样式

SudoBiblePassage对象提供了一些方法来设置字符串输出样式。

$oPassage = $oBible->ref('John', 3, 16, 17)
	->numberVerses() // adds verse numbers to the passage string
	->useHTML(); // adds some HTML styling to the passage string
echo $oPassage;

输出

16因为神爱世人,甚至赐下他的独生子,使一切信他的,不至灭亡,反得永生。17因为神没有差他的儿子来审判世界,乃是要救世界。(约翰福音3:16-17)

所有样式方法都接受一个布尔参数,因此您可以在之前开启样式后关闭它

$oPassage->numberVerses(false);

布尔标志默认为true,因此如果您只想开启功能,“on”不需要参数。

导航经文

SudoBiblePassage对象还提供了一种机制来继续选择之后的经文

$oPassage = $oBible->verse('John', 3, 16);
for ($i=0; $i<2; $i++) {
	echo $oPassage;
	$oPassage = $oPassage->nextVerse();
}

删除或刷新数据库

要删除sudo_bible_*表,在您的PHP代码中运行一次以下内容

$oBible->uninstall();

或者,您可以手动运行位于queries/{DB_TYPE}/drop中的脚本。

要刷新表(例如,更新SudoBible存储库后),在您的PHP中运行以下内容

$oBible->reinstall();

这仅仅是组合了uninstall()install()。您也可以手动按顺序运行dropcreateinsert查询脚本。