Olá, para inaugurar as postagens vamos começar com Symfony. Todos que acompanham essa fantástica framework ja notaram a velocidade que as mudanças acontecem. O problema é que nem sempre podemos mudar nossas aplicações de versão. O compatMode ajuda a segurar as pontas, mas nada melhor do que utulizar todos os recursos da versão.
A maneira que consegui fazer isso foi instalar várias versões numa mesma máquina. Usei:
- Windows 7 (beta);
- PHP 5.2 (instalado em C:\PHP5);
- Apache 2.2
Se você quer resolver esse problema no Linux, siga esse tutorial
Instalando Symfony 1.0
Seguindo o procedimento de instalação pelo PEAR pelo comando pear install
pear install symfony/symfony-1.0.21
Pronto, agora vamos renomear as pastas e redirecionar os apontamentos para receber a outra versão.
Na instalação o Symfony criou duas pastas no diretório de instalação do PHP, uma em %PHP_DIR%\data\symfony (esqueletos, forma dos módulos, etc) e %PHP_DIR%\PEAR\symfony (as classes da framework). Renomeie essas pastas de symfony para symfony10 (de symfon 1.0). Renomeie também os dois arquivos criados no diretório de instalação do PHP, symfony e symfony.bat para symfony10 e symfony10.bat.
Abra o arquivo symfony10 e altere as seguintes linhas
// PEAR $sf_symfony_lib_dir = 'C:\PHP5\pear/symfony'; $sf_symfony_data_dir = 'C:\PHP5\data/symfony';
para:
// PEAR $sf_symfony_lib_dir = 'C:\PHP5\pear/symfony10'; $sf_symfony_data_dir = 'C:\PHP5\data/symfony10';
Em seguida, abra o arquivo symfony10.bat e modifique o seguinte trecho:
IF EXIST ".\symfony" ( %PHP_COMMAND% -d html_errors=off -d open_basedir= -q ".\symfony" %1 %2 %3 %4 %5 %6 %7 %8 %9 ) ELSE ( %PHP_COMMAND% -d html_errors=off -d open_basedir= -q "%SCRIPT_DIR%\symfony" %1 %2 %3 %4 %5 %6 %7 %8 %9 )
para:
IF EXIST ".\symfony10" ( %PHP_COMMAND% -d html_errors=off -d open_basedir= -q ".\symfony10" %1 %2 %3 %4 %5 %6 %7 %8 %9 ) ELSE ( %PHP_COMMAND% -d html_errors=off -d open_basedir= -q "%SCRIPT_DIR%\symfony10" %1 %2 %3 %4 %5 %6 %7 %8 %9 )
Obs: Se o projeto foi criado anteriormente, altere as variáveis do arquivo config.php, dentro do projeto:
$sf_symfony_lib_dir = 'C:\PHP5\pear\symfony10'; $sf_symfony_data_dir = 'C:\PHP5\data\symfony10';
Instalando o Symfony 1.2
Agora vamos instalar a outra versão do symfony, através do pear. Escolhi a 1.2, mas poderia ser qualquer outra.
$ pear install symfony/symfony-1.2.9
Perceba que o symfony voltou a criar as mesmas pastas (symfony) nos diretórios PEAR e data no diretório do PHP, além dos arquivos symfony e symfony.bat. Vamos repetir o procedimento de renomear as pastas e os arquivos, de symfony para symfony12. Faça o mesmo procedimento dentro dos arquivos symfony e symfony.bat.
Criando as Aplicações
A partir de agora, os comandos do console são de acordo com a versão desejada. Por exemplo, para criar um projeto que antes era symfony init-project, você vai usar symfony10 init-project (para usar a versão 1.0 da framework) ou symfony12 generate:project (para versão 1.2).
Como exemplo, crie um projeto para cada versão no diretório C:\Apps\PHPApps
Configurando o Host
O Symfony já está preparado, agora vamos configurar o arquivo de host e o Apache.
Abra o arquivo hosts em C:\Windows\System32\drivers\etc e adicione um hostname para cada aplicação. Ex:
127.0.0.1 app10 127.0.0.1 app12
Ambos apontando para a própria máquina.
Abra o arquivo de configuração do host do Apache. Geralmente está em C:\Arquivos de Programas\Apache Software Foundation\Apache2.2\extras\httpd-vhosts.conf. No Windows 7 o diretório padrão é Program Files (x86) e não Arquivos de Programas.
Configure os hosts, um pra cada aplicação. Ficaria assim:
NameVirtualHost *:80 # app10 - Host para aplicação symfony 1.0 <VirtualHost *:80> DocumentRoot "C:\Apps\PHPApps\Proj10\web" ServerName app10 DirectoryIndex index.php Alias /sf C:\PHP5\data\symfony10\web\sf <Directory "C:\Apps\PHPApps\Proj10\web"> AllowOverride All Order allow,deny Allow from all </Directory> <Directory "C:\PHP5\data\symfony10\web\sf"> AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> # app12 - Aplicação para Symfony 1.2 <VirtualHost *:80> DocumentRoot "C:\Apps\PHPApps\Proj12\web" ServerName app12 DirectoryIndex index.php Alias /sf C:\PHP5\data\symfony12\web\sf <Directory "C:\Apps\PHPApps\Proj12\web"> AllowOverride All Order allow,deny Allow from all </Directory> <Directory "C:\PHP5\data\symfony12\web\sf"> AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
Depis de criar o projeto e a aplicação, basta acessar http://app10 ou http://app12
Sobre o autor:
Thiago Bussiki
Graduado em Desenvolvimento de Sistemas, Pós-graduando em Design de Interação pelo Instituto Faber-Ludens. Programador PHP desde 2000. Desenvolve projetos em: Ruby on Rails, Flex, Wordpress, Symfony entre outros. Mais informações no LinkedIn. Siga-me no Twitter.
