2014-01-21 26 views
0

我在我的wamp服務器中安裝了laravel 4。這是我做的:在laravel中使用我自己的Curl類的錯誤

1-add this "app/classes" to composer.json。

2在應用程序中創建文件夾類並將Curl.php類放入該文件夾中。

3將此app_path().'/classes',添加到app/start中的global.php中。

4-run composer dump-autoload在www目錄中的命令。

5-使用像Curl::help()必須將此別名添加到app/config/app.php別名部分'Curl'=>'Curl'。這樣做之後

,當我在路由器返回return Curl::hello();此頁出現:

http://www.mediafire.com/view/h9489jr5s2699ty/err.PNG

我捲曲的類:Curl class

任何幫助?

回答

0

這不是Laravel別名的工作方式,您需要更多代碼(創建Facades和Service Providers)才能使其工作。

所以,你有一些選擇:

1)從app/config/app.php刪除該別名,實例化類:

$curl = new Curl; 
$curl->help(); 

2)實例化類,並將其綁定到IoC容器,在global.php ,filters.php或創建一個文件:

App::bindShared('mycurl', function($app) 
{ 
    return new Curl; 
}); 

,並創建一個門面:

<?php namespace MyClasses\Facades; 

use Illuminate\Support\Facades\Facade; 

class MyCurlFacade extends Facade { 

    protected static function getFacadeAccessor() 
    { 
     return 'mycurl'; 
    } 

} 

您的別名必須指向此Facade腳本文件,就像您在app.php中看到的所有其他人一樣。

'Curl' => 'MyClasses\MyCurlFacade', 

它應該像這樣工作Curl::hello();

3)創建的通常(正確)Laravel結構,其中還包括一個的ServiceProvider實例化類並將其綁定到應用程序中的引導IoC容器:

<?php namespace MyClasses; 

use Illuminate\Support\ServiceProvider; 

class MyCurlServiceProvider extends ServiceProvider { 

    protected $defer = false; 

    public function boot() 
    { 

    } 

    public function register() 
    { 
    { 
     $this->app['mycurl'] = $this->app->share(function($app) 
     { 
      return new MyCurl; 
     }); 
    } 

    public function provides() 
    { 
     return array('mycurl'); 
    } 

} 

這是未經測試CODE,所以不要期望它能在第一次運行中工作

相關問題