如何在laravel 4中注册命名空间

如何在laravel 4中注册命名空间,laravel,laravel-4,Laravel,Laravel 4,问题是: 在PostController.php中找不到第4行的类PostRepositoryInterface 或者在修补名称空间时,我甚至得到了类 找不到App\Models\Interfaces\PostRepositoryInterface 问题:如何在Laravel4中注册名称空间?我需要做什么才能让L4识别这个名称空间中的类/接口 Larave 3在ClassLoader中有一个$namespaces静态对象,您可以通过 Autoloader::名称空间(数组)( 'App\Mode

问题是: 在PostController.php中找不到第4行的类PostRepositoryInterface 或者在修补名称空间时,我甚至得到了类 找不到App\Models\Interfaces\PostRepositoryInterface

问题:如何在Laravel4中注册名称空间?我需要做什么才能让L4识别这个名称空间中的类/接口

Larave 3在ClassLoader中有一个$namespaces静态对象,您可以通过

Autoloader::名称空间(数组)(
'App\Models\Interfaces'=>path('App').'Models/Interfaces',
));
我不确定我是否对laravel 3有这样的权利,但无论如何,laravel 4中不存在AutoLoader,ClassLoader存在,但laravel 4中的ClassLoader中不存在方法名称空间

我已经看过了,但是如果不注册名称空间,它似乎不起作用。

示例结构:

app/models/interfaces
    PostRepostitoryInterface.php
app/models/repositories
    EloquentPostRepository.php


namespaces:
    App\Models\Repositories;
    App\Models\Interfaces;
文件:

PostRepositoryInterface.php


您可能忘了执行
composer dump autoload
。这将更新Laravel autoloads类的列表


您可以阅读更多信息。

在laravel irc频道上,我发现名称空间应该在L4中工作,而无需在任何地方注册它们。这是因为composer dump autoload为我将它们添加到composer/autoload文件中。所以这不是一个问题

这个问题显然是一个输入错误(我在上面的代码中找不到它,但在每一行复制/粘贴类名和名称空间之后,都发生了一些变化),而且在我的真实代码中,不知何故,我遗漏了EloquentPostRepository.php的“use”语句

use App\Models\Interfaces\PostRepositoryInterface;

现在,我又碰到了另一堵墙,试图使用ioc和控制器构造函数的名称空间接口(目标接口App\Models\Interfaces\PostRepositoryInterface不可实例化),但我想这应该是一个不同的问题

不,那是我的猜测,但事实并非如此。我发现了一个拼写错误和一个丢失的use语句,并得到了是否需要在laravel irc上注册的答案。不过谢谢:-)如果有人想看一看,这里还有另一个问题。