Skip to content

Commit

Permalink
Merge pull request cakephp#3641 from cakephp/more-events-docs
Browse files Browse the repository at this point in the history
Add more documentation around core events.
  • Loading branch information
lorenzo committed Jan 7, 2016
2 parents c0f3578 + f627d06 commit addbacf
Show file tree
Hide file tree
Showing 8 changed files with 153 additions and 46 deletions.
35 changes: 26 additions & 9 deletions en/controllers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -492,30 +492,47 @@ therefore it is not necessary (for example) to redeclare the
Request Life-cycle Callbacks
============================

CakePHP controllers come fitted with callbacks you can use to
insert logic around the request life-cycle:
CakePHP controllers trigger several events/callbacks that you can use to insert
logic around the request life-cycle:

Event List
----------

* ``Controller.initialize``
* ``Controller.startup``
* ``Controller.beforeRedirect``
* ``Controller.beforeRender``
* ``Controller.shutdown``

Controller Callback Methods
---------------------------

By default the following callback methods are connected to related events if the
methods are implemented by your controllers

.. php:method:: beforeFilter(Event $event)
This function is executed before every action in the controller.
It's a handy place to check for an active session or inspect user
permissions.
Called during the ``Controller.initialize`` event which occurs before every
action in the controller. It's a handy place to check for an active session
or inspect user permissions.

.. note::

The beforeFilter() method will be called for missing actions.

.. php:method:: beforeRender(Event $event)
Called after controller action logic, but before the view is rendered. This
callback is not used often, but may be needed if you are calling
Called during the ``Controller.beforeRender`` event which occurs after
controller action logic, but before the view is rendered. This callback is
not used often, but may be needed if you are calling
:php:meth:`~Cake\\Controller\\Controller::render()` manually before the end
of a given action.

.. php:method:: afterFilter(Event $event)
Called after every controller action, and after rendering is
complete. This is the last controller method to run.
Called during the ``Controller.shutdown`` event which is triggered after
every controller action, and after rendering is complete. This is the last
controller method to run.

In addition to controller life-cycle callbacks, :doc:`/controllers/components`
also provide a similar set of callbacks.
Expand Down
25 changes: 7 additions & 18 deletions en/core-libraries/events.rst
Original file line number Diff line number Diff line change
Expand Up @@ -122,26 +122,15 @@ possibly in separate objects and even delegating it to offline tasks if you have
the need.

Core Events
=====================
===========

There are a number of core events within the framework which your application
can listen to.

* ``Model.beforeMarshal``
* ``Model.beforeFind``
* ``Model.buildValidator``
* ``Model.buildRules``
* ``Model.beforeRules``
* ``Model.afterRules``
* ``Model.beforeSave``
* ``Model.afterSave``
* ``Model.afterSaveCommit``
* ``Model.beforeDelete``
* ``Model.afterDelete``
* ``Model.afterDeleteCommit``

Find out more about the events used by the core and the method signatures in
:ref:`table-callbacks`.
can listen to. Each layer of CakePHP emits events that you can use in your
application.

* :ref:`ORM/Model events <table-callbacks>`
* :ref:`Controller events <controller-life-cycle>`
* :ref:`View events <view-events>`

Registering Listeners
=====================
Expand Down
16 changes: 16 additions & 0 deletions en/orm/table-objects.rst
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,22 @@ To add an event listener to a Table class or Behavior simply implement the
method signatures as described below. See the :doc:`/core-libraries/events` for
more detail on how to use the events subsystem.

Event List
----------

* ``Model.beforeMarshal``
* ``Model.beforeFind``
* ``Model.buildValidator``
* ``Model.buildRules``
* ``Model.beforeRules``
* ``Model.afterRules``
* ``Model.beforeSave``
* ``Model.afterSave``
* ``Model.afterSaveCommit``
* ``Model.beforeDelete``
* ``Model.afterDelete``
* ``Model.afterDeleteCommit``

beforeMarshal
-------------

Expand Down
20 changes: 20 additions & 0 deletions en/views.rst
Original file line number Diff line number Diff line change
Expand Up @@ -655,6 +655,26 @@ application run faster CakePHP provides a way to cache view sections::
By default cached view content will go into the ``View::$elementCache`` cache
config, but you can use the ``config`` option to change this.

.. _view-events:

View Events
===========

Like Controller, view trigger several events/callbacks that you can use to insert
logic around the rendering life-cycle:

Event List
----------

* ``View.beforeRender``
* ``View.beforeRenderFile``
* ``View.afterRenderFile``
* ``View.afterRender``
* ``View.beforeLayout``
* ``View.afterLayout``

You can attach application :doc:`event listeners </core-libraries/events>` to these events or
use :ref:`Helper Callbacks <helper-api>`.

Creating Your Own View Classes
==============================
Expand Down
50 changes: 33 additions & 17 deletions fr/controllers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -507,42 +507,58 @@ Chacune de ces variables sont fusionnées avec leurs valeurs héritées,
ainsi il n'est pas nécessaire (par exemple) de redéclarer ``FormHelper``, ou
bien tout ce qui est déclaré dans votre ``AppController``.

.. _controller-life-cycle:

.. deprecated:: 3.0
Le chargement des helpers depuis le controller est fourni pour des raisons
de rétrocompatibilité. Référez-vous à la section suivante pour apprendre à
:ref:`configuring-helpers`.

