Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: Tomasz Kowalczyk, dodany: 20.11.2011 19:22, tagi: javascript, php

Już za niecałe dwa tygodnie na polskiej scenie programistycznej pojawi się kolejne interesujące wydarzenie - spotkanie CodeRetreat, edycja 2011. Ze względu na to, że zamierzam się tam pojawić, zapraszam Was do lektury tego krótkiego wpisu wprowadzającego. Mam nadzieję, że uda mi się Was zachęcić do udziału w nim. :)     Fotografia: coderetreat-warsaw.heroku.com. CodeRetreat 2011: [...]

Autor wpisu: Tomasz Kowalczyk, dodany: 20.11.2011 18:42, tagi: css

Zapraszam na kolejną edycję "różnych różności" związanych z najnowszą wersją kaskaderskich kuszy stylizacji. :)         Linkdump: CSS3:CSS 3:1 na wyjeździe. CSS3 Buttons – 10+ Awesome Ready-To-Use Solutions (+All Related Tutorials You Need). Całkiem spory zbiór przycisków. CSS3 vs Internet Explorer 6+. Kompendium wiedzy nt. tego, jak "zrobić CSS3" w przeglądarkach go nieobsługujących. [...]

Autor wpisu: Tomasz Kowalczyk, dodany: 20.11.2011 18:24, tagi: symfony

Routing w symfony 1.x jest rozwiązany w całkiem przyjemny sposób, jednak jak to zwykle bywa, kiedy próbujemy zrobić coś wbrew ustalonej konwencji, framework szybko sprowadza nas na "jedyną prawdziwą ścieżkę zen tworzenia aplikacji". W dzisiejszym wpisie chciałbym przedstawić jeden z problemów, na jakie m0żemy trafić podczas zabawy z wspomnianym mechanizmem tytułowego frameworka. Fotografia: filipw @ [...]

Autor wpisu: Tomasz Kowalczyk, dodany: 14.11.2011 22:58, tagi: jquery

W serii Linkdump dawno nie podejmowałem już tematyki silnika blogowego, którego sam używam - WordPressa. Naprawiając ten błąd zapraszam Was na kolejną porcję linków z nim związanych.       Fotografia: m.schuckart @ Fotolia. Linkdump #62: WordPress. Dodatkowe pola w formularzu komentarzy WordPress. Jak w tytule. :) Add a jQuery UI Accordion Widget Area to [...]

Autor wpisu: Kamil Adryjanek, dodany: 13.11.2011 02:04, tagi: symfony2, php

In one of my templates i needed a simple way to get controller / action name to generate some dynamic urls. Symfony2 does not offer any Twig helper function to display current controller / action name.

The easiest way that i have found so far is to create Twig extension. In our default bundle we need to create folder Twig/Extension for example Acme/PageBundle/Twig/Extension and place there our Twig extension class:


<?php 
// src/Acme/PageBundle/Twig/Extension/AcmePageExtension.php

namespace Acme\PageBundle\Twig\Extension;

use Symfony\Component\HttpFoundation\Request;


class AcmePageExtension extends \Twig_Extension
{
	protected $request;
	/**
	 *
	 * @var \Twig_Environment
	 */
	protected $environment;
	
	public function __construct(Request $request)
	{
		$this->request = $request;
	}
	
	public function initRuntime(\Twig_Environment $environment)
	{
		$this->environment = $environment;
	}
	
	public function getFunctions()
	{
		return array(
	            'get_controller_name' => new \Twig_Function_Method($this, 'getControllerName'),
	            'get_action_name' => new \Twig_Function_Method($this, 'getActionName'),
		);
	}
	
	/**
	 * Get current controller name
	 */
	public function getControllerName()
	{
		$pattern = "#Controller\\\([a-zA-Z]*)Controller#";
		$matches = array();
		preg_match($pattern, $this->request->get('_controller'), $matches);
		
		return strtolower($matches[1]);
	}
	
	/**
	 * Get current action name 
	 */
	public function getActionName()
	{
		$pattern = "#::([a-zA-Z]*)Action#";
		$matches = array();
		preg_match($pattern, $this->request->get('_controller'), $matches);
	
		return $matches[1];
	}
	
	public function getName()
	{
		return 'acme_page';
	}
}

Next step is to register this service:

// src/Acme/PageBundle/Resources/config/services.yml
    request:
        class:        Symfony\Component\HttpFoundation\Reques
        
    acme.twig.extension:
        class: Acme\PageBundle\Twig\Extension\AcmePageExtension
        arguments:  [@request]
        tags:
            - { name: 'twig.extension' }

and then in twig templates we can simply call:


Controller name: {{ get_controller_name() }}
Action name: {{ get_action_name() }}

Autor wpisu: Tomasz Kowalczyk, dodany: 11.11.2011 20:10, tagi: symfony2, doctrine, symfony

Hello everyone! As I am more and more into Symfony2 you can expect a little more about this framework from me. I've already added Symfony2 category on this blog, but there is only one entry, so now I'll try to fix this a little bit. Today I would like to show you an interesting improvement [...]

Autor wpisu: Tomasz Kowalczyk, dodany: 11.11.2011 19:52, tagi: symfony2, doctrine, symfony

Witajcie! Ze względu na to, że ostatnio mam coraz więcej wspólnego z Symfony2, możecie spodziewać się nieco więcej wpisów o tym frameworku na niniejszym blogu. Założyłem już kategorię "Symfony2", a znajduje się w niej raptem jeden wpis, także czas nadrobić to niedociągnięcie. Dzisiaj chciałbym Wam pokazać jedno fajne usprawnienie, które pozwoli nam na lepszą kontrolę [...]
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.