Development

HowToUpgradeToVersion1

You must first sign up to be able to contribute.

How to upgrade to 1.0beta-1 from 0.7.1914

Warning: The following description is not the easiest way to upgrade. The best way is to call the symfony.php script, located in the symfony installation directory, from the root of the project directory.

> cd myproject
> php /path/to/pear_data_dir/bin/symfony upgrade 1.0

It will take care of all the steps described in this page.

Also, This page should be updated to talk about 1.0 stable.


This is a short HOW-TO to get your projects running on the latest release 1.0-beta1. I will assume you've installed the framework using !PEAR and work that way - this only applies to upgrading the framework itself, project specifics apply to any framework install method.

Firstly, we upgrade the framework by issuing the pear upgrade symfony/symfony-beta command. If no errors were issued, then your framework has been successfully upgraded. If not, try using the following set of commands (worked for me in the past, why not):

pear upgrade PEAR
pear channel-update pear.symfony-project.com

Having the framework installed, we move on to each project using a framework prior to 1.0beta-1. The main differences here are in three key files that must be modified before the symfony command can work. These are:

/SYMFONY
/config/config.php
/apps/[appname]/config/config.php

/SYMFONY

First off, SYMFONY is no longer a zero-length file, and the filename is lowercase now. Rename the file to lowercase (irrelevant for Windows, since the shell ignores file cases, but migrating to Linux will not cause a problem in this case) and insert this code block:

#!/usr/bin/env php
<?php

/*
 * This file is part of the symfony package.
 * (c) 2004-2006 Fabien Potencier <fabien.potencier@symfony-project.com>
 * 
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

chdir(dirname(__FILE__));
include('config/config.php');
include($sf_symfony_data_dir.'/bin/symfony.php');

/config/config.php

Next is the global project /config/config.php file. Instead of the default blank file, you now need to have two additional lines if you've already set your own constants in the file (in this case, just insert these lines before any of your code):

<?php

// symfony directories
$sf_symfony_lib_dir  = 'C:\PHP\pear/symfony';
$sf_symfony_data_dir = 'C:\PHP\pear\data/symfony';

/apps/[appname]/config/config.php

Lastly, you need to update each of your applications' config files in the /apps/[appname]/config/config.php file. That file, in addition to any code you may have inserted yourself, must contain the following:

<?php

// include project configuration
include(SF_ROOT_DIR.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'config.php');

// symfony bootstraping
require_once($sf_symfony_lib_dir.'/util/sfCore.class.php');
sfCore::bootstrap($sf_symfony_lib_dir, $sf_symfony_data_dir);

Again, it is advisable to insert all these lines at the top of the file, to avoid path problems and such.

Updating the project

Now that we've managed to make the symfony command work in the root project folder, we're ready to upgrade all the other files using the automatic upgrade script:

symfony upgrade 1.0

The command also gives instructions on what to do next, but for your convenience I'll list the commands for you:

symfony propel-build-model
symfony cc

The first one regenerates your Propel classes to use the latest version of the OM included in 1.0-beta1, the second clears the cache to make symfony regenerate and use the new classes.

Navigate your browser to wherever you have your project installed, and you should see your project in its entirety working as it should, unless you've used any deprecated methods or classes, in which case the framework will notify you of any changes to your model.

In either case, it should be trivial for you to debug your apps with the new and shiny version.

Have fun!