Skip to content

Instantly share code, notes, and snippets.

@basz
Created November 24, 2012 13:29
Show Gist options
  • Select an option

  • Save basz/4139714 to your computer and use it in GitHub Desktop.

Select an option

Save basz/4139714 to your computer and use it in GitHub Desktop.
<?php
namespace SndAdmin\Service\Form;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
use Zend\Form\FormFactoryAwareInterface;
use Zend\Form\Factory;
use SndAdmin\Form\DealerForm as Form;
class DealerFactory implements FactoryInterface{
/**
* Create service
*
* @param ServiceLocatorInterface $serviceLocator
* @return mixed
*/
public function createService(ServiceLocatorInterface $serviceLocator) {
$service = new Form();
$service->setInputFilter(new \Zend\InputFilter\InputFilter());
$service->setAttribute('action', $serviceLocator->get('application')->getMvcEvent()->getRequest()->getRequestUri());
/** @var $fs \SndAdmin\Form\DealerFieldset */
$fs = $serviceLocator->get('SndAdmin\Form\DealerFieldset');
$fs->setUseAsBaseFieldset(true);
$service->add($fs);
/** @var $fs \SndAdmin\Form\ContactFieldset */
$fs = $serviceLocator->get('SndAdmin\Form\ContactFieldset');
$fs->setUseAsBaseFieldset(false);
$service->add($fs);
/** @var $fs \SndAdmin\Form\ContactFieldset */
$fs = $serviceLocator->get('SndAdmin\Form\AddressFieldset');
$fs->setName('invoiceAddress');
$fs->setLabel('Invoice Address');
$fs->setUseAsBaseFieldset(false);
$fs->init();
$service->add($fs);
/** @var $fs \SndAdmin\Form\ContactFieldset */
$fs = $serviceLocator->get('SndAdmin\Form\AddressFieldset');
$fs->setName('shippingAddress');
$fs->setLabel('Shipping Address');
$fs->setUseAsBaseFieldset(false);
$fs->init();
$service->add($fs);
$service->setValidationGroup(array(
'dealer' => array(
'id',
'companyName',
'accountNumber',
),
'contact' => array(
'id',
'name',
'phone',
'mobile',
),
'invoiceAddress' => array(
'id',
'street',
'postcode',
'city',
'country',
),
'shippingAddress' => array(
'id',
'street',
'postcode',
'city',
'country',
),
));
$service->init();
return $service;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment