Bonjour, je viens de télécharger la dernière version de cakePHP.
Je remarque que beaucoup de fichier sont déjà créer comme AppController.php, AppModel.php et même des views, ajax.ctp, flash.ctp etc...
Je remarque aussi que maintenant à chaque controller ils mettent

App::uses('AppController', 'Controller');

pour les models ils mettent

App::uses('Model', 'Model');

Ma question, si j'upload seulement le dossier lib et que je mette seulement mon dossier d'app de ma version 2.0.6,
est ce que cela va fonctionné ?
Ou faut-il que je mette à jour tous mes controller, mes models avec ce code au début et que je laisse les views créer par défaut ?
J'ai remarqué aussi que de nouveaux fichiers sont apparu à la racine de Cake comme build.xml, sont-ils essentiels ?

Merci de vos éclaircissement.

PS: j'ai bien compris que cette nouvelle version apportée des modifications sympa comme les view blocks et fetch, c'est pourquoi je souhaiterais faire cette mise à jour pour ne pas être trop dépassé ensuite lors de mise à jour majeure.

14 réponses


sidii75
Réponse acceptée

A la place de

<?php echo $content_for_layout; ?>

tu met:

<?php echo $this->fetch('content'); ?>

Ensuite il y a aussi:

<?php echo $scripts_for_layout; ?>

qui a été séparé:

<?php echo $this->fetch('meta'); ?>
<?php echo $this->fetch('css'); ?>
<?php echo $this->fetch('script'); ?>

Cependant les anciennes méthodes reste toujours disponible mais deviendront obsolète par la suite.

C'est une approche simple aux namespace, les "uses" au début des controller et model.
Un equivalent de : "use App\Controller\AppController" ou "use App\Model\AppModel", il ne sont pas indispensable aujourd'hui, mais le deviendront très certainement par la suite dans de futures maj. L'idéal sera de s'y préparer aujourd'hui déjà et de les appeler au début de chaque controller ou model, afin que la prochaine maj fonctionne directement sans souci.

Ils font certainement ça pour garder une retrocompatibilité quelques temps encore et ne pas avoir de saut abrupts dans les conventions posées.

En ce qui concerne le build, je ne sais pas du tout à quoi il correspond, j'avouerai ne jamais m'y être penché.

zenkiai
Auteur

Merci de ta réponse Slyvaan,
Je peux donc juste télécharger la dossier lib et laisser l'ancien dossier App, en modifiant petit à petit mes fichiers ?
Y-a-t-il d'autres changements tel que celui-çi ?
Je n'arrive pas à trouver sur le site de CakePHP, un endroit qui résume et qui liste toutes les nouvelles modifications qu'il y a eut et à faire entre la version 2.0.6 et 2.1.0.
Avez vous une adresse à me proposer ?

Merci

De la 2.0.0 à la 2.1.0 qu'il faut absolument changer je ne vois pas, ça reste encore pas mal compatible. De toute façon tu résoudras les erreurs au cas par cas quand elles se produiront, mais autant les limiter sur les trucs connus.

zenkiai
Auteur

Merci de vos réponses,
que

<?php echo $scripts_for_layout; ?>

soit remplacé par

<?php echo $this->fetch('script'); ?>

, je peux comprendre facilement mais à quoi correspond

<?php echo $this->fetch('meta'); ?>
<?php echo $this->fetch('css'); ?>

pour le script_for_layout ?

Et faut-il aussi changer tous les

<?php echo $title_for_layout?>

par

<?php echo $this->fetch('title'); ?>

Alors le

<?php echo $this->fetch('script'); ?>

permet de récupérer et d'afficher seulement le javascript qui a été ajouté avec le helper Html.

Le

<?php echo $this->fetch('css'); ?>

permet de récupérer et d'afficher seulement le css qui a été ajouté avec le helper Html.

Le

<?php echo $this->fetch('meta'); ?>

permet de récupérer et d'afficher seulement les métadonnées qui ont été ajouter avec le helper Html

Le

<?php echo $this->fetch('title'); ?>

Je croit bien qu'il l'on mit en place aussi j'ai pas testé mais sa marche, oui il faut le remplacer.

zenkiai
Auteur

merci pour toutes ces infos...

Salut a tous Alors du coup si on change uniquement le dossier lib on passe bien en 2.1? et y a pas trop de problème ??

zenkiai
Auteur

Salut, alors à priori d'après ce que j'ai compris oui, bien que cela ne soit pas dit clairement. Seulement pour éviter d'avoir trop de changement à faire lors de la prochaine grosse maj, il faut mieux faire les quelques petits changements donnés maintenant.
Demain je suis en repos, je vais essayer d'uploader seulement le dossier lib en laissant le dossier app. Je te dirais si je rencontre des bugs.

ok merci genial

zenkiai
Auteur

Salut, alors tu ne peux pas juste supprimer et placer le nouveau dossier lib sans bug en gardant ton ancien dossier app.
Non pas que ce soit difficile à résoudre, par ex le fichier AppHelper est déplacé ce qui génère des Fatals errors, il suffirait donc juste de le mettre au bon endroit pour remédier à ce soucis, mais par ce que dans le doute d'avoir d'autres fichiers déplacer ou modifier sans que cela se voit actuellement, je préfère uploader la totalité en modifiant et en déplaçant un par un mes fichiers. Il n'y en a pas tant que ça. C'est plus sûr pour la stabilité du système à mon avis.

Si ça peu aider:
Guide de migration vers cakephp 2.1 depuis 2.0
Par contre une petit mise à jour du titre du topic serai pas du luxe, cela aiderai peu être d'autre personne... (expl: Migration cakephp 2.0 à 2.1)

zenkiai
Auteur

Tu as raison, j'ai modifié le titre et merci pour le lien que je n'avais jamais trouvé.

merci pour le lein