From 8dda047088c8eb974bd3cab12e7c36aefae83652 Mon Sep 17 00:00:00 2001 From: ButenkoD Date: Wed, 27 Nov 2013 20:29:12 +0200 Subject: [PATCH 1/2] HomeBundle created --- app/AppKernel.php | 1 + app/config/routing.yml | 4 +++ src/Butenko/HomeBundle/ButenkoHomeBundle.php | 9 ++++++ .../Controller/DefaultController.php | 13 +++++++++ .../ButenkoHomeExtension.php | 28 ++++++++++++++++++ .../DependencyInjection/Configuration.php | 29 +++++++++++++++++++ .../HomeBundle/Resources/config/routing.yml | 3 ++ .../HomeBundle/Resources/config/services.yml | 7 +++++ .../Resources/views/Default/index.html.twig | 1 + .../Controller/DefaultControllerTest.php | 17 +++++++++++ web/.htaccess | 8 ++--- 11 files changed, 116 insertions(+), 4 deletions(-) create mode 100644 src/Butenko/HomeBundle/ButenkoHomeBundle.php create mode 100644 src/Butenko/HomeBundle/Controller/DefaultController.php create mode 100644 src/Butenko/HomeBundle/DependencyInjection/ButenkoHomeExtension.php create mode 100644 src/Butenko/HomeBundle/DependencyInjection/Configuration.php create mode 100644 src/Butenko/HomeBundle/Resources/config/routing.yml create mode 100644 src/Butenko/HomeBundle/Resources/config/services.yml create mode 100644 src/Butenko/HomeBundle/Resources/views/Default/index.html.twig create mode 100644 src/Butenko/HomeBundle/Tests/Controller/DefaultControllerTest.php diff --git a/app/AppKernel.php b/app/AppKernel.php index c5c9eb6..16d943b 100755 --- a/app/AppKernel.php +++ b/app/AppKernel.php @@ -16,6 +16,7 @@ public function registerBundles() new Symfony\Bundle\AsseticBundle\AsseticBundle(), new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), + new Butenko\HomeBundle\ButenkoHomeBundle(), ); if (in_array($this->getEnvironment(), array('dev', 'test'))) { diff --git a/app/config/routing.yml b/app/config/routing.yml index e69de29..39c4340 100755 --- a/app/config/routing.yml +++ b/app/config/routing.yml @@ -0,0 +1,4 @@ +butenko_home: + resource: "@ButenkoHomeBundle/Resources/config/routing.yml" + prefix: / + diff --git a/src/Butenko/HomeBundle/ButenkoHomeBundle.php b/src/Butenko/HomeBundle/ButenkoHomeBundle.php new file mode 100644 index 0000000..a842f2a --- /dev/null +++ b/src/Butenko/HomeBundle/ButenkoHomeBundle.php @@ -0,0 +1,9 @@ +render('ButenkoHomeBundle:Default:index.html.twig', array('name' => $name)); + } +} diff --git a/src/Butenko/HomeBundle/DependencyInjection/ButenkoHomeExtension.php b/src/Butenko/HomeBundle/DependencyInjection/ButenkoHomeExtension.php new file mode 100644 index 0000000..1732c36 --- /dev/null +++ b/src/Butenko/HomeBundle/DependencyInjection/ButenkoHomeExtension.php @@ -0,0 +1,28 @@ +processConfiguration($configuration, $configs); + + $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); + $loader->load('services.yml'); + } +} diff --git a/src/Butenko/HomeBundle/DependencyInjection/Configuration.php b/src/Butenko/HomeBundle/DependencyInjection/Configuration.php new file mode 100644 index 0000000..4202cc9 --- /dev/null +++ b/src/Butenko/HomeBundle/DependencyInjection/Configuration.php @@ -0,0 +1,29 @@ +root('butenko_home'); + + // Here you should define the parameters that are allowed to + // configure your bundle. See the documentation linked above for + // more information on that topic. + + return $treeBuilder; + } +} diff --git a/src/Butenko/HomeBundle/Resources/config/routing.yml b/src/Butenko/HomeBundle/Resources/config/routing.yml new file mode 100644 index 0000000..99624bc --- /dev/null +++ b/src/Butenko/HomeBundle/Resources/config/routing.yml @@ -0,0 +1,3 @@ +butenko_home_homepage: + pattern: /hello/{name} + defaults: { _controller: ButenkoHomeBundle:Default:index } diff --git a/src/Butenko/HomeBundle/Resources/config/services.yml b/src/Butenko/HomeBundle/Resources/config/services.yml new file mode 100644 index 0000000..4bc3b98 --- /dev/null +++ b/src/Butenko/HomeBundle/Resources/config/services.yml @@ -0,0 +1,7 @@ +parameters: +# butenko_home.example.class: Butenko\HomeBundle\Example + +services: +# butenko_home.example: +# class: %butenko_home.example.class% +# arguments: [@service_id, "plain_value", %parameter%] diff --git a/src/Butenko/HomeBundle/Resources/views/Default/index.html.twig b/src/Butenko/HomeBundle/Resources/views/Default/index.html.twig new file mode 100644 index 0000000..4ce626e --- /dev/null +++ b/src/Butenko/HomeBundle/Resources/views/Default/index.html.twig @@ -0,0 +1 @@ +Hello {{ name }}! diff --git a/src/Butenko/HomeBundle/Tests/Controller/DefaultControllerTest.php b/src/Butenko/HomeBundle/Tests/Controller/DefaultControllerTest.php new file mode 100644 index 0000000..0ab61d0 --- /dev/null +++ b/src/Butenko/HomeBundle/Tests/Controller/DefaultControllerTest.php @@ -0,0 +1,17 @@ +request('GET', '/hello/Fabien'); + + $this->assertTrue($crawler->filter('html:contains("Hello Fabien")')->count() > 0); + } +} diff --git a/web/.htaccess b/web/.htaccess index 0c5f37d..c79dd93 100755 --- a/web/.htaccess +++ b/web/.htaccess @@ -3,7 +3,7 @@ # mod_rewrite). Additionally, this reduces the matching process for the # start page (path "/") because otherwise Apache will apply the rewriting rules # to each configured DirectoryIndex file (e.g. index.php, index.html, index.pl). -DirectoryIndex app.php +DirectoryIndex app_dev.php RewriteEngine On @@ -30,7 +30,7 @@ DirectoryIndex app.php # - use Apache >= 2.3.9 and replace all L flags by END flags and remove the # following RewriteCond (best solution) RewriteCond %{ENV:REDIRECT_STATUS} ^$ - RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L] + RewriteRule ^app_dev\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L] # If the requested filename exists, simply serve it. # We only want to let Apache serve files and not directories. @@ -38,7 +38,7 @@ DirectoryIndex app.php RewriteRule .? - [L] # Rewrite all other queries to the front controller. - RewriteRule .? %{ENV:BASE}/app.php [L] + RewriteRule .? %{ENV:BASE}/app_dev.php [L] @@ -46,7 +46,7 @@ DirectoryIndex app.php # When mod_rewrite is not available, we instruct a temporary redirect of # the start page to the front controller explicitly so that the website # and the generated links can still be used. - RedirectMatch 302 ^/$ /app.php/ + RedirectMatch 302 ^/$ /app_dev.php/ # RedirectTemp cannot be used instead From 2b0ae630013dc21a456dcc8358fd8834033102d1 Mon Sep 17 00:00:00 2001 From: ButenkoD Date: Wed, 27 Nov 2013 23:46:17 +0200 Subject: [PATCH 2/2] Very simple services added --- app/config/config.yml | 1 + app/config/routing_dev.yml | 4 +-- .../Controller/DefaultController.php | 22 ++++++++++-- .../HomeBundle/Resources/config/routing.yml | 4 +-- .../HomeBundle/Resources/config/services.xml | 36 +++++++++++++++++++ .../Resources/views/Default/index.html.twig | 13 ++++++- .../HomeBundle/Service/MyAnotherService.php | 26 ++++++++++++++ src/Butenko/HomeBundle/Service/MyService.php | 34 ++++++++++++++++++ 8 files changed, 133 insertions(+), 7 deletions(-) mode change 100644 => 100755 src/Butenko/HomeBundle/Resources/config/routing.yml create mode 100644 src/Butenko/HomeBundle/Resources/config/services.xml create mode 100644 src/Butenko/HomeBundle/Service/MyAnotherService.php create mode 100644 src/Butenko/HomeBundle/Service/MyService.php diff --git a/app/config/config.yml b/app/config/config.yml index 5490b59..ae970e1 100755 --- a/app/config/config.yml +++ b/app/config/config.yml @@ -1,6 +1,7 @@ imports: - { resource: parameters.yml } - { resource: security.yml } + - { resource: "@ButenkoHomeBundle/Resources/config/services.xml"} framework: #esi: ~ diff --git a/app/config/routing_dev.yml b/app/config/routing_dev.yml index c45f361..3d02f45 100755 --- a/app/config/routing_dev.yml +++ b/app/config/routing_dev.yml @@ -14,5 +14,5 @@ _main: resource: routing.yml # AcmeDemoBundle routes (to be removed) -_acme_demo: - resource: "@AcmeDemoBundle/Resources/config/routing.yml" +#_acme_demo: +# resource: "@AcmeDemoBundle/Resources/config/routing.yml" diff --git a/src/Butenko/HomeBundle/Controller/DefaultController.php b/src/Butenko/HomeBundle/Controller/DefaultController.php index 024dd97..188afd5 100644 --- a/src/Butenko/HomeBundle/Controller/DefaultController.php +++ b/src/Butenko/HomeBundle/Controller/DefaultController.php @@ -6,8 +6,26 @@ class DefaultController extends Controller { - public function indexAction($name) + public function indexAction() { - return $this->render('ButenkoHomeBundle:Default:index.html.twig', array('name' => $name)); + $result = $this->container + ->get("my_service") + ->simpleTask(); + $fileExists = $this->container + ->get("my_service") + ->returnFilesystem() + ->exists('/var/www/index.html'); + + $session = $this->container + ->get('my_another_service') + ->getSession(); + + $metaDataBag = $session->getMetadataBag(); + + return $this->render('ButenkoHomeBundle:Default:index.html.twig', array( + 'result' => $result, + 'filesystem' => $fileExists, + 'metadatabag' => $metaDataBag + )); } } diff --git a/src/Butenko/HomeBundle/Resources/config/routing.yml b/src/Butenko/HomeBundle/Resources/config/routing.yml old mode 100644 new mode 100755 index 99624bc..7830523 --- a/src/Butenko/HomeBundle/Resources/config/routing.yml +++ b/src/Butenko/HomeBundle/Resources/config/routing.yml @@ -1,3 +1,3 @@ -butenko_home_homepage: - pattern: /hello/{name} +butenko_home: + pattern: / defaults: { _controller: ButenkoHomeBundle:Default:index } diff --git a/src/Butenko/HomeBundle/Resources/config/services.xml b/src/Butenko/HomeBundle/Resources/config/services.xml new file mode 100644 index 0000000..46adc5e --- /dev/null +++ b/src/Butenko/HomeBundle/Resources/config/services.xml @@ -0,0 +1,36 @@ + + + + + + + Butenko\HomeBundle\Service\MyService + Jesus + Symfony\Component\Filesystem\Filesystem + Butenko\HomeBundle\Service\MyAnotherService + Symfony\Component\HttpFoundation\Session\Session + + + + + + + + + %my_name% + + + + + + + + + + + + + + diff --git a/src/Butenko/HomeBundle/Resources/views/Default/index.html.twig b/src/Butenko/HomeBundle/Resources/views/Default/index.html.twig index 4ce626e..38b0164 100644 --- a/src/Butenko/HomeBundle/Resources/views/Default/index.html.twig +++ b/src/Butenko/HomeBundle/Resources/views/Default/index.html.twig @@ -1 +1,12 @@ -Hello {{ name }}! +

