mikespub / epub-loader
epub-loader 是一个用于电子书的实用资源
3.2.0
2024-09-05 11:38 UTC
Requires
- php: >=8.2
- ext-dom: *
- ext-json: *
- ext-mbstring: *
- ext-xml: *
- ext-zip: *
- ext-zlib: *
- mikespub/php-epub-meta: ^2.3||^3.0
- survos/wikidata: ^4.0||^5.0
- twig/twig: ^3.12
Requires (Dev)
- phpunit/phpunit: ^11.3
Suggests
- mikespub/seblucas-cops: COPS - Calibre OPDS (and HTML) PHP Server
README
此分支的先决条件
- PHP 8.x 具有DOM、GD、Intl、Json、PDO SQLite、SQLite3、XML、XMLWriter和ZLib支持(推荐使用PHP 8.1或更高版本)
- 3.x.x版本将仅与PHP >= 8.2兼容 - 这对于2024年和以后的大多数源代码和Docker镜像安装来说是典型的
- 2.x.x版本将仅与PHP >= 8.1兼容 - 这对于2023年和以后的大多数源代码和Docker镜像安装来说是典型的
- 1.x.x版本在必要时仍可与PHP 7.4兼容 - 此分支不支持较早的PHP 7.x(或5.x)版本
依赖项
- 此包依赖于 mikespub/php-epub-meta(seblucas/php-epub-meta)以从EPub文件获取元数据
- 它是 mikespub/seblucas-cops = COPS - Calibre OPDS(和HTML)PHP服务器的补充应用程序
它们对1.x和2.x版本有相同的PHP版本依赖关系
描述
epub-loader 是一个电子书的实用程序包。它可以作为一个独立的项目使用,也可以包含在你的PHP应用程序中
- CalibreDbLoader 类允许创建Calibre数据库并添加电子书
- BookExport 类允许将电子书元数据导出到csv文件中
- WikiDataMatch 类允许将电子书和作者与Wikidata匹配
- GoogleBooksMatch 类允许将电子书和作者与Google Books匹配
- OpenLibraryMatch 类允许将电子书和作者与Open Library匹配
- 应用程序目录包含示例,允许运行操作
安装(独立)
composer create-project mikespub/epub-loader
- 如果是首次安装,请将app/config.php.example复制到app/config.php
- 编辑config.php以匹配您的配置
- 打开应用程序目录的url: ./app/index.php
安装(包含)
composer require mikespub/epub-loader
- 运行
composer install -o
以安装所有包依赖项并优化自动加载器(如果需要的话) - 您可以使用
Marsender\EPubLoader\RequestHandler
来处理请求,如 ./app/index.php 中的示例所示
use Marsender\EPubLoader\RequestHandler; // get the global config for epub-loader from somewhere // get the current action and dbNum if any // you can define extra actions for your app - see example.php $handler = new RequestHandler($gConfig, ExtraActions::class); $result = $handler->request($action, $dbNum); // handle the result yourself or let epub-loader generate the output $result['endpoint'] = 'loader.php'; $result['app_name'] = 'My Application'; echo $handler->output($result, $templateDir, $template);
添加额外操作
- 您可以在数据库和/或EPub文件上添加额外操作,如 ./app/example.php 中的示例所示
public function more() { // do some more... return [ 'result' => 'This is more...', 'extra' => 'easy', ]; }