Я хочу, чтобы создать пользовательский элемент и использовать короткое имя для добавления элемента в форме, используя новый ServiceManager tecnique для ZF2 V.2.1 +Zend Framework 2 Пользовательские элементы, использующие ServiceManager не работают
Я пытаюсь скопировать тот же образец zend documentation шаг за шагом, но он не работает.
Когда я использую сервис Writting короткое имя, он вызывает исключение, поскольку сервис не найден:
Zend\ServiceManager\Exception\ServiceNotFoundException
File:
Zend\ServiceManager\ServiceManager.php:456
Message:
Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for Test
Я думаю, у меня есть все классы одинаково см следует
Это мой пользовательский элемент:
namespace SecureDraw\Form\Element;
use Zend\Form\Element\Text;
class ProvaElement extends Text {
protected $hola;
public function hola(){
return 'hola';
}
}
Это мой module.php у меня есть invokable обслуживание быть в состоянии использовать короткое имя:
class Module implements FormElementProviderInterface {
//Rest of class
public function getFormElementConfig() {
return array(
'invokables' => array(
'Test' => 'SecureDraw\Form\Element\ProvaElement'
)
);
}
}
В моей форме я использую для добавления элемента, комментируемая линия работает нормально, но с коротким именем не работает:
$this->add(array(
'name' => 'prova',
//'type' => 'SecureDraw\Form\Element\ProvaElement',
'type' => 'Test', //Fail
));
В моем действии:
$formManager = $this->serviceLocator->get('FormElementManager');
$form = $formManager->get('SecureDraw\Form\UserForm');
$prova = $form->get('prova');
echo $prova->hola();
Вы указали использование SecureDraw \ Form \ Element \ или что-то вроде этого, в верхней части, если нет, укажите, пожалуйста, имя пространства имен, которое может избежать этой проблемы, ошибка явно говорит о том, что он не может найти класс, который вы пытаетесь создать экземпляр –