1

ZendFramework で次の問題を解決するのを手伝ってください。

私はZFとPHP7が初めてです。数日間、コントローラーで Doctrine EntityManager を使用できませんでした。

私は持っている:

私のコントローラー

namespace Sonun\Controller;

use Zend\Mvc\Controller\AbstractActionController,
    Doctrine\ORM\EntityManager;

class IndexController extends AbstractActionController
{
    protected $entityManager;

    public function __construct(EntityManager $entityManager)
    {
        $this->entityManager = $entityManager;
    }

工場

    namespace Sonun\Controller;

use Sonun\Controller\IndexController,
    Zend\ServiceManager\FactoryInterface,
    Zend\ServiceManager\ServiceLocatorInterface;

class IndexControllerFactory implements FactoryInterface
{

    public function createService(ServiceLocatorInterface $sm)
    {
        $entityManager = $sm->get("Doctrine\ORM\EntityManager");
        return new IndexController($entityManager);
    }
}

module.config.php

return [

    "controllers" => [
        "invokables" => [
            "Sonun\Controller\IndexController" => "Sonun\Controller\IndexController"
        ]
    ],

    "router" => [
        "routes" => [
            "sonun" => [
                "type" => "segment",
                "options" => [
                    "route" => "/sonun/[:action/][:id/]",
                    "constraints" => [
                        "action" => "[a-zA-Z0-9_-]*",
                        "id" => "[0-9]*"
                    ],
                    "defaults" => [
                        "controller" => "Sonun\Controller\IndexController",
                        "action" => "index"
                    ]
                ]
            ]
        ]
    ],

    "view_manager" => [
        "template_path_stack" => [
            __DIR__."/../view"
        ]
    ],

    "service_manager" => [
        "factories" => [
            "Sonun\Controller\IndexController" => "Sonun\Controller\IndexControllerFactory"
        ]
    ]
]

エラー

     Fatal error: Uncaught TypeError: Argument 1 passed to ZendDeveloperTools\Exception\SerializableException::__construct() must be an instance of Exception, instance of TypeError given, called in C:\xampp\htdocs\sonun\vendor\zendframework\zend-developer-tools\src\Collector\ExceptionCollector.php on line 45 and defined in C:\xampp\htdocs\sonun\vendor\zendframework\zend-developer-tools\src\Exception\SerializableException.php:26 Stack trace: #0 C:\xampp\htdocs\sonun\vendor\zendframework\zend-developer-tools\src\Collector\ExceptionCollector.php(45): ZendDeveloperTools\Exception\SerializableException->__construct(Object(TypeError)) #1 C:\xampp\htdocs\sonun\vendor\zendframework\zend-developer-tools\src\Profiler.php(210): ZendDeveloperTools\Collector\ExceptionCollector->collect(Object(Zend\Mvc\MvcEvent)) #2 C:\xampp\htdocs\sonun\vendor\zendframework\zend-developer-tools\src\Listener\ProfilerListener.php(93): ZendDeveloperTools\Profiler->collect(Object(Zend\Mvc\MvcEvent)) #3 C:\xampp\htdocs\sonun\vendor\zendframework\zend-eventmanag in C:\xampp\htdocs\sonun\vendor\zendframework\zend-developer-tools\src\Exception\SerializableException.php on line 26
4

2 に答える 2

0

表示されている特定のエラーは ZendDeveloperTools によって発生し、1.1.1 リリースで修正されています。それを得るために実行composer update zendframework/zend-developer-toolsします。

ただし、これは問題の根本ではありません。そのモジュールは単に例外を報告しようとしています。この場合は型エラーです。そこからデバッグを続ける必要があります。

最後に、DoctrineModule (および関連モジュール) は、私の知る限り、まだ ZF の v3 リリースと互換性がありません。移行が完了するまで、v2 に切り替える必要がある場合があります。

于 2016-09-10T13:43:49.490 に答える