我在 ZF2 中有标准的应用程序模块。它是默认配置的,我没有更改任何内容。我刚刚添加了一些东西:
module/
Application/
src/
Application/
Entity/
Product/
**Product.php**
Controller/
**IndexController.php**
产品.php
namespace Application\Entity;
class Product
{
}
索引控制器.php
namespace Application\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Application\Entity\Product;
class IndexController extends AbstractActionController
{
public function indexAction()
{
$product = new Product();
}
}
我收到以下错误:
Fatal error: Class 'Application\Entity\Product' not found in \module\Application\src\Application\Controller\IndexController.php on line 20
我使用相同的命名空间,但它没有看到它。为什么?
PS:如果我将 Product.php 更改为以下内容:
namespace Application\Entity\Product;
class Product
{
}
然后在 IndexController.php 中,以下代码将起作用:
namespace Application\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Application\Entity\Product\Product;
class IndexController extends AbstractActionController
{
public function indexAction()
{
$product = new Product();
}
}
更新 我看到我必须遵循 PSR-0 标准,但你能解释一下,这个标准是来自 php 核心还是只是在 ZF2 框架中实现的功能?我也可以改变这种行为吗?我不是说它很好,我只是想知道它实际上是如何工作的!例如,我想使用 Application\Entity\Product,而 Product 类位于 /Application/Entity/Product/Product.php。先感谢您!