問題: PostController.php の 4 行目、または名前空間をいじくり回すクラスの PostRepostioryInterface が見つかりません クラス App\Models\Interfaces\PostRepositoryInterface が見つかりません
質問: laravel 4 で名前空間を登録する方法は? L4 にこの名前空間のクラス/インターフェースを認識させるにはどうすればよいですか?
Larave 3 には、ClassLoader に $namespaces 静的オブジェクトがあり、名前空間を追加することができました
Autoloader::namespaces(array(
'App\Models\Interfaces' => path('app').'models/interfaces',
));
laravel 3にその権利があるかどうかはわかりませんが、いずれにしても、Laravel 4にはAutoLoaderが存在せず、ClassLoaderは存在しますが、Laravel 4のClassLoaderにはメソッド名前空間が存在しません.
私はこれを見てきましたが、どうにかして名前空間を登録しないとうまくいかないようです。 Laravel 4 で名前空間を使用する
構造例:
app/models/interfaces
PostRepostitoryInterface.php
app/models/repositories
EloquentPostRepository.php
namespaces:
App\Models\Repositories;
App\Models\Interfaces;
ファイル:
PostRepositoryInterface.php
<?php namespace App\Models\Interfaces;
interface PostRepositoryInterface {
public function all();
public function find($id);
public function store($data);
}
EloquentPostRepository.php
<?php namespace App\Models\Repositories;
use App\Models\Interfaces\PostRepositoryInterface;
class EloquentPostRepository implements PostRepositoryInterface {
public function all()
{
return Post::all();
}
public function find($id)
{
return Post::find($id);
}
public function store($data)
{
return Post::save($data);
}
}
PostController.php
<?php
use App\Models\Interfaces\PostRepositoryInterface;
class PostsController extends BaseController {
public function __construct( PostRepositoryInterface $posts )
{
$this->posts = $posts;
}
ありがとう