3.5.2.2 $components, $helpers e $uses

Molto importanti sono gli attributi che definiscono quali helpers, components e models devono essere usati dal controller. Usando questi attributi, queste classi MVC saranno accessibili dal controller come variabili ($this->ModelName, per esempio).

Fai attenzione che ogni controller dispone di default di alcune classi, quindi non devi necessariamente configurarle ogni volta tutte.

In particolare i controllers hanno accesso alla classe del modello principale a cui sono associati. In nostro RicetteController è associato di default al modello Ricetta e vi accede tramite la variabile $this->Ricetta, mentre il nostro controller ProdottiController accede a sua volta al modello Prodotto tramite $this->Prodotto.

Gli Helper Html e Session sono disponibili di default, come anche il componente SessionComponent. I dettagli su queste classi saranno spiegati più avanti in questo manuale.

Osserva come puoi utilizzare le classi associate al controller in CakePHP.

<?php

class RicetteController extends AppController {
    var $name = 'Ricette';

    var $uses = array('Ricetta', 'User');
    var $helpers = array('Html', 'Ajax');
    var $components = array('Session', 'Email');
}

?>   
  1. <?php
  2. class RicetteController extends AppController {
  3. var $name = 'Ricette';
  4. var $uses = array('Ricetta', 'User');
  5. var $helpers = array('Html', 'Ajax');
  6. var $components = array('Session', 'Email');
  7. }
  8. ?>

Quando definisci questi attributi, stai attendo a includere anche le classi normalmente incluse di default (come l'helper Html, ad esempio) se intendi utilizzarle. Infatti quando definisci esplicitamente questi attributi, sovrascrivi di fatto le impostazioni di default.