我有一个名为ForumController的简单类,最终将在我的网站上使用其中的一些方法。现在有两个:
class ForumController extends BaseController {
// Parses XML feed to JSON
public static function parseXML($xml) {
$file = file_get_contents($xml);
$fileContents = str_replace(array("\n", "\r", "\t"), '', $file);
$fileContents = trim(str_replace('"', "'", $fileContents));
$simpleXML = simplexml_load_string($fileContents);
$json = json_encode($simpleXML);
return $json;
}
public static function getForums($xml){
$feed = parseXML($xml);
return $feed;
}
}
我在视图中使用它,所以我了解到我可以在IoC容器中调用它吗?所以我制作了一个IoC.php并将其包含在bootstrap.php文件中。
IoC.php:
<?php
View::composer('getForums', 'ForumController');
现在我想在我的观点中这样称呼它。
{{ ForumController::getForums('http://someForum.com/forum/syndication.php?fid=4,140,22,62,134&limit=5'); }}
但是,像往常一样,我做错了什么。错误:
Call to undefined function parseXML()
这是我第一次尝试使用除HomeController之外的其他控制器,所以我确信我做错了什么。我如何得到我想要的结果?
答案 0 :(得分:1)
您需要将parseXML()
作为类方法而不是函数调用。在这种情况下,使用self
或static
(当您从同一个类中调用它时不会有任何区别,但是如果parseXML()
被继承,{ {1}}将在运行时将其绑定到类。
static