Várias versões do PHP no Wampserver

Várias versões do PHP no Wampserver

Use desde o PHP 5.3 até o PHP 7.0 no Wampserver.

Leia em 3 min

Ouvindo Don't Stop - Knightlife

PHP

Quando iniciamos um projeto do zero, fica fácil decidir qual a versão do PHP será usada. Mais quando se trata de softwares legados, temos que utilizar a versão na qual o software foi feito. As vezes também pode ocorrer que o servidor de hospedagem utilizado usa uma versão do PHP que não temos instalado em nosso ambiente de desenvolvimento.

Com tudo isso, torna-se necessário instalar várias versões de PHP no mesmo ambiente de desenvolvimento para diminuir a possibilidade de erros na hora de subir a aplicação para o ambiente de produção.

Wampserver 3.0

Desde 01 de maio de 2014, o wampserver 2.5 não sofria uma atualização, o projeto parecia ter sido abandonado pela empresa francesa Alterway que mantinha o projeto no sourceforge. Mais um francês de 71 anos de idade, Dominique Ottello de codinome Otomatic, revoltado com o descaso, começou a ele mesmo a fazer as atualizações do wampserver e a postá-las no fórum do wampserver, ele chegou a atualizar até a versão 2.5.18 quando enfim a Alterway decidiu implementar as atualizações feitas por ele e a inclui-lo no processo de desenvolvimento do wampserver.

Veja o Changelog do wampserver 2.5.18 aqui.

Veja o Changelog do wampserver 3.0.0 aqui.

Por onde começar?

Existem dois modos de adicionar versões do PHP no wampserver. Uma das maneiras é a manual que pode ser conferida aqui nesse artigo. E a outra é utilizando os add-ons do próprio wampserver. Nesse artigo, vou mostrar como adicionar uma nova versão do PHP utilizando os add-ons do wampserver 3.0.

  1. Instale o wampserver 3.0 no sourceforge

    É importante notar que apenas as versões do PHP 5.5 e superiores dão suporte 64 bits por isso para instalar versões como o PHP 5.4 ou inferiores é necessário instalar o wampserver x86

  2. Baixe os Add-ons do wampserver x86

PHP na linha de comando

O PHP, assim como outras linguagens de programação, oferece a opção de execução via linha de comando. Para quem usa o Composer é preciso definir a variável de ambiente do PHP no Windows. Mas já que temos várias versões do PHP instaladas será mais eficiente fazer com que a variável de ambiente do Windows mude conforme mudamos a versão do php no wampserver.

Para isso vamos precisar cria um arquivo php.bat para que dinamicamente mude a variável de ambiente "PATH" após troca da versão do PHP no wampserver. O arquivo deve se parecer com esse abaixo.

@REM This file detects the current enabled PHP version
@REM of wampserver (http://www.wampserver.com/) and executes the enabled php.exe
@REM and all parameters are passed
@REM Copy this file to WAMPSERVERPATH\bin\php
@REM Now you can add WAMPSERVERPATH\bin\php to your Windows Environment-Variable "PATH".
@REM Now you can use "php" global. For example "php -v".
@REM You can show the current PHP version with "php -v"

@setlocal enableextensions enabledelayedexpansion
@echo off

set serverPath="%~dp0\..\.."
set file="!serverPath!\wampmanager.conf"
set area=[php]
set key=phpVersion

FOR /F "tokens=*" %%a IN ('type %file%') DO (
  set ln=%%a
  if "x!ln:~0,1!"=="x[" (
    set currarea=!ln!
  ) else (
    for /f "tokens=1,2 delims== " %%b in ("!ln!") do (
      set currkey=%%b
      set currval=%%c

      if "x!area!"=="x!currarea!" (
        if "x!key!"=="x!currkey!" (
          set !currkey!=!currval:"=!
        )
      )
    )
  )
)

CALL !serverPath:"=!\bin\php\php!%key%!\php.exe %*
@REM This file detects the current enabled PHP version
@REM of wampserver (http://www.wampserver.com/) and executes the enabled php.exe
@REM and all parameters are passed
@REM Copy this file to WAMPSERVERPATH\bin\php
@REM Now you can add WAMPSERVERPATH\bin\php to your Windows Environment-Variable "PATH".
@REM Now you can use "php" global. For example "php -v".
@REM You can show the current PHP version with "php -v"

@setlocal enableextensions enabledelayedexpansion
@echo off

set serverPath="%~dp0\..\.."
set file="!serverPath!\wampmanager.conf"
set area=[php]
set key=phpVersion

FOR /F "tokens=*" %%a IN ('type %file%') DO (
  set ln=%%a
  if "x!ln:~0,1!"=="x[" (
    set currarea=!ln!
  ) else (
    for /f "tokens=1,2 delims== " %%b in ("!ln!") do (
      set currkey=%%b
      set currval=%%c

      if "x!area!"=="x!currarea!" (
        if "x!key!"=="x!currkey!" (
          set !currkey!=!currval:"=!
        )
      )
    )
  )
)

CALL !serverPath:"=!\bin\php\php!%key%!\php.exe %*

Crie o arquivo php.bat em path\para-o\wamp\bin\php

Depois adicione a variável de ambiente PATH para o php ";path\para-o\wamp\bin\php" (se existir remova seu PATH php antigo)

Agora você pode executar o PHP na linha de comando sempre globalmente com a versão atual do PHP no wampserver.

Comentários