将 simplepie 与作曲家一起使用
Use simplepie with composer
我正在使用 PHP 7.3.5
和 Composer 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 使用它自己的自动加载器,这可能解释了这篇文章。
我正在使用 PHP 7.3.5
和 Composer 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 使用它自己的自动加载器,这可能解释了这篇文章。