2016-08-31 12 views
0

xmlデータを読み込んでjsonに変換するヘルパーメソッドを作成しています。私はPHP/Laravel 5.1 - 以前にファイルで宣言したメソッドを再宣言できません

1)作成したファイル

app/helper/commonHelper.php

以下の手順に従い、それに次のコードを追加しました。

<?php 

function xmlToArray($xml, $options = array()) { 
// the entire code here 

} 

2)

app/providers/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'; 
} 

}今

を作成Iは

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; 

     // 
    } 
} 
ようなコントローラにxmlToArray()を呼び出すとき

これは例外

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 on line 79 PHP Fatal error: Uncaught exception 'Illuminate\Contracts\Container\BindingResolutionException' with message 'Target [Illuminate\Contracts\Debug\ExceptionHandler] is not instantiable.' in D:\work\HC\hcserver\vendor\laravel\framework\src\Illuminate\Container\Container.php:748

スロー私はここで間違ってやっているものを私に教えてください?

更新日:CommonHelper.php内部全体のコンテンツ - >http://pastebin.com/GuQGYnJP

+1

理由がわからない。しかし、あなたの関数宣言を 'if(!function_exists( 'xmlToArray')){function xmlToArray(){}}'にラップすることができます。 –

+0

__entire__ファイル 'D:\ work \ HC \ hcserver \ app \ Helpers \ CommonHelperを投稿してください。 php'(ペーストビンを使用すると長すぎる場合) –

+0

奇妙なことに、エラーが示唆するように宣言を繰り返すようには見えません。私はL5.2のインスタンスで全く同じ設定をテストしました - それはここで働いていました...今私は好奇心です –

答えて

0

をあなたは

xmlToArray to xmlToArrayCustom

理由から名前を変更する必要があります。laravelとphpのために意味をなすそのグローバル関数。 このメソッド名はPHPライブラリで使用されているため、同じ名前で再度参照することはできません。

関連する問題