在 Laravel 5 中,我尝试将 MyClass 添加到 IoC 容器中。
所以我添加了以下结构:
应用程序/库/MyClass.php
<?php namespace App\Libs;
use App\Interfaces\MyClassInterface;
class MyClass implements MyClassInterface {
public function list($itemId)
{
// do any things
}
}
应用程序/外墙/MyClassFacade.php
<?php namespace App\Facades;
use Illuminate\Support\Facades\Facade;
class MyClassFacade extends Facade {
protected static function getFacadeAccessor()
{
return 'myclass';
}
}
app/Providers/MyClassServiceProvider.php
<?php namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\Libs\MyClass;
class MyClassServiceProvider extends ServiceProvider {
public function boot()
{
//
}
public function register()
{
$this->app->bind('myclass', function () {
return new MyClass();
});
}
}
app/config/app.php(在提供者中)
'App\Providers\MyClassServiceProvider',
app/config/app.php(别名)
'MyClass' => 'App\Facades\MyClassFacade',
应用程序/Http/Controllers/MyClassController.php
<?php namespace App\Http\Controllers;
class MyClassController {
public function index($itemId = null)
{
$itemList = MyClass::list($itemId); // this is line error
return view('item.list')->with($itemList);
}
应用程序/Http/routes.php
Route::pattern('numeric', '[0-9]+');
Route::get('item/{numeric?}', array('as' => 'item_list', 'uses' => 'MyClassController@index'));
然后我运行命令
composer update
和
composer dump-autoload
但是我得到了这个错误:
Class 'App\Http\Controllers\MyClass' not found
我哪里错了?