我的laravel-4应用程序中有以下目录:
应用/ Latheesan
这已添加到我的composer.json
中:
"autoload": {
...
"psr-0": {
"Latheesan": "app/"
}
...
},
鉴于这个设置,我想创建一个名为 Helpers 的自定义Facade类,以便我可以将它用于我的应用程序中的各种操作,例如Helpers::getFreeStock();
为实现这一目标,我创建了以下文件夹&文件:
在相应的文件中包含以下代码:
应用/ Latheesan /系统/助手/墙面/ Helpers.php
<?php namespace Latheesan\System\Helpers;
use Illuminate\Support\Facades\Facade;
class Helpers extends Facade {
/**
* Get the registered name of the component.
*
* @return string
*/
protected static function getFacadeAccessor() { return 'helpers'; }
}
应用/ Latheesan /系统/助手/ Helpers.php
<?php namespace Latheesan\System\Helpers;
class Helpers {
/**
* Get free stock levels by organisation id.
* If param $skus is empty, free stock will be calculated for every inventory organisation owns.
*
* @param $organisation_id
* @param array $skus
* @return array
*/
public function getFreeStock($organisation_id, $skus = [])
{
return 'hello world - todo actual implementation';
}
}
应用/ Latheesan /系统/助手/ HelpersServiceProvider.php
<?php namespace Latheesan\System\Helpers;
use Illuminate\Support\ServiceProvider;
class HelpersServiceProvider extends ServiceProvider {
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$this->app['helpers'] = $this->app->share(function($app)
{
return new Helpers;
});
}
}
现在我更新了 app / config / app.php ,如下所示:
// Add service provider
'Latheesan\System\Helpers\HelpersServiceProvider'
...
// Create alias
'Helpers' => 'Latheesan\System\Helpers\Facades\Helpers'
最后,为了测试这个,我创建了以下路线:
Route::get('/test', function() {
dd(Helpers::getFreeStock(1, ['vcf001']));
});
当我访问此/test
以测试帮助程序Facade类时,我收到以下错误:
我在这里做错了什么?知道为什么这不起作用吗?
答案 0 :(得分:0)
感谢Luceos,我解决了这个问题。我在 app / Latheesan / System / Helpers / Facades / Helpers.php 文件中的命名空间中输入了一个拼写错误。
正确的代码应该是这样的:
<?php namespace Latheesan\System\Helpers\Facades;
use Illuminate\Support\Facades\Facade;
class Helpers extends Facade {
/**
* Get the registered name of the component.
*
* @return string
*/
protected static function getFacadeAccessor() { return 'helpers'; }
}
更改后,我必须运行 composer dump-auto ,一切运行良好。