Xin chào một người mới đến với Zend và đã được yêu cầu phát triển với Z2. Tôi đang cố gắng để thêm chức năng tái sử dụng thông qua các plugin điều khiển, nhưng tôi không có thành công với các bài kiểm tra đơn vị. Nó hoạt động tốt bên trong ứng dụng thông thường.Plug-in điều khiển Zend Framework 2 không khả dụng trong các bài kiểm tra đơn vị
// Application\Controller\Plugin\HelloWorld.php
namespace Application\Controller\Plugin;
use Zend\Mvc\Controller\Plugin\AbstractPlugin;
use Zend\Http\Client;
use Zend\Http\Request;
class HelloWorld extends AbstractPlugin
{
public function helloWorld()
{
return "HELLO WORLD";
}
}
// Application\Controller\IndexController.php
namespace Application\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class IndexController extends AbstractActionController
{
public function indexAction()
{
echo $this->helloworld()->helloWorld();
}
}
//Application\config\module.config.php
...
'controller_plugins' => array(
'invokables' => array(
'helloworld' => 'Application\Controller\Plugin\HelloWorld',
),
),
...
lỗi tôi nhận được là:
Zend\ServiceManager\Exception\ServiceNotFoundException: Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for helloworld
Cảm ơn bạn rất nhiều !!! Điều đó đã giết chết tôi! –
Đây là một câu trả lời cổ xưa, nhưng trong trường hợp bạn vẫn còn ở quanh Jurian, hoặc những người khác tìm thấy câu trả lời này ... ngay khi bạn gọi $ this-> controller-> indexAction() Tôi nghĩ bạn đang gặp rắc rối vì nó có khả năng rằng một hành động điều khiển sẽ gọi một cái gì đó từ lớp AbstractActionController mà bộ điều khiển kế thừa từ đó. Không khởi tạo khung công tác, không làm việc. –
Không cần phải là Greg, nếu indexAction của bạn không chứa các lời gọi đến bất kỳ phương thức trừu tượng nào, tất cả đều ổn. –