diff --git a/src/Sylius/Bundle/AddressingBundle/.gitignore b/src/Sylius/Bundle/AddressingBundle/.gitignore index 72de8f15d5..46aed33710 100644 --- a/src/Sylius/Bundle/AddressingBundle/.gitignore +++ b/src/Sylius/Bundle/AddressingBundle/.gitignore @@ -1,7 +1,5 @@ -phpunit.xml -Tests/autoload.php - vendor/ +bin/ composer.phar composer.lock diff --git a/src/Sylius/Bundle/AddressingBundle/.travis.yml b/src/Sylius/Bundle/AddressingBundle/.travis.yml index f545bfee90..fd4cf57e4c 100644 --- a/src/Sylius/Bundle/AddressingBundle/.travis.yml +++ b/src/Sylius/Bundle/AddressingBundle/.travis.yml @@ -4,10 +4,10 @@ php: - 5.3 - 5.4 -before_script: - - wget http://getcomposer.org/composer.phar - - php composer.phar install --dev +before_script: composer install --dev + +script: php bin/phpspec run notifications: - email: - - travis-ci@sylius.org + irc: "irc.freenode.org#sylius-dev" + email: travis-ci@sylius.org diff --git a/src/Sylius/Bundle/AddressingBundle/Controller/Backend/AddressController.php b/src/Sylius/Bundle/AddressingBundle/Controller/Backend/AddressController.php deleted file mode 100644 index ad88e0b343..0000000000 --- a/src/Sylius/Bundle/AddressingBundle/Controller/Backend/AddressController.php +++ /dev/null @@ -1,177 +0,0 @@ - - */ -class AddressController extends ContainerAware -{ - /** - * Show all paginated addresses. - * - * @param Request $request - * - * @return Response - */ - public function listAction(Request $request) - { - $addressManager = $this->container->get('sylius_addressing.manager.address'); - $addressSorter = $this->container->get('sylius_addressing.sorter.address'); - - $paginator = $addressManager->createPaginator($addressSorter); - $paginator->setCurrentPage($request->query->get('page', 1), true, true); - - $addresses = $paginator->getCurrentPageResults(); - - return $this->container->get('templating')->renderResponse('SyliusAddressingBundle:Backend/Address:list.html.'.$this->getEngine(), array( - 'addresses' => $addresses, - 'paginator' => $paginator, - 'sorter' => $addressSorter - )); - } - - /** - * Shows one address. - * - * @param mixed $id The address identifier - * - * @return Response - */ - public function showAction($id) - { - $address = $this->findAddressOr404($id); - - return $this->container->get('templating')->renderResponse('SyliusAddressingBundle:Backend/Address:show.html.'.$this->getEngine(), array( - 'address' => $address - )); - } - - /** - * Creating an address. - * - * @param Request $request - * - * @return Response - */ - public function createAction(Request $request) - { - $address = $this->container->get('sylius_addressing.manager.address')->createAddress(); - $form = $this->container->get('form.factory')->create('sylius_addressing_address', $address); - - if ('POST' === $request->getMethod()) { - $form->bindRequest($request); - - if ($form->isValid()) { - $this->container->get('event_dispatcher')->dispatch(SyliusAddressingEvents::ADDRESS_CREATE, new FilterAddressEvent($address)); - $this->container->get('sylius_addressing.manipulator.address')->create($address); - - return new RedirectResponse($this->container->get('router')->generate('sylius_addressing_backend_address_show', array( - 'id' => $address->getId() - ))); - } - } - - return $this->container->get('templating')->renderResponse('SyliusAddressingBundle:Backend/Address:create.html.'.$this->getEngine(), array( - 'form' => $form->createView() - )); - } - - /** - * Updating an address. - * - * @param Request $request - * @param mixed $id The address identifier - * - * @return Response - */ - public function updateAction(Request $request, $id) - { - $address = $this->findAddressOr404($id); - $form = $this->container->get('form.factory')->create('sylius_addressing_address', $address); - - if ('POST' === $request->getMethod()) { - $form->bindRequest($request); - - if ($form->isValid()) { - $this->container->get('event_dispatcher')->dispatch(SyliusAddressingEvents::ADDRESS_UPDATE, new FilterAddressEvent($address)); - $this->container->get('sylius_addressing.manipulator.address')->update($address); - - return new RedirectResponse($this->container->get('router')->generate('sylius_addressing_backend_address_show', array( - 'id' => $address->getId() - ))); - } - } - - return $this->container->get('templating')->renderResponse('SyliusAddressingBundle:Backend/Address:update.html.'.$this->getEngine(), array( - 'form' => $form->createView(), - 'address' => $address - )); - } - - /** - * Deletes address. - * - * @param mixed $id The address identifier - * - * @return Response - */ - public function deleteAction($id) - { - $address = $this->findAddressOr404($id); - - $this->container->get('event_dispatcher')->dispatch(SyliusAddressingEvents::ADDRESS_DELETE, new FilterAddressEvent($address)); - $this->container->get('sylius_addressing.manipulator.address')->delete($address); - - return new RedirectResponse($this->container->get('router')->generate('sylius_addressing_backend_address_list')); - } - - /** - * Tries to find address with given id. - * Throws special 404 exception when unsuccessful. - * - * @param mixed $id The address identifier - * - * @return AddressInterface - * - * @throws NotFoundHttpException - */ - protected function findAddressOr404($id) - { - if (!$address = $this->container->get('sylius_addressing.manager.address')->findAddress($id)) { - throw new NotFoundHttpException('Requested address does not exist'); - } - - return $address; - } - - /** - * Get engine. - * - * @return string - */ - protected function getEngine() - { - return $this->container->getParameter('sylius_addressing.engine'); - } -} diff --git a/src/Sylius/Bundle/AddressingBundle/DependencyInjection/Configuration.php b/src/Sylius/Bundle/AddressingBundle/DependencyInjection/Configuration.php index 9f566238d1..a5e4c8b110 100644 --- a/src/Sylius/Bundle/AddressingBundle/DependencyInjection/Configuration.php +++ b/src/Sylius/Bundle/AddressingBundle/DependencyInjection/Configuration.php @@ -67,18 +67,7 @@ class Configuration implements ConfigurationInterface ->arrayNode('controller') ->addDefaultsIfNotSet() ->children() - ->arrayNode('backend') - ->addDefaultsIfNotSet() - ->children() - ->scalarNode('address')->defaultValue('Sylius\\Bundle\\AddressingBundle\\Controller\\Backend\\AddressController')->end() - ->end() - ->end() - ->end() - ->end() - ->arrayNode('manipulator') - ->addDefaultsIfNotSet() - ->children() - ->scalarNode('address')->defaultValue('Sylius\\Bundle\\AddressingBundle\\Manipulator\\AddressManipulator')->end() + ->scalarNode('address')->defaultValue('Sylius\\Bundle\\ResourceBundle\\Controller\\ResourceController')->end() ->end() ->end() ->arrayNode('form') diff --git a/src/Sylius/Bundle/AddressingBundle/DependencyInjection/SyliusAddressingExtension.php b/src/Sylius/Bundle/AddressingBundle/DependencyInjection/SyliusAddressingExtension.php index ee8a7ebf5a..593fdf4a4d 100644 --- a/src/Sylius/Bundle/AddressingBundle/DependencyInjection/SyliusAddressingExtension.php +++ b/src/Sylius/Bundle/AddressingBundle/DependencyInjection/SyliusAddressingExtension.php @@ -45,74 +45,10 @@ class SyliusAddressingExtension extends Extension $container->setParameter('sylius_addressing.driver', $config['driver']); $container->setParameter('sylius_addressing.engine', $config['engine']); - $configurations = array( - 'controllers', - 'forms', - 'manipulators' - ); + $container->setParameter('sylius_addressing.model.address.class', $config['classes']['model']['address']); + $container->setParameter('sylius_addressing.controller.address.class', $config['classes']['controller']['address']); + $container->setParameter('sylius_addressing.form.type.address.class', $config['classes']['form']['type']['address']); - foreach($configurations as $basename) { - $loader->load(sprintf('%s.xml', $basename)); - } - - $this->remapParametersNamespaces($config['classes'], $container, array( - 'manipulator' => 'sylius_addressing.manipulator.%s.class', - 'model' => 'sylius_addressing.model.%s.class' - )); - - $this->remapParametersNamespaces($config['classes']['form'], $container, array( - 'type' => 'sylius_addressing.form.type.%s.class', - )); - - $this->remapParametersNamespaces($config['classes']['controller'], $container, array( - 'backend' => 'sylius_addressing.controller.backend.%s.class', - 'frontend' => 'sylius_addressing.controller.frontend.%s.class' - )); - } - - /** - * Remap parameters. - * - * @param array $config - * @param ContainerBuilder $container - * @param array $map - */ - protected function remapParameters(array $config, ContainerBuilder $container, array $map) - { - foreach ($map as $name => $paramName) { - if (isset($config[$name])) { - $container->setParameter($paramName, $config[$name]); - } - } - } - - /** - * Remap parameter namespaces. - * - * @param array $config - * @param ContainerBuilder $container - * @param array $namespaceConfig - */ - protected function remapParametersNamespaces(array $config, ContainerBuilder $container, array $namespaces) - { - foreach ($namespaces as $ns => $map) { - if ($ns) { - if (!isset($config[$ns])) { - continue; - } - $namespaceConfig = $config[$ns]; - } else { - $namespaceConfig = $config; - } - if (is_array($map)) { - $this->remapParameters($namespaceConfig, $container, $map); - } else { - foreach ($namespaceConfig as $name => $value) { - if (null !== $value) { - $container->setParameter(sprintf($map, $name), $value); - } - } - } - } + $loader->load('services.xml'); } } diff --git a/src/Sylius/Bundle/AddressingBundle/Entity/AddressManager.php b/src/Sylius/Bundle/AddressingBundle/Entity/AddressManager.php deleted file mode 100644 index 2e7b9b2362..0000000000 --- a/src/Sylius/Bundle/AddressingBundle/Entity/AddressManager.php +++ /dev/null @@ -1,133 +0,0 @@ - - */ -class AddressManager extends BaseAddressManager -{ - /** - * Entity manager. - * - * @var EntityManager - */ - protected $entityManager; - - /** - * Address repository. - * - * @var EntityRepository - */ - protected $repository; - - /** - * Constructor. - * - * @param EntityManager $entityManager - * @param string $class - */ - public function __construct(EntityManager $entityManager, $class) - { - parent::__construct($class); - - $this->entityManager = $entityManager; - $this->repository = $entityManager->getRepository($class); - } - - /** - * {@inheritdoc} - */ - public function createAddress() - { - $class = $this->getClass(); - - return new $class; - } - - /** - * {@inheritdoc} - */ - public function createPaginator(SorterInterface $sorter = null) - { - $queryBuilder = $this->repository->createQueryBuilder('a') - ->orderBy('a.createdAt', 'DESC') - ; - - if (null !== $sorter) { - $sorter->sort($queryBuilder); - } - - return new Pagerfanta(new DoctrineORMAdapter($queryBuilder->getQuery())); - } - - /** - * {@inheritdoc} - */ - public function persistAddress(AddressInterface $address) - { - $this->entityManager->persist($address); - $this->entityManager->flush(); - } - - /** - * {@inheritdoc} - */ - public function removeAddress(AddressInterface $address) - { - $this->entityManager->remove($address); - $this->entityManager->flush(); - } - - /** - * {@inheritdoc} - */ - public function findAddress($id) - { - return $this->repository->find($id); - } - - /** - * {@inheritdoc} - */ - public function findAddressBy(array $criteria) - { - return $this->repository->findOneBy($criteria); - } - - /** - * {@inheritdoc} - */ - public function findAddresses() - { - return $this->repository->findAll(); - } - - /** - * {@inheritdoc} - */ - public function findAddressesBy(array $criteria) - { - return $this->repository->findBy($criteria); - } -} diff --git a/src/Sylius/Bundle/AddressingBundle/EventDispatcher/Event/FilterAddressEvent.php b/src/Sylius/Bundle/AddressingBundle/EventDispatcher/Event/FilterAddressEvent.php deleted file mode 100644 index f3b2f6deed..0000000000 --- a/src/Sylius/Bundle/AddressingBundle/EventDispatcher/Event/FilterAddressEvent.php +++ /dev/null @@ -1,50 +0,0 @@ - - */ -class FilterAddressEvent extends Event -{ - /** - * Address. - * - * @var AddressInterface - */ - private $address; - - /** - * Constructor. - * - * @param AddressInterface $address - */ - public function __construct(AddressInterface $address) - { - $this->address = $address; - } - - /** - * Get address. - * - * @return AddressInterface - */ - public function getAddress() - { - return $this->address; - } -} diff --git a/src/Sylius/Bundle/AddressingBundle/EventDispatcher/SyliusAddressingEvents.php b/src/Sylius/Bundle/AddressingBundle/EventDispatcher/SyliusAddressingEvents.php deleted file mode 100644 index 0e090c93ed..0000000000 --- a/src/Sylius/Bundle/AddressingBundle/EventDispatcher/SyliusAddressingEvents.php +++ /dev/null @@ -1,24 +0,0 @@ - - */ -final class SyliusAddressingEvents -{ - const ADDRESS_CREATE = 'sylius_addressing.event.address.create'; - const ADDRESS_UPDATE = 'sylius_addressing.event.address.update'; - const ADDRESS_DELETE = 'sylius_addressing.event.address.delete'; -} diff --git a/src/Sylius/Bundle/AddressingBundle/Manipulator/AddressManipulator.php b/src/Sylius/Bundle/AddressingBundle/Manipulator/AddressManipulator.php deleted file mode 100644 index 46297bf9ac..0000000000 --- a/src/Sylius/Bundle/AddressingBundle/Manipulator/AddressManipulator.php +++ /dev/null @@ -1,64 +0,0 @@ - - */ -class AddressManipulator implements AddressManipulatorInterface -{ - /** - * Address manager. - * - * @var AddressManagerInterface - */ - protected $addressManager; - - /** - * Constructor. - * - * @param $addressManager AddressManagerInterface - */ - public function __construct(AddressManagerInterface $addressManager) - { - $this->addressManager = $addressManager; - } - - /** - * {@inheritdoc} - */ - public function create(AddressInterface $address) - { - $this->addressManager->persistAddress($address); - } - - /** - * {@inheritdoc} - */ - public function update(AddressInterface $address) - { - $this->addressManager->persistAddress($address); - } - - /** - * {@inheritdoc} - */ - public function delete(AddressInterface $address) - { - $this->addressManager->removeAddress($address); - } -} diff --git a/src/Sylius/Bundle/AddressingBundle/Manipulator/AddressManipulatorInterface.php b/src/Sylius/Bundle/AddressingBundle/Manipulator/AddressManipulatorInterface.php deleted file mode 100644 index 825b810e9a..0000000000 --- a/src/Sylius/Bundle/AddressingBundle/Manipulator/AddressManipulatorInterface.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ -interface AddressManipulatorInterface -{ - /** - * Creates a address. - * - * @param AddressInterface $address - */ - function create(AddressInterface $address); - - /** - * Updates a address. - * - * @param AddressInterface $address - */ - function update(AddressInterface $address); - - /** - * Deletes a address. - * - * @param AddressInterface $address - */ - function delete(AddressInterface $address); -} diff --git a/src/Sylius/Bundle/AddressingBundle/Model/Address.php b/src/Sylius/Bundle/AddressingBundle/Model/Address.php index 5a5384a91d..102a3baef1 100644 --- a/src/Sylius/Bundle/AddressingBundle/Model/Address.php +++ b/src/Sylius/Bundle/AddressingBundle/Model/Address.php @@ -47,14 +47,6 @@ abstract class Address implements AddressInterface return $this->id; } - /** - * {@inheritdoc} - */ - public function setId($id) - { - $this->id = $id; - } - /** * {@inheritdoc} */ diff --git a/src/Sylius/Bundle/AddressingBundle/Model/AddressInterface.php b/src/Sylius/Bundle/AddressingBundle/Model/AddressInterface.php index 3a719a5f7e..20a1c22dc2 100644 --- a/src/Sylius/Bundle/AddressingBundle/Model/AddressInterface.php +++ b/src/Sylius/Bundle/AddressingBundle/Model/AddressInterface.php @@ -11,27 +11,15 @@ namespace Sylius\Bundle\AddressingBundle\Model; +use Sylius\Bundle\ResourceBundle\Model\ResourceInterface; + /** * Address model interface. * * @author Paweł Jędrzejewski */ -interface AddressInterface +interface AddressInterface extends ResourceInterface { - /** - * Returns address id. - * - * @return integer - */ - function getId(); - - /** - * Set id. - * - * @param mixed $id - */ - function setId($id); - /** * Get creation time. * diff --git a/src/Sylius/Bundle/AddressingBundle/Model/AddressManager.php b/src/Sylius/Bundle/AddressingBundle/Model/AddressManager.php deleted file mode 100644 index efc66108cc..0000000000 --- a/src/Sylius/Bundle/AddressingBundle/Model/AddressManager.php +++ /dev/null @@ -1,45 +0,0 @@ - - */ -abstract class AddressManager implements AddressManagerInterface -{ - /** - * Address model class. - * - * @var string - */ - protected $class; - - /** - * Constructor. - * - * @param string $class The address model class - */ - public function __construct($class) - { - $this->class = $class; - } - - /** - * {@inheritdoc} - */ - public function getClass() - { - return $this->class; - } -} diff --git a/src/Sylius/Bundle/AddressingBundle/Model/AddressManagerInterface.php b/src/Sylius/Bundle/AddressingBundle/Model/AddressManagerInterface.php deleted file mode 100644 index 9c311f7e10..0000000000 --- a/src/Sylius/Bundle/AddressingBundle/Model/AddressManagerInterface.php +++ /dev/null @@ -1,85 +0,0 @@ - - */ -interface AddressManagerInterface -{ - /** - * Creates address model. - * - * @return AddressInterface - */ - function createAddress(); - - /** - * Creates paginator. - * - * @param SorterInterface $sorter - */ - function createPaginator(SorterInterface $sorter = null); - - /** - * Persists address model. - * - * @param AddressInterface $address - */ - function persistAddress(AddressInterface $address); - - /** - * Removes address model. - * - * @param AddressInterface $address - */ - function removeAddress(AddressInterface $address); - - /** - * Finds address by id. - * - * @param integer $id The address id - */ - function findAddress($id); - - /** - * Finds address by criteria. - * - * @param array $criteria The criteria - */ - function findAddressBy(array $criteria); - - /** - * Finds all adresses. - * - * @return array The adressess - */ - function findAddresses(); - - /** - * Finds addresses by criteria. - * - * @param array $criteria The criteria - */ - function findAddressesBy(array $criteria); - - /** - * Returns address model class. - * - * @return string The address model class - */ - function getClass(); -} diff --git a/src/Sylius/Bundle/AddressingBundle/Resources/config/container/controllers.xml b/src/Sylius/Bundle/AddressingBundle/Resources/config/container/controllers.xml deleted file mode 100644 index a6d3aa3b08..0000000000 --- a/src/Sylius/Bundle/AddressingBundle/Resources/config/container/controllers.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/src/Sylius/Bundle/AddressingBundle/Resources/config/container/driver/doctrine/orm.xml b/src/Sylius/Bundle/AddressingBundle/Resources/config/container/driver/doctrine/orm.xml index c40846c670..4396b4b1be 100644 --- a/src/Sylius/Bundle/AddressingBundle/Resources/config/container/driver/doctrine/orm.xml +++ b/src/Sylius/Bundle/AddressingBundle/Resources/config/container/driver/doctrine/orm.xml @@ -18,24 +18,27 @@ > - Sylius\Bundle\AddressingBundle\Entity\AddressManager - Sylius\Bundle\AddressingBundle\Sorting\ORM\AddressSorter + Sylius\Bundle\ResourceBundle\Doctrine\ResourceManager + Sylius\Bundle\ResourceBundle\Doctrine\ORM\ResourceRepository - + + %sylius_addressing.model.address.class% + + + + %sylius_addressing.model.address.class% + %sylius_addressing.model.address.class% - - - - - - - - diff --git a/src/Sylius/Bundle/AddressingBundle/Resources/config/container/manipulators.xml b/src/Sylius/Bundle/AddressingBundle/Resources/config/container/manipulators.xml deleted file mode 100644 index 5cc8562cc5..0000000000 --- a/src/Sylius/Bundle/AddressingBundle/Resources/config/container/manipulators.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - diff --git a/src/Sylius/Bundle/AddressingBundle/Resources/config/container/forms.xml b/src/Sylius/Bundle/AddressingBundle/Resources/config/container/services.xml similarity index 67% rename from src/Sylius/Bundle/AddressingBundle/Resources/config/container/forms.xml rename to src/Sylius/Bundle/AddressingBundle/Resources/config/container/services.xml index a78d80a61b..2e2e9cd2ac 100644 --- a/src/Sylius/Bundle/AddressingBundle/Resources/config/container/forms.xml +++ b/src/Sylius/Bundle/AddressingBundle/Resources/config/container/services.xml @@ -18,12 +18,19 @@ > + + sylius_addressing + address + SyliusAddressingBundle:Address + + + + %sylius_addressing.model.address.class% - diff --git a/src/Sylius/Bundle/AddressingBundle/Resources/config/routing/backend/address.yml b/src/Sylius/Bundle/AddressingBundle/Resources/config/routing/backend/address.yml deleted file mode 100644 index f45513c396..0000000000 --- a/src/Sylius/Bundle/AddressingBundle/Resources/config/routing/backend/address.yml +++ /dev/null @@ -1,22 +0,0 @@ -# This file is part of the Sylius package. -# (c) Paweł Jędrzejewski - -sylius_addressing_backend_address_create: - pattern: /create - defaults: { _controller: sylius_addressing.controller.backend.address:createAction } - -sylius_addressing_backend_address_update: - pattern: /{id}/update - defaults: { _controller: sylius_addressing.controller.backend.address:updateAction } - -sylius_addressing_backend_address_delete: - pattern: /{id}/delete - defaults: { _controller: sylius_addressing.controller.backend.address:deleteAction } - -sylius_addressing_backend_address_list: - pattern: /list - defaults: { _controller: sylius_addressing.controller.backend.address:listAction } - -sylius_addressing_backend_address_show: - pattern: /{id} - defaults: { _controller: sylius_addressing.controller.backend.address:showAction } diff --git a/src/Sylius/Bundle/AddressingBundle/Resources/config/validation.xml b/src/Sylius/Bundle/AddressingBundle/Resources/config/validation.xml index d3ed81b246..98b88b1a77 100644 --- a/src/Sylius/Bundle/AddressingBundle/Resources/config/validation.xml +++ b/src/Sylius/Bundle/AddressingBundle/Resources/config/validation.xml @@ -1,4 +1,4 @@ - +