0

我是使用命名空间的新手,我正在尝试重写一些旧代码来使用命名空间。

我当前的文件夹结构如下所示:

library
| - App
| - - Service
| - - - IService.php
| - MyApp
| - - Service
| - - - Test.php

Test.php 的类过去看起来像这样:

class MyApp_Service_Test extends App_Service_IService

但我正在尝试实现命名空间并将其调整为:

namespace library\MyApp\Service

class Test extends library\App\Service\IService

但是,这样做我的错误日志显示以下内容:

Fatal: Class 'library\MyApp\Service\library\Api\Service\IService' not found

也就是说,我也曾尝试在 IService 中执行以下操作:

 namespace library\App\Service

 class IService

并将 Test.php 更改为

 class Test extends IService

我知道我做的完全错了,但一些方向将不胜感激!

4

1 回答 1

0

您假设文件夹结构和命名空间之间存在关系。那不是真的。命名空间是一种组织类的方法,并且可以在不同的命名空间中定义相同的类名。

也就是说,您可以在类和命名空间之间建立关系。因此,您需要实现一个自动加载器,将命名空间映射到文件夹中。

于 2012-10-18T20:11:45.813 回答