本文整理汇总了PHP中Zend\ServiceManager\ServiceLocatorInterface::injectFactory方法的典型用法代码示例。如果您正苦于以下问题:PHP ServiceLocatorInterface::injectFactory方法的具体用法?PHP ServiceLocatorInterface::injectFactory怎么用?PHP ServiceLocatorInterface::injectFactory使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend\ServiceManager\ServiceLocatorInterface
的用法示例。
在下文中一共展示了ServiceLocatorInterface::injectFactory方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: createService
public function createService(ServiceLocatorInterface $serviceLocator)
{
$form = new Form();
$serviceLocator->injectFactory($form);
$form->add(array('type' => $this->fileElement, 'name' => $this->fileName, 'attributes' => array('class' => 'hide')));
$form->get($this->fileName)->setIsMultiple($this->multiple);
$user = $serviceLocator->getServiceLocator()->get('AuthenticationService')->getUser();
$fileEntity = new $this->fileEntityClass();
if ($user instanceof AnonymousUser) {
$fileEntity->getPermissions()->grant($user, 'all');
} else {
$fileEntity->setUser($user);
}
$strategy = new FileUploadStrategy($fileEntity);
if ($this->multiple) {
$hydrator = new FileCollectionUploadHydrator($this->fileName, $strategy);
$form->add(array('type' => 'button', 'name' => 'remove', 'options' => array('label' => 'Remove all'), 'attributes' => array('class' => 'fu-remove-all btn btn-danger btn-xs pull-right')));
} else {
$hydrator = new EntityHydrator();
$hydrator->addStrategy($this->fileName, $strategy);
}
$form->setHydrator($hydrator);
$form->setOptions(array('use_files_array' => true));
$this->configureForm($form);
return $form;
}
示例2: createService
/**
* The configuration from the FileUploadFactory configuration
*
* @param ServiceLocatorInterface $serviceLocator
* @return Form
*/
public function createService(ServiceLocatorInterface $serviceLocator)
{
/* @var $serviceLocator \Zend\Form\FormElementManager */
$service = $serviceLocator->getServiceLocator();
$options = null;
if ($this->options) {
$options = $service->get($this->options);
}
// Retrieve configuration.
if ($this->configKey) {
$services = $serviceLocator->getServiceLocator();
$config = $services->get('config');
$config = isset($config['form_elements_config']['file_upload_factories'][$this->configKey]) ? $config['form_elements_config']['file_upload_factories'][$this->configKey] : array();
$this->config = $config;
}
$form = new Form();
$serviceLocator->injectFactory($form);
$form->add(array('type' => $this->fileElement, 'name' => $this->fileName, 'options' => array('use_formrow_helper' => false), 'attributes' => array('class' => 'hide')));
/* @var $element \Core\Form\Element\FileUpload */
$element = $form->get($this->fileName);
$element->setIsMultiple($this->multiple);
$user = $serviceLocator->getServiceLocator()->get('AuthenticationService')->getUser();
/* @var $fileEntity \Core\Entity\FileInterface */
$fileEntity = new $this->fileEntityClass();
if ($user instanceof AnonymousUser) {
$fileEntity->getPermissions()->grant($user, 'all');
} else {
$fileEntity->setUser($user);
}
$strategy = new FileUploadStrategy($fileEntity);
if ($this->multiple) {
$hydrator = new FileCollectionUploadHydrator($this->fileName, $strategy);
$form->add(array('type' => 'button', 'name' => 'remove', 'options' => array('label' => 'Remove all'), 'attributes' => array('class' => 'fu-remove-all btn btn-danger btn-xs pull-right')));
} else {
$hydrator = new EntityHydrator();
$hydrator->addStrategy($this->fileName, $strategy);
}
$form->setHydrator($hydrator);
$form->setOptions(array('use_files_array' => true));
$this->configureForm($form, $options);
return $form;
}