Php 我只能';我不能让我的门面在拉威尔4号工作
请有人告诉我为什么我的第一个自制门面不起作用。我花了几个小时在这上面,我可能会发疯 composer.js包含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
"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
你应该可以走了