在laravel中使用我自己的Curl类时出错

时间:2014-01-21 10:31:18

标签: class curl laravel

我在我的wamp服务器上安装了laravel 4。这就是我做的:

1 - 将此"app/classes"添加到composer.json。

在app中创建文件夹类,并将Curl.php类放在该文件夹中。

3将此app_path().'/classes',添加到a​​pp / start中的global.php。

在www目录中的4个运行composer dump-autoload命令。

5 - 使用类似Curl::help()的必须将此别名添加到app / config / app.php别名部分'Curl'=>'Curl'

执行此操作后,当我在路由器中返回return Curl::hello();时,此页面出现:

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

我的卷曲课程:Curl class

任何帮助??

1 个答案:

答案 0 :(得分: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;
});

创建一个Facade:

<?php namespace MyClasses\Facades;

use Illuminate\Support\Facades\Facade;

class MyCurlFacade extends Facade {

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

}

您的Alias必须指向此Facade脚本文件,就像您在app.php中看到的所有其他文件一样。

'Curl' => 'MyClasses\MyCurlFacade',

它应该像Curl::hello();一样工作。

3)创建通常的(正确的?)Laravel结构,该结构还包括一个ServiceProvider,用于实例化您的类并将其绑定到应用程序Boot中的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');
    }

}

这是未经测试的代码,所以不要期望它在第一次运行中工作