2014-01-21 9 views
0

У меня есть laravel 4, установленный на моем сервере. это то, что я сделал:Ошибка при использовании моего собственного класса Curl в laravel

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

2-создать классы папок в приложении и поместить класс Curl.php в эту папку.

3-добавьте это app_path().'/classes', в 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, вам нужно больше кода (создавать фасад и сервис-провайдеры), чтобы заставить его работать.

Так у вас есть несколько вариантов:

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'); 
    } 

} 

Это UNTESTED КОД, ТАК НЕ ОЖИДАЙТЕ, ЧТО РАБОТАЕТ В ПЕРВОЙ РАБОТЕ

Смежные вопросы