baraja-core/wordpress-post-feed

此包最新版本(v2.2.2)没有可用的许可信息。

下载新博客文章列表的API服务。

v2.2.2 2024-06-09 20:13 UTC

README


BRJ组织

Wordpress文章源

下载新博客文章列表的API服务。

此库从Wordpress下载文章源,并提供一个简单的API来读取它们。

来自源的文章将自动缓存一段时间,因此不需要在每次请求中再次下载。

📦 安装

最好使用 Composer 进行安装,您还可以在 PackagistGitHub 上找到此包。

要安装,请使用以下命令

$ 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();
}

源将自动下载,然后缓存,后续请求将直接从缓存中处理。

如果您只需要从源中检索一些文章,您可以使用 limitoffset 参数

$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.phpwordpress-post-feed

此服务提供以下方法

您也可以直接从 Post 实体通过方法处理图像

  • getAbsoluteInternalUrl()
  • getRelativeInternalUrl()
  • getMainImageUrl()

📄 许可证

baraja-core/wordpress-post-feed 使用MIT许可证。有关更多详细信息,请参阅LICENSE文件。