O que mudou da versão 5.2 para a PHP 5.3
Não vamos falar do que veio de novidade no PHP 5.3 e sim do que deixou de ser suportado ou foi modificado da versão 5.2 para a versão 5.3.
A idéia do artigo é servir como um guia para desenvolvedores que estão preocupados se seus sistemas são compatíveis com o 5.3 mas em momento nenhum dispense testar seu sistema em um servidor de testes antes de fazer o upgrade no seu servidor.
Configurações depreciadas
- define_syslog_variables
- register_globals
- register_long_arrays
- safe_mode
- magic_quotes_gpc
- magic_quotes_runtime
- magic_quotes_sybase
Funções depreciadas
- call_user_method()
- call_user_array()
- define_syslog_variables()
- dl()
- ereg()
- ereg_replace()
- eregi()
- eregi_replace()
- set_magic_quotes_runtime()
- magic_quotes_runtime()
- session_register()
- session_unregister()
- session_is_registered()
- set_socket_blocking()
- split()
- spliti()
- sql_regcase()
- mysql_db_query()
- mysql_escape_string()
Instalação
- A versão mínima suportada do Windows para o PHP é o XP SP3, as versões 98, ME, 2000 e NT4 não são mais suportadas.
- Foram removidas as seguintes extensões:
- dbase
- fbsql
- fdf
- ming
- msql
- ncurses
- sybase
- mhash
Incompatibilidades
- Ao passar parâmetros irregulares as funções do PHP a mesma irá retornar por padrão NULL. Algumas funções como get_class() vão continuar a retornar FALSE
- clearstatcache() não limpa mais o cache do realpath por padrão.
- realpath() é agora independente do sistema operacional. Em consequência disto é que caminhos relativos inválidos como __FILE__ . "/../x" não funcionam mais
- The call_user_func() family of functions now propagate $this even if the callee is a parent class
- As funções de array natsort(), natcasesort(), usort(), uasort(), uksort(), array_flip(), and array_unique() não aceitam mais objetos como argumentos. Para aplicar essas funções a um objeto converta o mesmo a um array primeiro
- The behaviour of functions with by-reference parameters called by value has changed. Where previously the function would accept the by-value argument, a fatal error is now emitted. Any previous code passing constants or literals to functions expecting references, will need altering to assign the value to a variable before calling the function
- A coleção mysqlnd necessita a versão MySQL 4.1's ou mais nova. O uso continuo de senhas 16-byte vai causar a função mysql_connect() e similares a emitir um erro, "mysqlnd cannot connect to MySQL 4.1+ using old authentication"
- A nova coleção mysqlnd não lê arquivos de configuração mysql (my.cnf/my.ini), como a antiga libmysql fazia. Se o seu código utiliza esses arquivos de configuração, você pode carregar explicitamente com a função mysqli_options(). Observe que isto significa que as constantes do PDO PDO::MYSQL_ATTR_READ_DEFAULT_FILE e PDO::MYSQL_ATTR_READ_DEFAULT_GROUP não são definidas se o suporte MySQL no PDO é compilado com mysqlnd.
- The trailing / has been removed from the SplFileInfo class and other related directory classes
- O método mágico __toString não aceita mais argumentos
- Os métodos mágicos __get, __set, __isset, __unset, e __call devem sempre ser definidos como public e não podem ser static. Method signatures are now enforced
- O método mágico __call é agora chamado ao acessar métodos private e protected
- func_get_arg(), func_get_args() e func_num_args() não podem mais ser chamados no escopo mais externo de um arquivo que foi incluído por include() ou require() dentro da função no arquivo chamado
- An emulation layer for the MHASH extension to wrap around the Hash extension have been added. However not all the algorithms are covered, notable the s2k hashing algorithm. This means that s2k hashing is no longer available as of PHP 5.3.0
- Tem dois novos nomes reservados: goto e namespace

Comentar