Php 我只能';我不能让我的门面在拉威尔4号工作

Php 我只能';我不能让我的门面在拉威尔4号工作,php,laravel-4,facade,Php,Laravel 4,Facade,请有人告诉我为什么我的第一个自制门面不起作用。我花了几个小时在这上面,我可能会发疯 composer.js包含 "classmap": [ "app/commands", "app/controllers", "app/facades", "app/libraries", .... /app/config/app.php包含 'providers' => array( .... 'Cl

请有人告诉我为什么我的第一个自制门面不起作用。我花了几个小时在这上面,我可能会发疯

composer.js包含

    "classmap": [
        "app/commands",
        "app/controllers",
        "app/facades",
        "app/libraries",
        ....
/app/config/app.php包含

'providers' => array(
    ....
    'CloudsServiceProvider',
/libraries/Clouds.php

class Clouds {

    protected $_current = null;

    public function current() 
    {

        if($this->_current)
            return $this->_current;

        $this->_current = Cloud::find(1); // Cloud in a Model 

        return $this->_current;
    }

}
/库/CloudsServiceProvider.php

use Illuminate\Support\ServiceProvider;

class CloudsServiceProvider extends ServiceProvider 
{

    public function register()
    {

        $this->app->bind('Clouds', function()
        {
            return new Clouds();
        });
    }
} 
/facades/CloudsFacade.php

use Illuminate\Support\Facades\Facade;

class Clouds extends Facade 
{

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

}
在终端中,我执行以下操作:

composer dump
当我调用$cloud=Clouds::current()时;我得到:

App::make('Clouds')->current();但似乎有效


我已经学习了一些教程,但我一直在讨论这个问题。

如果facade使用的是与Clouds类相同的名称,则应更改为:

class CloudsFacade extends Facade 
{
   ...
}
提示:打开你的供应商/composer/autoload_classmap.php,所有3个文件都必须列在那里

此外,您还必须为所有3个文件命名名称空间:

<?php namespace App\Clouds;
和别名:

'Clouds' => 'App\Clouds\CloudsFacade',
那你呢

composer du

您应该准备好了。

如果facade使用了与Clouds类相同的名称,您应该更改为:

class CloudsFacade extends Facade 
{
   ...
}
提示:打开你的供应商/composer/autoload_classmap.php,所有3个文件都必须列在那里

此外,您还必须为所有3个文件命名名称空间:

<?php namespace App\Clouds;
和别名:

'Clouds' => 'App\Clouds\CloudsFacade',
那你呢

composer du
你应该可以走了