के माध्यम से पहुँच का निर्माण मैं zf2 में एक साधारण सेवा है जो मैं viewhelperzf2 सरल सेवा और viewhelper
चरण 1 में उपयोग कर उपयोग कर सकते हैं बनाने के लिए कोशिश कर रहा हूँ। मैं src/आवेदन/सेवा/Service1.php में एक वर्ग craeted है का पालन के रूप में
namespace Application\Service;
use Zend\ServiceManager\ServiceLocatorAwareInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
class Service1 implements ServiceLocatorAwareInterface
{
public function __construct()
{
}
public function setServiceLocator(ServiceLocatorInterface $serviceLocator)
{
}
public function getServiceLocator()
{
}
}
चरण 2 मैं इस module.php फ़ाइल में नीचे के रूप में की स्थापना की।
public function getServiceConfig()
{
return array(
'factories' => array(
'Application\Service\Service1' => function ($sm) {
return new \Application\Service\Service1($sm);
},
)
);
}
public function onBootstrap($e)
{
$serviceManager = $e->getApplication()->getServiceManager();
$serviceManager->get('viewhelpermanager')->setFactory('Abc', function ($sm) use ($e) {
return new \Application\View\Helper\Abc($sm);
});
}
चरण 3 अंत में मैं यह मेरे विचार सहायक src/आवेदन/देखें/हेल्पर/Abc.php परीक्षा में geting हूँ() इस तरह विधि, द्वितीय टिप्पणी इस लाइन $this->sm->get('Application\Service\Service1');
कोई त्रुटि है, वहाँ होना चाहिए कुछ जो मैं सेवा में लापता हूं?
namespace Application\View\Helper;
use Zend\View\Helper\AbstractHelper;
class Abc extends AbstractHelper
{
protected $sm;
public function test()
{
$this->sm->get('Application\Service\Service1');
}
public function __construct($sm) {
$this->sm = $sm;
}
}
चरण 4 तो मैं इस तरह दृश्य में से एक में अपने परीक्षण दृश्य सहायक बोल रहा हूँ।
$this->Abc()->test();
मुझे निम्न त्रुटि मिल रही है।
Fatal error: Call to undefined method Application\Service\Service1::setView() in vendor/zendframework/zendframework/library/Zend/View/HelperPluginManager.php on line 127 Call Stack:
मुझे क्या याद आ रही है? module.config.php की
निकालने:
कृपया कुछ और (असली) कोड दिखाएं। ऐसा लगता है कि आप 'एबीसी' के बजाय कहीं भी 'सेवा 1' उदाहरण वापस कर रहे हैं। इस प्रकार, व्यू हेल्पर तंत्र 'सेवा 1' उदाहरण में दृश्य उदाहरण को इंजेक्ट करने का प्रयास करता है। –
मैंने सेवा 1 से My1serve में नाम और प्रत्येक संदर्भ बदल दिया है, लेकिन फिर भी वही त्रुटि प्राप्त हो रही है अपरिभाषित विधि My1serve :: setView() पर कॉल करें। मैंने अपने कोड में कहीं भी My1serve नाम का उपयोग नहीं किया है, जिसे मैंने पहले से ही प्रश्न में दिखाया है। – Developer
समस्या के लिए पूरी तरह फिट बैठता है। हम थोड़ी अधिक जानकारी के बिना आपकी मदद नहीं कर पाएंगे। –