2013-06-19 4 views
14

J'ai déjà un projet en cours qui est en Symfony 2.0.10. Mais maintenant je dois mettre à jour à Symfony 2.3. Je sais qu'il est nécessaire de changer un peu de code pour compitable avec la dernière version. Y at-il une commande à mettre à niveau? Ou quelle est la procédure exacte pour mettre à niveau? Y a-t-il un document disponible?mise à niveau de symfony 2.0 à 2.3

Edit:

Je mis symfony 2.3 fichier composer.json et tout en faisant php composer.phar update j'eu cette erreur.

Problem 1 
    - symfony/symfony v2.3.1 requires symfony/icu >=1.0,<2.0 -> no matching package found. 
    - symfony/symfony v2.3.0 requires symfony/icu >=1.0,<2.0 -> no matching package found. 
    - Installation request for symfony/symfony 2.3.* -> satisfiable by symfony/symfony[v2.3.0, v2.3.1]. 

Edit 2: J'ai d'abord cette erreur:

[InvalidArgumentException]                     
    The dist file "app/config/parameters.yml.dist" does not exist. Check your dist-file config or create it. 

donc je créé le fichier parameters.yml.dist. Maintenant, je suis en train de

PHP Fatal error: Class 'Symfony\Component\ClassLoader\UniversalClassLoader' not found in /var/www/git/sample/app/autoload.php on line 6 
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap handling the post-update-cmd event terminated with an exception 

    [RuntimeException]          
    An error occurred when generating the bootstrap file. 
+1

votre édition a introduit une nouvelle question :) modifier symfony/ICU utiliser la compatibilité @beta flag.' "exigent": {"symfony/intl": "2.3.*@beta"} '... lié à ce problème: https://github.com/symfony/symfony/issues/8035 – nifr

+0

Désolé :) J'ai résolu ce problème en ajoutant dans le fichier composer.json "symfony/intl": "2.3. *" – stefun

+0

grand tout autre problème? Sinon, vous pourriez vouloir upvote/accepter l'une des réponses que la question originale a été répondue par moi et pazi :) – nifr

Répondre

16

informations de mise à niveau

Lire les guides de mise à niveau dans symfony/symfony github repository:

Il y a aussi changelogs dans le référentiel:

sauvegarde de votre projet!


Mise à niveau avec le compositeur

Obtenez composer et mettre la composer.json édition standard de symfony 2.3 dans la racine de votre projet.

Exécutez maintenant composer update avec le correctif de votre projet comme répertoire de travail.

-> Vous devrez faire face à certaines exceptions en raison d'exceptions de bris de modifications. Google va aider à résoudre les :)


Expérience personnelle

Dans mon héritage projets la pause bc plus notable de 2,0 à 2,1 était this one liée à la forme constructeur parce que je devais mettre à jour toutes les formes .

Avant (2,0)

use Symfony\Component\Form\FormBuilder; 
public function buildForm(FormBuilder $builder, array $options) 

Après (2.1+)

use Symfony\Component\Form\FormBuilderInterface; 
public function buildForm(FormBuilderInterface $builder, array $options) 
+0

même erreur se produit pour moi, comment mettre à jour s'il vous plaît suggérer –

4

Mise à niveau est en général simple, comme vous suffit de mettre à jour les contraintes de version dans votre composer.json selon la standard distribution et l'émission

php composer.phar update 

Mais 2.3 a quelques-uns pauses de compatibilité ascendante. Lisez donc attentivement chaque document de mise à jour pour les changements de code nécessaires.

+1

Quel gâchis. Je ne suis pas sûr que le traitement de la complexité supplémentaire de Sf2 vaut le bénéfice de la productivité. – Acyra

+0

Quoi de plus normal, quand on passe deux versions majeures. Seulement depuis la version 2.3 avec le nouveau programme de publication, aucune interruption de bc ne devrait se produire avec les versions 2.x. –

+0

Symfony 2.0 n'a pas utilisé composer;) –

Questions connexes