如何通过Laravel IoC Container访问Orchestra Xml Parser

时间:2015-08-19 06:52:17

标签: php xml laravel parsing ioc-container

我正在使用laravel 5.1。我想使用XML解析器,我搜索并发现Orchestra主要用于。所以我已经完成了documentation给出的所有步骤来安装和配置。我在Orchestra\Parser\XmlServiceProvider::class的{​​{1}}部分和providers部分的config/app.php部分添加了'XmlParser' => Orchestra\Parser\Xml\Facade::class

现在在我的控制器中,我在控制器的顶部添加了名称空间aliases。但是当我尝试在我的行动中使用它的功能时,比如

use Orchestra\Parser\Xml\Facade;

它会生成错误说明,

$xml = XmlParser::load($xml_document);

所以我想知道Class 'App\Http\Controllers\XmlParser' not found 中有没有其他方法可以使用这些包,如果有人使用它,我会对Laravel 5.1做错事。

3 个答案:

答案 0 :(得分:16)

由于文档已经描述了外观别名的注册:

'XmlParser' => Orchestra\Parser\Xml\Facade::class,

您可以使用\XmlParser::load(),也可以导入别名。

use XmlParser;

或导入完整的命名空间。

use Orchestra\Parser\Xml\Facade as XmlParser;

答案 1 :(得分:1)

看起来好像是在控制器内搜索它..

Class' App \ Http \ Controllers \ XmlParser'找不到

因此:

$xml = XmlParser::load($xml_document);

需要:

$xml = \XmlParser::load($xml_document);

应解决此问题

答案 2 :(得分:-1)

在Laravel 5.1中,控制器位于命名空间中。 XmlParser位于其他名称空间中。您需要在控制器中包含该命名空间。

<?php

namespace Orchestra\Parser\Xml; // Maybe this one is different

class Controller...

您还可以添加\以使其正常工作。

$xml = XmlParser::load($xml_document);