1. Simple service that returns value of its parameter

+

This is {{ result }}!

+ +

2. Symfony's service Symfony\Component\Filesystem\Filesystem was injected via constructor

+

we can say that /var/www/index.html exists: {{ filesystem }}

+ +

3. Symfony's Symfony\Component\HttpFoundation\Session\Session was injected via setter

+

Something called metaDataBag's storageKey: {{ metadatabag.storageKey }}

+ +
+
+

Work on this task is still in progress...

diff --git a/src/Butenko/HomeBundle/Service/MyAnotherService.php b/src/Butenko/HomeBundle/Service/MyAnotherService.php new file mode 100644 index 0000000..6b430f7 --- /dev/null +++ b/src/Butenko/HomeBundle/Service/MyAnotherService.php @@ -0,0 +1,26 @@ +session = $session; + } + + public function getSession() + { + return $this->session; + } +} \ No newline at end of file diff --git a/src/Butenko/HomeBundle/Service/MyService.php b/src/Butenko/HomeBundle/Service/MyService.php new file mode 100644 index 0000000..9d692f0 --- /dev/null +++ b/src/Butenko/HomeBundle/Service/MyService.php @@ -0,0 +1,34 @@ +name = $name; + $this->filesystem = $filesystem; + } + + public function simpleTask() + { + return 'Simple result of my fisrt service, '.$this->name; + } + + public function returnFilesystem() + { + return $this->filesystem; + } +} \ No newline at end of file