Hyperf 是一个基于 PHP 语言开发的高性能框架,可以使用它来生成 RSS(Really Simple Syndication)源。以下是一些示例代码,可以生成 RSS 源:
- 创建控制器
在 app/Controller 目录下创建一个名为 RssController 的控制器,并添加以下代码:
<?php
declare(strict_types=1);
namespace App\Controller;
use Hyperf\HttpServer\Annotation\AutoController;
use Hyperf\Utils\ApplicationContext;
use Psr\Http\Message\ResponseInterface;
use SimpleXMLElement;
/**
* @AutoController()
*/
class RssController
{
public function index(): ResponseInterface
{
// 设置 RSS 头部信息
$response = ApplicationContext::getContainer()->get(ResponseInterface::class);
$response = $response->withHeader('Content-Type', 'application/rss+xml; charset=utf-8');
// 创建 SimpleXMLElement 对象
$rss = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><rss></rss>');
$rss->addAttribute('version', '2.0');
$rss->addChild('channel');
// 添加频道信息
$rss->channel->addChild('title', 'My RSS Feed');
$rss->channel->addChild('link', 'http://www.example.com');
$rss->channel->addChild('description', 'This is my RSS feed.');
// 添加文章信息
$item = $rss->channel->addChild('item');
$item->addChild('title', 'Article Title');
$item->addChild('link', 'http://www.example.com/article.html');
$item->addChild('description', 'This is my article.');
// 输出 XML
$response->getBody()->write($rss->asXML());
return $response;
}
}
- 创建路由
在 routes 目录下的 routes.php 文件中添加以下代码:
<?php
use Hyperf\HttpServer\Router\Router;
Router::get('/rss', 'App\Controller\RssController@index');
在上面的代码中,我们创建了一个名为 /rss 的路由,将其映射到 RssController 的 index 方法上。
- 启动服务
启动 Hyperf 服务后,你可以在浏览器中访问 http://localhost:9501/rss,将会看到生成的 RSS 内容。
以上是一个简单的示例,你可以根据需要添加更多的文章元素,或使用循环语句来自动生成文章元素,以便批量生成 RSS 内容。