Request Life-cycle callbacks
============================
.. _controller-life-cycle:

Cycle de Vie des Callbacks de la Requête
========================================

Les controllers de CakePHP lancent plusieurs events/callbacks (méthodes de
rappel) que vous pouvez utiliser pour insérer de la logique durant tout le cycle
de vie de la requête:

Event List
----------

* ``Controller.initialize``
* ``Controller.startup``
* ``Controller.beforeRedirect``
* ``Controller.beforeRender``
* ``Controller.shutdown``

Callback des Controllers
------------------------

Les controllers de CakePHP sont livrés par défaut avec des méthodes de rappel
(ou callback) que vous pouvez utiliser pour insérer de la logique juste avant
ou juste après que les actions du controller ont été effectuées :
Par défaut, les méthodes de rappel (callbacks) suivantes sont connectées aux
events liés si les méthodes sont implémentées dans vos controllers.

.. php:method:: beforeFilter(Event $event)
Cette fonction est exécutée avant chaque action du controller. C'est
un endroit pratique pour vérifier le statut d'une session ou les
permissions d'un utilisateur.
Cette méthode est appelée pendant l'event ``Controller.initialize`` qui se
produit avant chaque action du controller. C'est un endroit pratique pour
vérifier le statut d'une session ou les permissions d'un utilisateur.

.. note::

La méthode beforeFilter() sera appelée pour les actions manquantes.

.. php:method:: beforeRender(Event $event)
Cette méthode est appelée après l'action du controller mais avant
que la vue ne soit rendue. Ce callback n'est pas souvent utilisé,
mais peut-être nécessaire si vous appelez :php:meth:`~Controller::render()`
manuellement à la fin d'une action donnée.
Cette méthode est appelée pendant l'event ``Controller.beforeRender`` qui
se produit après l'action du controller mais avant que la vue ne soit
rendue. Ce callback n'est pas souvent utilisé, mais peut-être nécessaire si
vous appelez :php:meth:`~Controller::render()` manuellement à la fin d'une
action donnée.

.. php:method:: afterFilter(Event $event)
Cette méthode est appelée après chaque action du controller, et après
que l'affichage soit terminé. C'est la dernière méthode du controller
qui est exécutée.
Cette méthode est appelée pendant l'event ``Controller.shutdown`` qui se
produit après chaque action du controller, et après que l'affichage est
terminé. C'est la dernière méthode du controller qui est exécutée.

En plus des callbacks des controllers, les :doc:`/controllers/components`
fournissent aussi un ensemble similaire de callbacks.
Expand Down
11 changes: 11 additions & 0 deletions fr/core-libraries/events.rst
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,17 @@ emails, mettre à jour les statistiques d'utilisateur si possible dans des
objets séparés et même le déléguer à des tâches offline si vous avez ce
besoin.

Events du Cœur
==============

Il y a de certain nombre d'events du cœur du framework que votre
application peut écouter. Chaque couche de CakePHP émet des events que vous
pouvez écouter dans votre application.

* :ref:`Events de l'ORM et du Model<table-callbacks>`
* :ref:`Events du Controller<controller-life-cycle>`
* :ref:`Events de View<view-events>`

Enregistrer les Listeners
=========================

Expand Down
20 changes: 18 additions & 2 deletions fr/orm/table-objects.rst
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,8 @@ facilitant la construction de relations et la configuration l'ORM. Regardez

.. _table-callbacks:

Lifecycle Callbacks
===================
Callbacks du Cycle de Vie
=========================

Comme vous l'avez vu ci-dessus les objets table déclenchent un certain nombre
d'events. Les events sont des hook utiles si vous souhaitez et ajouter de la
Expand All @@ -134,6 +134,22 @@ implémentez simplement les signatures de méthode comme décrit ci-dessus.
Consultez les :doc:`/core-libraries/events` pour avoir plus de détails sur la
façon d'utiliser le sous-système d'events.

Liste des Events
----------------

* ``Model.beforeMarshal``
* ``Model.beforeFind``
* ``Model.buildValidator``
* ``Model.buildRules``
* ``Model.beforeRules``
* ``Model.afterRules``
* ``Model.beforeSave``
* ``Model.afterSave``
* ``Model.afterSaveCommit``
* ``Model.beforeDelete``
* ``Model.afterDelete``
* ``Model.afterDeleteCommit``

beforeMarshal
-------------

Expand Down
22 changes: 22 additions & 0 deletions fr/views.rst
Original file line number Diff line number Diff line change
Expand Up @@ -683,6 +683,28 @@ Par défaut, le contenu de la view ira dans la config de cache
``View::$elementCache``, mais vous pouvez utiliser l'option ``config`` pour
changer ceci.

.. _view-events:

Events de View
==============

Tout comme le Controller, la View lance plusieurs events/callbacks (méthodes de
rappel) que vous pouvez utiliser pour insérer de la logique durant tout le cycle
de vie du processus de rendu:

Liste des Events
----------------

* ``View.beforeRender``
* ``View.beforeRenderFile``
* ``View.afterRenderFile``
* ``View.afterRender``
* ``View.beforeLayout``
* ``View.afterLayout``

Vous pouvez attacher les :doc:`listeners d'events </core-libraries/events>` de
votre application à ces events ou utiliser les :ref:`Callbacks de Helper <helper-api>`.

Créer vos propres Classes de View
=================================

Expand Down

0 comments on commit addbacf

Please sign in to comment.