ZF2に標準のアプリケーションモジュールがあります。デフォルトで設定されており、何も変更していません。私はいくつかのものを追加しました:
module/
Application/
src/
Application/
Entity/
Product/
**Product.php**
Controller/
**IndexController.php**
製品.php
namespace Application\Entity;
class Product
{
}
IndexController.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標準に従わなければならないことがわかりましたが、少し説明していただけますか? また、この動作を変更できますか? 良いと言っているのではなく、実際にどのように機能するかを知りたいだけです。たとえば、Application\Entity\Product を使用したいのですが、Product クラスは /Application/Entity/Product/Product.php にあります。前もって感謝します!