Commit cb1e559c authored by Hermann Mayer's avatar Hermann Mayer
Browse files

Finished Service Structure by refactoring the fixtures class, which now uses...

Finished Service Structure by refactoring the fixtures class, which now uses the metadata of the service handler to provide the service entities.
parent 2ce6e695
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -2,13 +2,12 @@

namespace Jity\HomepageBundle\DataFixtures\ORM;

use Jity\HomepageBundle\Entity\User;

use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Jity\HomepageBundle\Entity\User,
    Doctrine\Common\Persistence\ObjectManager,
    Doctrine\Common\DataFixtures\AbstractFixture,
    Doctrine\Common\DataFixtures\OrderedFixtureInterface,
    Symfony\Component\DependencyInjection\ContainerAwareInterface,
    Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * LoadUserData 
+35 −45
Original line number Diff line number Diff line
@@ -2,11 +2,12 @@

namespace Jity\HomepageBundle\DataFixtures\ORM;

use Jity\HomepageBundle\Entity\Service;

use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Jity\HomepageBundle\Entity\Service,
    Doctrine\Common\Persistence\ObjectManager,
    Doctrine\Common\DataFixtures\AbstractFixture,
    Doctrine\Common\DataFixtures\OrderedFixtureInterface,
    Symfony\Component\DependencyInjection\ContainerAwareInterface,
    Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * LoadServiceData 
@@ -16,8 +17,22 @@ use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
 * @version $id$
 * @author Hermann Mayer <hermann.mayer92@gmail.com> 
 */
class Load04ServiceData extends AbstractFixture implements OrderedFixtureInterface
class Load04ServiceData extends AbstractFixture implements OrderedFixtureInterface, ContainerAwareInterface
{
    private $container;

    /**
     * setContainer 
     * 
     * @param ContainerInterface $container 
     * @access public
     * @return void
     */
    public function setContainer(ContainerInterface $container = null)
    {
        $this->container = $container;
    }

    /**
     * load 
     * 
@@ -27,52 +42,27 @@ class Load04ServiceData extends AbstractFixture implements OrderedFixtureInterfa
     */
    public function load(ObjectManager $manager)
    {
        // Build Homepage Service
        $homepage = new Service();
        $homepage
            ->setName('homepage')
            ->setTitle('Homepage')
            ->setDescription('Definiert die Homepage, den Startpunkt der Applikation.')
        ;
        $servHandler = $this->container->get('jity_service.handler');

        // Build Contact Service
        $contact = new Service();
        $contact
            ->setName('contact')
            ->setTitle('Kontakt')
            ->setDescription('Fügt ein simples Kontakt-Formular hinzu.')
        ;
        foreach ($servHandler->getMetadata() as $name => $meta) {

        // Build Impress Service
        $impress = new Service();
        $impress
            ->setName('impress')
            ->setTitle('Impressum')
            ->setDescription('Fügt ein Impressum hinzu.')
        ;

        // Build Blog Service
        $blog = new Service();
        $blog
            ->setName('blog')
            ->setTitle('Blog')
            ->setDescription('Fügt die Startseite eines Blogs hinzu.')
            // Build new Service with the Metadata
            $serv = new Service();
            $serv
                ->setName($name)
                ->setTitle($meta['title'])
                ->setDescription($meta['description'])
            ;

            // Save all Groups
        $manager->persist($homepage);
        $manager->persist($contact);
        $manager->persist($impress);
        $manager->persist($blog);
            $manager->persist($serv);

            // Build Fixture References
            $this->addReference($name . '-service', $serv);
        }

        // Flush to Database
        $manager->flush();

        // Build Fixture References
        $this->addReference('homepage-service', $homepage);
        $this->addReference('contact-service', $contact);
        $this->addReference('impress-service', $impress);
        $this->addReference('blog-service', $blog);
    }

    /**
+0 −16
Original line number Diff line number Diff line
@@ -376,22 +376,6 @@ erreichen, oder über Google+.
            ->addComment($comment)
        ;


        // Build Home Page
        $test = new Article();
        $test
            ->setTitle('Blubber Test')
            ->setContent('21')
            ->setCategory($this->getReference('default-category'))
            ->setSidebar($this->getReference('blog-sidebar'))
            ->setNavigation($this->getReference('blog-navigation'))
            ->setAuthor($this->getReference('admin-user'))
            ->setIcon('icon-font')
        ;

        $manager->persist($test);


        /*
         * -------------------------------------------------------------------- 
         */
+19 −1
Original line number Diff line number Diff line
@@ -23,6 +23,24 @@ abstract class AbstractService
     */
    abstract public function getName();

    /**
     * getTitle 
     * 
     * @abstract
     * @access public
     * @return void
     */
    abstract public function getTitle();

    /**
     * getDescription 
     * 
     * @abstract
     * @access public
     * @return void
     */
    abstract public function getDescription();

    /**
     * process 
     * 
+23 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ use Symfony\Component\HttpFoundation\Response;
/**
 * BlogController 
 * 
 * @DI\Service("jity_service.controller.blog", scope="request")
 * @DI\Service("jity_service.controller.blog")
 * @DI\Tag("jity_service.controller")
 *
 * @uses Controller
@@ -31,6 +31,28 @@ class BlogController extends AbstractService
        return 'blog';
    }

    /**
     * getTitle 
     * 
     * @access public
     * @return void
     */
    public function getTitle()
    {
        return 'Blog Dashboard';
    }

    /**
     * getDescription 
     * 
     * @access public
     * @return void
     */
    public function getDescription()
    {
        return 'Fügt die Startseite eines Blogs hinzu.';
    }

    /**
     * process 
     * 
Loading