将 simplepie 与作曲家一起使用

Use simplepie with composer

我正在使用 PHP 7.3.5Composer version 1.8.5 并且想使用 "simplepie/simplepie": "^1.5" 从 rss 提要中获取数据。

当 运行 下面的脚本出现错误时:Fatal error: Uncaught Error: Class 'SimplePie\SimplePie' not found

<?php
require 'vendor/autoload.php';

use SimplePie\SimplePie;

$url = 'https://www.reddit.com/r/worldnews/top.rss?t=day';

$feed = new SimplePie();
$feed->set_feed_url($url);
$feed->init();

如何正确使用 simplepie 和 composer?

你可以试试:

use SimplePie;

这在我的一个项目中有效。

更完整的示例(在 composer.json 中:"simplepie/simplepie": "^1.5"):

use SimplePie;

class RssParser{
    public $url;
    private $feed;
    private $message; // personal class for holding error...

    function __construct($url){

        if (!empty($this->url)) {
            $this->feed = new SimplePie();
            $this->feed->set_feed_url($this->url);
            $this->feed->set_cache_duration(600);

            if ($this->feed->init() === false) {
                $this->message->error('rss-parser NO SimplePie init: ' . $this->feed->error());
            } else {
                $this->feed->handle_content_type();
            }
        } else {
            $this->message->error('rss-parser: no url');
        }
    }

    ...

我不是 Composer/autoloading 专家,但由于 Simplepie 使用它自己的自动加载器,这可能解释了这篇文章。