Symfony mette a dispossizione dei metodi speciali all’interno della classe sfActions per dare un ordine di esecuzione particolare alle nostre operazioni.

apps/frontend/modules/contenuto/actions/actions.class.php


<?php
 
class contenutoActions extends sfActions // estende la classe Symfony
{
  public function preExecute()
  {
    // 1. Il codice inserito qui viene eseguito all'inizio di ogni azione
    echo "Codice di preExecute<br>";
  }
    
  public function executePageone($request) // http://localhost/jobeet/web/frontend_dev.php/contenuto/pageone
  {
      $this->myCustomMethod();  // I metodi della classe azione sono accessibili
      
      return $this->renderText("Codice di executePageone<br>"); // 4. ultimo ad essere eseguito
  }
  
  public function postExecute()
  {
    // 3. Il codice inserito qui viene eseguito alla fine di ogni azione
    echo "Codice di postExecute<br>";
  }
 
  protected function myCustomMethod()
  {
    // 2. È possibile aggiungere i propri metodi, ammesso che non inizino con "execute"
    // In questo caso è consigliabile dichiararli protetti o privati
    echo "Codice di myCustomMethod<br>";
  }
}// END class

Renderizza:

Codice di preExecute
Codice di myCustomMethod
Codice di postExecute
Codice di executePageone

Reference:
http://symfony.com/legacy/doc/gentle-introduction/1_4/it/06-Inside-the-Controller-Layer