baraja-core / wordpress-post-feed
下载新博客文章列表的API服务。
Requires
- php: ^8.0
- ext-curl: *
- baraja-core/url: ^1.0
- nette/caching: ^3.0
- nette/di: ^3.0
Requires (Dev)
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.0
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-nette: ^1.0
- phpstan/phpstan-strict-rules: ^1.0
- roave/security-advisories: dev-master
- spaze/phpstan-disallowed-calls: ^2.0
This package is auto-updated.
Last update: 2024-09-09 20:58:57 UTC
README
BRJ组织
Wordpress文章源
下载新博客文章列表的API服务。
此库从Wordpress下载文章源,并提供一个简单的API来读取它们。
来自源的文章将自动缓存一段时间,因此不需要在每次请求中再次下载。
📦 安装
最好使用 Composer 进行安装,您还可以在 Packagist 和 GitHub 上找到此包。
要安装,请使用以下命令
$ composer require baraja-core/wordpress-post-feed
您可以通过创建内部类的实例手动使用此包,或者注册DIC扩展以将服务直接链接到Nette框架。
配置
如果您要将包安装到Nette框架中,您可以简单地注册扩展
extensions: wordpressPostFeed: Baraja\WordPressPostFeed\WordpressPostFeedExtension
但是,扩展不是必需的,因为您可以手动创建实例
$feed = new \Baraja\WordPressPostFeed\Feed;
默认情况下,不需要依赖项。源将自行处理所有依赖项。
使用方法
基本用法很简单
$feed = new \Baraja\WordPressPostFeed\Feed; $posts = $feed->load('https://blog.mycleverminds.cz/feed/'); foreach ($posts as $post) { echo $post->getTitle(); echo $post->getDescription(); echo $post->getLink(); echo $post->getDate()->format('Y-m-d'); echo $post->getCreator(); echo json_encode($post->getCategories()); echo $post->getMainImageUrl(); }
源将自动下载,然后缓存,后续请求将直接从缓存中处理。
如果您只需要从源中检索一些文章,您可以使用 limit
和 offset
参数
$posts = $feed->load( url: 'https://blog.mycleverminds.cz/feed/', limit: 3, offset: 1, );
文章将自动缓存设定的时间(默认2小时)。如果该时间段到期,缓存将自动失效,下一个请求将需要检索数据并重建缓存。此检索可能会减慢此请求。如果您想要立即处理所有请求,则需要通过cron自动刷新源缓存。
cron将调用以下方法来刷新缓存
$feed = new \Baraja\WordPressPostFeed\Feed; $feed->updateCache('https://blog.mycleverminds.cz/feed/');
图像处理
在从源下载文章时,图像也会自动下载并复制到磁盘。图像存储由 \Baraja\WordPressPostFeed\ImageStorage
服务提供,该服务由库自动注册。默认的图像存储目录是相对于您的 index.php
的 wordpress-post-feed
。
此服务提供以下方法
您也可以直接从 Post
实体通过方法处理图像
getAbsoluteInternalUrl()
getRelativeInternalUrl()
getMainImageUrl()
📄 许可证
baraja-core/wordpress-post-feed
使用MIT许可证。有关更多详细信息,请参阅LICENSE文件。