Commit Graph

15 Commits

Author SHA1 Message Date
Fabien Potencier
65200aa86a added missing license headers 2011-05-31 10:57:06 +02:00
Fabien Potencier
314684df24 [FrameworkBundle] made ESI URL relative as allowed by the spec (no need to generate absolute URLs)
see http://www.w3.org/TR/esi-lang (Section 3.1 "Relative URIs will be resolved relative to the template.")
2011-04-21 18:54:01 +02:00
Fabien Potencier
f232b3cdda reverted Merge remote branch 'kriswallsmith/kernel/shorter-bundle-names' 2011-04-04 11:10:56 +02:00
Fabien Potencier
fe19646470 [HttpKernel] made the _route request attribute _internal for embedded controller renderings 2011-04-01 07:39:12 +02:00
Kris Wallsmith
ade83e2e80 updated codebase to use shorter bundle names
Controllers:
"BlogBundle:Post:show" is now "Blog:Post:show"

Templates:
"BlogBundle:Post:show.html.twig" is now "Blog:Post:show.html.twig"

Resources:
"@BlogBundle/Resources/config/blog.xml" is now "@Blog/Resources/config/blog.xml"

Doctrine:
"$em->find('BlogBundle:Post', $id)" is now "$em->find('Blog:Post', $id)"
2011-03-27 06:25:43 -07:00
Bernhard Schussek
06c682b4fb Switched from Doctrine's EventManager implementation to the EventManager clone in Symfony2 (now called EventDispatcher again) 2011-03-13 19:49:10 +01:00
Bernhard Schussek
2cf3779a2c Renamed EventArgs classes and adapted remaining code to EventManager
The only missing part is ContainerAwareEventManager::addEventSubscriberService(),
because I'm not sure how to find out the class name of a service in the DIC.

Also, inline documentation of this code needs to be finished once it is accepted.
2011-03-07 19:16:05 +01:00
Bernhard Schussek
f1393d7b1f Replaced EventDispatcher by Doctrine's EventManager implementation
Doctrine's EventManager implementation has several advantages over the
EventDispatcher implementation of Symfony2. Therefore I suggest that we
use their implementation.

Advantages:

 * Event Listeners are objects, not callbacks. These objects have handler
   methods that have the same name as the event. This helps a lot when
   reading the code and makes the code for adding an event listener shorter.
 * You can create Event Subscribers, which are event listeners with an
   additional getSubscribedEvents() method. The benefit here is that the
   code that registers the subscriber doesn't need to know about its
   implementation.
 * All events are defined in static Events classes, so users of IDEs benefit
   of code completion
 * The communication between the dispatching class of an event and all
   listeners is done through a subclass of EventArgs. This subclass can be
   tailored to the type of event. A constructor, setters and getters can be
   implemented that verify the validity of the data set into the object.
   See examples below.
 * Because each event type corresponds to an EventArgs implementation,
   developers of event listeners can look up the available EventArgs methods
   and benefit of code completion.
 * EventArgs::stopPropagation() is more flexible and (IMO) clearer to use
   than notifyUntil(). Also, it is a concept that is also used in other
   event implementations

Before:

    class EventListener
    {
        public function handle(EventInterface $event, $data) { ... }
    }

    $dispatcher->connect('core.request', array($listener, 'handle'));
    $dispatcher->notify('core.request', new Event(...));

After (with listeners):

    final class Events
    {
        const onCoreRequest = 'onCoreRequest';
    }

    class EventListener
    {
        public function onCoreRequest(RequestEventArgs $eventArgs) { ... }
    }

    $evm->addEventListener(Events::onCoreRequest, $listener);
    $evm->dispatchEvent(Events::onCoreRequest, new RequestEventArgs(...));

After (with subscribers):

    class EventSubscriber
    {
        public function onCoreRequest(RequestEventArgs $eventArgs) { ... }

        public function getSubscribedEvents()
        {
            return Events::onCoreRequest;
        }
    }

    $evm->addEventSubscriber($subscriber);
    $evm->dispatchEvent(Events::onCoreRequest, new RequestEventArgs(...));
2011-03-05 15:30:34 +01:00
ornicar
b043bfde0b Do not catch subrequest exceptions, because it makes debugging hard. 2011-02-12 22:48:54 +01:00
Igor Wiedler
8cb3a237cc [FrameworkBundle] Allow any 2xx response code in a subrequest 2011-02-11 00:06:41 +01:00
Fabien Potencier
75404e6bd6 renamed HttpKernel/Cache/ namespace to HttpKernel/HttpCache/ 2011-01-26 21:44:54 +01:00
Fabien Potencier
0e66e388ec added two interfaces: EventInterface and EventDispatcherInterface 2011-01-25 14:23:32 +01:00
Fabien Potencier
73ab687521 moved ControllerResolver methods to HttpKernel (makes more sense) 2011-01-23 10:23:33 +01:00
Fabien Potencier
b577ce665a [HttpKernel] fixed scope management in HttpKernel
We should always leave the request scope at the end of the request processing.
If not, the HttpKernel leaves the container in a different state.
2011-01-23 08:47:00 +01:00
Johannes M. Schmitt
1d5b6ed908 adds scope to the DI container 2011-01-22 15:20:50 +01:00