我正在编写一个帮助方法来读取xml数据并将其转换为json。我按照以下步骤进行了操作
1)创建文件
应用程序/助手/ commonHelper.php
并在其中添加了以下代码。
<?php
function xmlToArray($xml, $options = array()) {
// the entire code here
}
2)在
下创建了一个文件应用程序/提供商/ HelperCommonsProvider.php
以及以下代码
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class HelperCommonsProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
require base_path().'/app/Helpers/CommonHelper.php';
}
}
现在我在控制器中调用xmlToArray(),如
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use Tymon\JWTAuth\Facades\JWTAuth;
use Illuminate\Support\Facades\Config;
use Log as EventLogger;
class UsersController extends Controller {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index() {
echo "You are in the index function";
$file = Config::get('constants.constants.userdirectory');
$file = $file . '/' . 71 . '/' . 71 . '.xml' ;
$xmlloaded = simplexml_load_file($file);
$returnvalues = xmlToArray($xmlloaded, array('alwaysArray'));
echo json_encode($returnvalues);
die;
//
}
}
这会引发异常
第79行的Fatal error: Cannot redeclare xmlToArray() (previously declared in D:\work\HC\hcserver\app\Helpers\CommonHelper.php:3) in
D:\ work \ HC \ hcserver \ app \ Helpers \ CommonHelper.php PHP致命错误:未捕获异常'Illuminate \ Contracts \ Container \ BindingResolutionException' 消息'目标[Illuminate \ Contracts \ Debug \ ExceptionHandler]不是 实例化“。在 d:\工作\ HC \ hcserver \厂商\ laravel \框架\ SRC \照亮\容器\ Container.php:748
请告诉我,我在这里做错了什么?
更新:CommonHelper.php中的整个内容 - &gt; http://pastebin.com/GuQGYnJP
答案 0 :(得分:0)
您应该从
更改名称xmlToArray 至 xmlToArrayCustom
原因:它的全局功能对laravel和php有意义。 因为此方法名称由PHP库使用,不能使用相同的名称进行redaclared。