Welcome to the Cookbook

loading...

3.3.3.1 Chemins de classes additionnels

Le texte original de cette section a changé depuis qu'il a été traduit. Aidez-nous à corriger cette différence. Vous pouvez :

Plus d'information à propos des traductions

C’est parfois pratique de pouvoir partager les classes MVC entre applications au sein d’un même système. Si vous voulez le même contrôleur dans 2 applications, vous pouvez utiliser le fichier bootstrap.php de CakePHP pour disposer de ces classes additionelles dans une vue.

Dans bootstrap.php, définissez quelques variables nommées de façon particulière pour rendre CakePHP conscient des autres emplacements de classes MVC à explorer :

App::build(array(
'plugins' => array('/chemin/complet/vers/plugins/', '/chemin/complet/suivant/vers/plugins/'),
'models' => array('/chemin/complet/vers/models/', '/chemin/complet/suivant/vers/models/'),
'views' => array('/chemin/complet/vers/views/', '/chemin/complet/suivant/vers/views/'),
'controllers' => array('/chemin/complet/vers/controllers/', '/chemin/complet/suivant/vers/controllers/'),
'datasources' => array('/chemin/complet/vers/datasources/', '/chemin/complet/suivant/vers/datasources/'),
'behaviors' => array('/chemin/complet/vers/behaviors/', '/chemin/complet/suivant/vers/behaviors/'),
'components' => array('/chemin/complet/vers/components/', '/chemin/complet/suivant/vers/components/'),
'helpers' => array('/chemin/complet/vers/helpers/', '/chemin/complet/suivant/vers/helpers/'),
'vendors' => array('/chemin/complet/vers/vendors/', '/chemin/complet/suivant/vers/vendors/'),
'shells' => array('/chemin/complet/vers/shells/', '/chemin/complet/suivant/vers/shells/'),
'locales' => array('/chemin/complet/vers/locale/', '/chemin/complet/suivant/vers/locale/')
));
  1. App::build(array(
  2. 'plugins' => array('/chemin/complet/vers/plugins/', '/chemin/complet/suivant/vers/plugins/'),
  3. 'models' => array('/chemin/complet/vers/models/', '/chemin/complet/suivant/vers/models/'),
  4. 'views' => array('/chemin/complet/vers/views/', '/chemin/complet/suivant/vers/views/'),
  5. 'controllers' => array('/chemin/complet/vers/controllers/', '/chemin/complet/suivant/vers/controllers/'),
  6. 'datasources' => array('/chemin/complet/vers/datasources/', '/chemin/complet/suivant/vers/datasources/'),
  7. 'behaviors' => array('/chemin/complet/vers/behaviors/', '/chemin/complet/suivant/vers/behaviors/'),
  8. 'components' => array('/chemin/complet/vers/components/', '/chemin/complet/suivant/vers/components/'),
  9. 'helpers' => array('/chemin/complet/vers/helpers/', '/chemin/complet/suivant/vers/helpers/'),
  10. 'vendors' => array('/chemin/complet/vers/vendors/', '/chemin/complet/suivant/vers/vendors/'),
  11. 'shells' => array('/chemin/complet/vers/shells/', '/chemin/complet/suivant/vers/shells/'),
  12. 'locales' => array('/chemin/complet/vers/locale/', '/chemin/complet/suivant/vers/locale/')
  13. ));

L'ordre dans lequel le bootstrapping est fait a également changé. Dans le passé, app/config/core.php était lu après app/config/bootstrap.php. Ceci avait pour effet d'empêcher la mise en cache de tous les appels à App::import() dans le bootstrap, et ralentissait considérablement l'application. Dans la version 1.3, core.php est chargé et les configurations de mise en cache sont créées avant que le bootstrap.php soit chargé.