mirror of
https://github.com/php/doc-es.git
synced 2026-04-24 23:58:06 +02:00
b92af78d49
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@337245 c90b9560-bf6c-de11-be94-00142212c4b1
2067 lines
57 KiB
XML
2067 lines
57 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: 8ad0d94e1c87b2daabff88e74acc31e8a11eec0a Maintainer: bng5 Status: ready -->
|
|
<!-- Reviewed: no -->
|
|
<appendix xml:id="migration52" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<title>Migración de PHP 5.1.x a PHP 5.2.x</title>
|
|
<para>
|
|
&manual.migration.seealso;
|
|
<link linkend="migration5">5.0.x</link>,
|
|
<link linkend="migration51">5.1.x</link>,
|
|
<link linkend="migration53">5.3.x</link>,
|
|
<link linkend="migration54">5.4.x</link> y
|
|
<link linkend="migration55">5.5.x</link>.
|
|
</para>
|
|
|
|
<section xml:id="migration52.changes">
|
|
<title>Qué ha cambiado en PHP 5.2.x</title>
|
|
<para>
|
|
La mayoría de las mejoras en PHP 5.2.x no tienen impacto en códigos existentes.
|
|
Existen <link linkend="migration52.incompatible">algunas incompatibilidades</link>
|
|
y <link linkend="migration52.error-messages">nuevos mensajes de error</link>
|
|
que deberían ser considerados, y el código debería ser probado antes de hacer
|
|
el cambio de versión de PHP en ambientes de producción.
|
|
</para>
|
|
<para>
|
|
Si el sistema está siendo actualizado desde PHP 5.0.x, también debería leer
|
|
la sección del manual <link linkend="migration51">Migración de
|
|
PHP 5.0.x a PHP 5.1.x</link>.
|
|
</para>
|
|
<para>
|
|
De la misma forma, si el sistema está siendo actualizado desde PHP 4, debería
|
|
leer la sección del manual <link linkend="migration5">Migración
|
|
desde PHP 4 a PHP 5.0.x</link>.
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="migration52.incompatible">
|
|
<title>Incompatibilidades con versiones anteriores</title>
|
|
<para>
|
|
Si bien la mayoría del código PHP 5 existente debería funcionar sin necesidad
|
|
de hacer ningún cambio, debe prestarse atención a las siguientes
|
|
incompatibilidades con versiones anteriores:
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>getrusage</function> devuelve &null; cuando se pasan argumentos
|
|
incompatibles a partir de PHP 5.2.1.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>ZipArchive::setCommentName</function>
|
|
devuelve &true; en caso de éxito a partir de PHP 5.2.1.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>ZipArchive::setCommentIndex</function>
|
|
devuelve &true; en caso de éxito a partir de PHP 5.2.1.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>SplFileObject::getFilename</function> devuelve el nombre del
|
|
fichero, no ruta/relativa/al/fichero, a partir de PHP 5.2.1.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Ha cambiado la prioridad de la variable de entorno <varname>PHPRC</varname>
|
|
en Win32
|
|
</simpara>
|
|
<simpara>
|
|
La variable de entorno <varname>PHPRC</varname> ahora tiene prioridad sobre
|
|
la ruta de acceso almacenada en el registro de Windows.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
CLI SAPI ya no busca por los ficheros &php.ini; o <filename>php-cli.ini</filename>
|
|
en el directorio de trabajo actual.
|
|
</simpara>
|
|
<simpara>
|
|
En PHP 5.1.x fue agregada una característica no documentada que hizo que el
|
|
interprete CLI chequeara de forma binaria el directorio de trabajo actual
|
|
en busca de un fichero de configuración de PHP, esto puede conducir a un
|
|
comportamiento impredecible si un fichero de configuración inesperado fuera
|
|
leído. Esta funcionalidad se quitó en 5.2.0, y PHP ya no buscará en el
|
|
directorio de trabajo actual por la presencia de los ficheros &php.ini; o
|
|
<filename>php-cli.ini</filename>.
|
|
Ver también la sección de <link linkend="features.commandline">línea de
|
|
comandos</link> del manual.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Se ha añadido una advertencia al realizar operaciones de módulo 0.
|
|
</simpara>
|
|
<simpara>
|
|
En versiones anteriores de PHP, realizar entero % 0 no emitía ningún mensaje
|
|
de advertencia, en su lugar solamente devolvía el valor inesperado &false;.
|
|
A partir de PHP 5.2.0, esta operación emitirá un <constant>E_WARNING</constant>,
|
|
así como en todos los casos donde se realize una división por cero.
|
|
</simpara>
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
print 10 % 0;
|
|
/* Warning: Division by zero in filename on line n */
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<link linkend="object.tostring">__toString()</link> ha sido cambiado para poder ser llamado
|
|
donde sea aplicable.
|
|
</simpara>
|
|
<simpara>
|
|
El método mágico <link linkend="object.tostring">__toString()</link> ahora será llamado en un
|
|
contexto de cadena, así de simple, en cualquier lugar donde un objeto sea
|
|
usado como una cadena.
|
|
</simpara>
|
|
<simpara>
|
|
La alternativa de devolver una cadena que contiene el identificador del
|
|
objeto fue quitada en PHP 5.2.0. Se convirtió en un problema debido a que
|
|
un identificador de objeto no puede ser considerado único. Este cambio
|
|
significará un daño en aplicaciones que confían en el identificador de
|
|
objeto como valor de retorno. Un intento de utilizar ese valor como una
|
|
cadena resultará ahora en un error fatal capturable.
|
|
</simpara>
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
class foo {}
|
|
$foo = new foo;
|
|
print $foo;
|
|
/* Catchable fatal error: Object of class foo could
|
|
not be converted to string in filename on line n */
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
<simpara>
|
|
Incluso con <link linkend="object.tostring">__toString()</link>, los objetos no pueden ser
|
|
usados como índices o claves de array. Podemos agregar soporte integrado
|
|
hash para esto más adelante, pero a partir de PHP 5.2.x necesitará
|
|
proporcionar su propio hashing o usar la nueva función SPL
|
|
<function>spl_object_hash</function>.
|
|
</simpara>
|
|
<simpara>
|
|
No pueden ser lanzadas excepciones desde métodos
|
|
<link linkend="object.tostring">__toString()</link>.
|
|
</simpara>
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
class foo {
|
|
public function __toString() {
|
|
throw new Exception;
|
|
}
|
|
}
|
|
|
|
try {
|
|
print new foo;
|
|
/* Fatal error: Method foo::__toString() must
|
|
not throw an exception in filename on line n */
|
|
} catch(Exception $e) {}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Quitadas funciones de clase abstractas estáticas.
|
|
</simpara>
|
|
<simpara>
|
|
Debido a un descuido, PHP 5.0.x y 5.1.x permiten funciones abstractas
|
|
estáticas en las clases. A partir de PHP 5.2.x, sólo las interfaces pueden
|
|
tenerlas.
|
|
</simpara>
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
abstract class foo {
|
|
abstract static function bar();
|
|
/* Strict Standards: Static function foo::bar()
|
|
should not be abstract in filename on line n */
|
|
}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
La <link linkend="ref.oci8">Extensión Oracle</link> requiere al menos Oracle
|
|
10 en Windows.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Agregado soporte RFC2397 (flujos <literal>data:</literal>).
|
|
</simpara>
|
|
<simpara>
|
|
La introducción del esquema URL 'data' tiene el potencial de dar lugar a un
|
|
cambio de comportamiento bajo Windows. Si se está trabajando con un sistema
|
|
de ficheros <acronym>NTFS</acronym> y haciendo uso de meta flujos en la
|
|
aplicación, y si sólo se está utilizando un fichero con el nombre 'data:'
|
|
al que se accede sin ningún tipo de información de la ruta - esta ya no
|
|
funcionará más. La solución es utilizar el protocolo 'file:' cuando se
|
|
accede a él.
|
|
</simpara>
|
|
<simpara>
|
|
Ver también <link xlink:href="&url.rfc;2397">RFC 2397</link>
|
|
</simpara>
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
/* when allow_url_include is OFF (default) */
|
|
include "data:;base64,PD9waHAgcGhwaW5mbygpOz8+";
|
|
/* Warning: include(): URL file-access is disabled
|
|
in the server configuration in filename on line n */
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Regresión en patrones <literal>glob()</literal>
|
|
</simpara>
|
|
<simpara>
|
|
En la versión 5.2.4 una corrección de seguridad provocó una regresión para
|
|
patrones de la forma "/foo/*/bar/*". Desde la versión 5.2.5 en lugar de
|
|
emitir una advertencia la función <literal>glob()</literal> devolverá
|
|
&false; cuando se violan las restricciones <literal>openbase_dir</literal>.
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section xml:id="migration52.error-messages">
|
|
<title>Nuevos Mensajes de Error</title>
|
|
<para>
|
|
A continuación se presentan los nuevos mensajes de error que no han sido
|
|
discutidos en otras partes de este documento.
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>En el núcleo de PHP</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
echo " ";
|
|
session_regenerate_id();
|
|
/* Warning: session_regenerate_id(): Cannot regenerate
|
|
session id - headers already sent in filename on line n */
|
|
|
|
str_word_count("string", 4);
|
|
/* Warning: str_word_count(): Invalid format value 4
|
|
in filename on line n */
|
|
|
|
strripos("foo", "f", 4);
|
|
/* Notice: strripos(): Offset is greater than the
|
|
length of haystack string in filename on line n */
|
|
|
|
strrpos("foo", "f", 4);
|
|
/* Notice: strrpos(): Offset is greater than the
|
|
length of haystack string in filename on line n */
|
|
|
|
/* As of PHP 5.2.1, when allow_url_include is OFF (default) */
|
|
include "php://input";
|
|
/* Warning: include(): URL file-access is disabled
|
|
in the server configuration in filename on line n */
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title><link linkend="language.oop5">Código Orientado a Objetos</link> en el núcleo de PHP</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
interface foo {
|
|
}
|
|
class bar implements foo, foo {
|
|
}
|
|
/* Fatal error: Class bar cannot implement previously
|
|
implemented interface foo in filename on line n */
|
|
|
|
|
|
class foo {
|
|
public $bar;
|
|
function __get($var)
|
|
{
|
|
return $this->bar;
|
|
}
|
|
}
|
|
|
|
$foo = new foo;
|
|
$bar =& $foo->prop;
|
|
/* Notice: Indirect modification of overloaded property
|
|
foo::$prop has no effect in filename on line n */
|
|
|
|
|
|
class foo implements iterator {
|
|
public function current() {
|
|
}
|
|
public function next() {
|
|
}
|
|
public function key() {
|
|
}
|
|
public function valid() {
|
|
}
|
|
public function rewind() {
|
|
}
|
|
}
|
|
|
|
$foo = new foo();
|
|
foreach($foo as &$ref) {}
|
|
/* Fatal error: An iterator cannot be used with foreach
|
|
by reference in filename on line n */
|
|
|
|
|
|
class foo {
|
|
private function __construct() {
|
|
}
|
|
}
|
|
class bar extends foo {
|
|
public function __construct() {
|
|
parent::__construct();
|
|
/* Fatal error: Cannot call private
|
|
foo::__construct() in filename on line n */
|
|
}
|
|
}
|
|
new bar;
|
|
|
|
|
|
stream_filter_register("", "class");
|
|
/* Warning: stream_filter_register(): Filter name
|
|
cannot be empty in filename on line n */
|
|
|
|
|
|
stream_filter_register("filter", "");
|
|
/* Warning: stream_filter_register(): Class name
|
|
cannot be empty in filename on line n */
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>En la Extensión <link linkend="ref.bzip2">bzip2</link></title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
bzopen("", "w");
|
|
/* Warning: bzopen(): filename cannot be empty
|
|
in filename on line n */
|
|
|
|
bzopen("foo", "a");
|
|
/* Warning: bzopen(): 'a' is not a valid mode for
|
|
bzopen(). Only 'w' and 'r' are supported in
|
|
filename on line n */
|
|
|
|
$fp = fopen("foo", "w");
|
|
bzopen($fp, "r");
|
|
/* Warning: bzopen(): cannot read from a stream
|
|
opened in write only mode in filename on line n */
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>En la Extensión <link linkend="ref.datetime">datetime</link></title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
strtotime("today", "now");
|
|
/* Warning: strtotime() expects parameter 2 to be
|
|
long, string given in filename on line n */
|
|
|
|
/* A partir de PHP 5.2.1 */
|
|
new DateTime(new stdclass);
|
|
/* Fatal error: Uncaught exception 'Exception' with
|
|
message 'DateTime::__construct() expects parameter
|
|
1 to be string, object given' in filename:n */
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>En la Extensión <link linkend="ref.dbase">dBase</link></title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
dbase_open("foo", -1);
|
|
/* Warning: Invalid access mode -1 in filename on line n */
|
|
|
|
/* A partir de PHP 5.2.1 */
|
|
dbase_open("foo", null);
|
|
/* Warning: The filename cannot be empty in filename on line n */
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>En la Extensión <link linkend="ref.mcrypt">mcrypt</link></title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$key = "esto es una clave secreta";
|
|
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
|
|
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td),
|
|
MCRYPT_RAND);
|
|
mcrypt_generic_init($td, $key, $iv);
|
|
$encrypted_data = mcrypt_generic($td, "");
|
|
/* Warning: mcrypt_generic(): An empty string was
|
|
passed in filename on line n */
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>En la Extensión <link linkend="ref.oci8">oci8</link></title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
oci_connect("usuario", "clave", "db", "charset_invalido");
|
|
/* Warning: Invalid character set name:
|
|
charset_invalido in filename on line n */
|
|
|
|
$oci = oci_connect("usuario", "clave", "db");
|
|
oci_password_change($oci, "", "clave_antigua", "clave_nueva");
|
|
/* Warning: username cannot be empty in filename
|
|
on line n */
|
|
|
|
oci_password_change($oci, "usuario", "", "clave_nueva");
|
|
/* Warning: old password cannot be empty in filename
|
|
on line n */
|
|
|
|
oci_password_change($oci, "usuario", "clave_antigua", "");
|
|
/* Warning: new password cannot be empty in filename
|
|
on line n */
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>En la Extensión <link linkend="ref.spl">SPL</link></title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$obj = new SplFileObject(__FILE__);
|
|
$obj->fgetcsv("foo");
|
|
/* Warning: SplFileObject::fgetcsv(): delimiter must
|
|
be a character in filename on line n */
|
|
|
|
$obj->fgetcsv(",", "foo");
|
|
/* Warning: SplFileObject::fgetcsv(): enclosure must
|
|
be a character in filename on line n */
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>En la Extensión <link linkend="ref.sem">Semaphore</link> (sysvmsg)</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
/* Warning: maximum size of the message has to be
|
|
greater then zero in filename on line n */
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Un ejemplo <link linkend="ref.zip">Zip</link> 5.2.1+</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$obj = new ZipArchive();
|
|
$obj->open('archive.zip');
|
|
$obj->setCommentName('', 'comment');
|
|
/* Notice: ZipArchive::setCommentName(): Empty string
|
|
as entry name in filename on line n */
|
|
|
|
/* A partir de PHP 5.2.1 */
|
|
$obj->getCommentName('');
|
|
/* Notice: ZipArchive::getCommentName(): Empty string
|
|
as entry name in filename on line n */
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="migration52.datetime">
|
|
<title>Cambios en el soporte PHP para
|
|
<link linkend="ref.datetime">datetime</link></title>
|
|
<para>
|
|
Desde PHP 5.1.0 ha existido una extensión llamada <literal>date</literal>
|
|
en el núcleo de PHP. Esta es una nueva implementación del soporte PHP para
|
|
fecha y hora.
|
|
A pesar de que tratará de adivinar la configuración de zona horaria de su
|
|
sistema, debe establecer la zona horaria manualmente. Puede hacerlo de
|
|
cualquiera de las siguientes tres maneras:
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
en &php.ini; usando la directiva INI
|
|
<link linkend="ini.date.timezone">date.timezone</link>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
en el sistema, usando la variable de entorno <varname>TZ</varname>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
desde un script, usando la función
|
|
<function>date_default_timezone_set</function>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<para>
|
|
Todas las <link linkend="timezones">zonas horarias</link> soportadas se
|
|
encuentran listadas en el Manual de PHP.
|
|
</para>
|
|
<para>
|
|
Con la llegada de PHP 5.2.x, hay <type>objetos</type> para representar la
|
|
fecha y la zona horaria, llamadas <literal>DateTime</literal> y
|
|
<literal>DateTimeZone</literal> respectivamente.
|
|
Los métodos trazan a funciones procesales de date existentes.
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="migration52.parameters">
|
|
<title>Nuevos Parámetros</title>
|
|
<para>
|
|
Algunas funciones recibieron nuevos parámetros opcionales en PHP 5.2.x:
|
|
</para>
|
|
|
|
<para>Núcleo de PHP:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>htmlentities</function>
|
|
- añadido <parameter>double_encode</parameter> en PHP 5.2.3.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>htmlspecialchars</function>
|
|
- añadido <parameter>double_encode</parameter> en PHP 5.2.3.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>base64_decode</function>
|
|
- añadido <parameter>strict</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>setcookie</function>
|
|
- añadido <parameter>httponly</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>setrawcookie</function>
|
|
- añadido <parameter>httponly</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>session_set_cookie_params</function>
|
|
- añadido <parameter>httponly</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>memory_get_usage</function>
|
|
- añadido <parameter>real_usage</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>get_loaded_extensions</function>
|
|
- añadido <parameter>zend_extensions</parameter> en PHP 5.2.4
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.curl">curl</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>curl_multi_info_read</function>
|
|
- añadido <parameter>msgs_in_queue</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.datetime">datetime</link></para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>date</function>
|
|
- añadido carácter de formato "u" (milisegundos) en PHP 5.2.2
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.imap">imap</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>imap_open</function>
|
|
- añadido <parameter>n_retries</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>imap_reopen</function>
|
|
- añadido <parameter>n_retries</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.mbstring">mbstring</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>mb_strrpos</function>
|
|
- añadido <parameter>offset</parameter>
|
|
</simpara>
|
|
<warning>
|
|
<simpara>
|
|
El parámetro <parameter>offset</parameter> se puso en la posición en la
|
|
que se encontraba el parámetro <parameter>encoding</parameter>.
|
|
Se ha proporcionado compatibilidad con versiones anteriores al permitir
|
|
que se especifique la codificación (<parameter>encoding</parameter>) como
|
|
tercer parámetro. No se recomienda el uso de este modo de compatibilidad
|
|
debido a que será removido en futuros lanzamientos de PHP.
|
|
</simpara>
|
|
</warning>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.ming">ming</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>SWFMovie::streamMP3</function>
|
|
- añadido <parameter>skip</parameter> en PHP 5.2.1
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.openssl">openssl</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>openssl_verify</function>
|
|
- añadido <parameter>signature_algo</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.pgsql">pgsql</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>pg_escape_bytea</function>
|
|
- añadido <parameter>connection</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>pg_escape_string</function>
|
|
- añadido <parameter>connection</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.simplexml">simplexml</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>SimpleXMLElement::__construct</function>
|
|
- añadido <parameter>is_prefix</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>SimpleXMLElement::attributes</function>
|
|
- añadido <parameter>is_prefix</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>SimpleXMLElement::children</function>
|
|
- añadido <parameter>is_prefix</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>simplexml_load_file</function>
|
|
- añadido <parameter>is_prefix</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>simplexml_load_string</function>
|
|
- añadido <parameter>is_prefix</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.spl">spl</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
array iterator_to_array(Traversable iterator [, bool use_keys = true])
|
|
- fue añadido <parameter>use_keys</parameter> en PHP 5.2.1
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="book.xmlreader">xmlreader</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>XMLReader::open</function>
|
|
- añadidos <parameter>encoding</parameter>
|
|
y <parameter>options</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>XMLReader::XML</function>
|
|
- añadidos <parameter>encoding</parameter>
|
|
y <parameter>options</parameter>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.xmlwriter">XMLWriter</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>xmlwriter_write_element</function>
|
|
- el parámetro <parameter>content</parameter> se hizo opcional en PHP 5.2.3
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>xmlwriter_write_element_ns</function>
|
|
- el parámetro <parameter>content</parameter> se hizo opcional en PHP 5.2.3
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section xml:id="migration52.functions">
|
|
<title>Nuevas Funciones</title>
|
|
<para>
|
|
PHP 5.2.x incorpora algunas nuevas funciones:
|
|
</para>
|
|
|
|
<para>PHP Core:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>array_fill_keys</function>
|
|
- Crea un array usando los elementos del primer parámetro como claves,
|
|
con cada elemento inicializado con valor <literal>val</literal>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>error_get_last</function>
|
|
- Obtiene el último error ocurrido como array asociativo. Devuelve &null;
|
|
si aún no se ha producido ningún error.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>image_type_to_extension</function>
|
|
- Obtiene la extensión de fichero para tipo de imagen retornado por
|
|
<function>getimagesize</function>, <function>exif_read_data</function>,
|
|
<function>exif_thumbnail</function>, <function>exif_imagetype</function>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>memory_get_peak_usage</function>
|
|
- Devuelve el máximo asignado por memoria de PHP
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>sys_get_temp_dir</function>
|
|
- Devuelve la ruta al directorio usado para ficheros temporales (Agregado
|
|
en 5.2.1)
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>timezone_abbreviations_list</function>
|
|
- Devuelve matriz asociativa que contiene horario de verano, la
|
|
compensación y el nombre de zona horaria
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>timezone_identifiers_list</function>
|
|
- Devuelve una matriz indexada numéricamente con todos los identificadores
|
|
de zona horaria
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>timezone_name_from_abbr</function>
|
|
- Devuelve el nombre de zona horaria a partir de su abreviatura.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>stream_socket_shutdown</function>
|
|
- Causa que toda o parte de una conexión full-duplex en el socket asociado
|
|
con flujo se cierre. A partir de PHP 5.2.1.
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.image">Image</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>imagegrabscreen</function>
|
|
- Realiza una captura de pantalla de toda la pantalla. A partir de PHP 5.2.2.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>imagegrabwindow</function>
|
|
- Captura una ventana. A partir de PHP 5.2.2.
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="book.libxml">libXML</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>libxml_disable_entity_loader</function>
|
|
- Deshabilita la capacidad de cargar entidades externas. A partir de PHP 5.2.11.
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.mbstring">mbstring</link>:</para>
|
|
<itemizedlist>
|
|
<!--
|
|
FIXME: Apparently these two never made it into a release
|
|
see bug#41070
|
|
<listitem>
|
|
<simpara>
|
|
<function>mb_list_encodings_alias_names</function>
|
|
- Returns an array of all supported entity encodings
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>mb_list_mime_names</function>
|
|
- Returns an array or string of all supported mime names
|
|
</simpara>
|
|
</listitem>
|
|
-->
|
|
<listitem>
|
|
<simpara>
|
|
<function>mb_stripos</function>
|
|
- Encuentra la posición de la primer aparición de una cadena dentro de
|
|
otra, sin diferenciar entre mayúsculas y minúsculas.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>mb_stristr</function>
|
|
- Encuentra la primer aparición de una cadena dentro de otra, sin
|
|
diferenciar entre mayúsculas y minúsculas.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>mb_strrchr</function>
|
|
- Encuentra la última aparición de un carácter en una cadena dentro de otra.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>mb_strrichr</function>
|
|
- Encuentra la última aparición de un carácter en una cadena dentro de otra,
|
|
sin diferenciar entre mayúsculas y minúsculas.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>mb_strripos</function>
|
|
- Encuentra la posición de la última aparición de una cadena dentro de otra,
|
|
sin diferenciar entre mayúsculas y minúsculas.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>mb_strstr</function>
|
|
- Encuentra la primer aparición de una cadena dentro de otra.
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.ming">ming</link> (A partir de PHP 5.2.1):</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
void ming_setSWFCompression(int num)
|
|
- Establece la compresión de salida
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
void swfmovie::namedanchor(string name)
|
|
- Crea ancla
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
void swfmovie::protect([string password])
|
|
- Protege
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.openssl">openssl</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>openssl_csr_get_public_key</function>
|
|
- Extrae llave pública de un certificado y la prepara para su uso
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>openssl_csr_get_subject</function>
|
|
- Devuelve el asunto de un certificado
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>openssl_pkey_get_details</function>
|
|
- Devuelve una matriz con los detalles de la clave (bits, pkey, type)
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.spl">spl</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>spl_object_hash</function>
|
|
- Devuelve el hash id para un objeto dado
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
int iterator_apply(Traversable iterator, mixed function [, mixed params])
|
|
- Llama una función para cada elemento en un iterador
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.pcre">pcre</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>preg_last_error</function>
|
|
- Devuelve el código de error de la última ejecución regex
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.pgsql">pgsql</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>pg_field_table</function>
|
|
- Devuelve el nombre del campo de la tabla a la que pertenece, o el oid de
|
|
la tabla si <literal>oid_only</literal> es &true;
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.posix">posix</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>posix_initgroups</function>
|
|
- Calcular el grupo de lista de acceso para el usuario especificado en
|
|
nombre
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.gmp">gmp</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>gmp_nextprime</function>
|
|
- Encuentra el siguiente número primo
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.xmlwriter">xmlwriter</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>xmlwriter_full_end_element</function>
|
|
- Finaliza elemento actual - retorna &false; en caso de error
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>xmlwriter_write_raw</function>
|
|
- Escribe texto - retorna &false; en caso de error
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>xmlwriter_start_dtd_entity</function>
|
|
- Crea inicio de Entidad DTD - retorna &false; en caso de error
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>xmlwriter_end_dtd_entity</function>
|
|
- Finaliza la Entidad DTD actual - retorna &false; en caso de error
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>xmlwriter_write_dtd_entity</function>
|
|
- Escribe una etiqueta completa de una Entidad DTD - retorna &false; en
|
|
caso de error
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section xml:id="migration52.methods">
|
|
<title>Nuevos Métodos</title>
|
|
<para>
|
|
Nuevos métodos introducidos en 5.2.0:
|
|
</para>
|
|
|
|
<para><link linkend="book.dom">dom</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<function>DOMDocument::registerNodeClass</function>
|
|
- Registra la clase extendida usada para crear el tipo de nodo base
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>DOMElement::setIDAttribute</function>
|
|
- Declara el atributo especificado por su nombre para ser de tipo ID
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>DOMElement::setIDAttributeNode</function>
|
|
- Declara el atributo especificado por nodo para ser de tipo ID
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>DOMElement::setIDAttributeNS</function>
|
|
- Declara el atributo especificado por el nombre local y URI de espacio de
|
|
nombre para ser de tipo ID
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<methodname>DOMNode::C14N</methodname>([bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]])
|
|
- Canónicaliza nodos a una cadena
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<methodname>DOMNode::C14NFile</methodname>(string uri [, bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]])
|
|
- Canónicaliza nodos a un fichero
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<methodname>DOMNode::getNodePath</methodname>()
|
|
- Obtiene un <literal>xpath</literal> para un nodo
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.soap">soap</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<methodname>SoapServer::setObject</methodname>(object obj)
|
|
- Fija el objeto que manejará las peticiones SOAP
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.spl">spl</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
int <methodname>ArrayObject::asort</methodname>(void)
|
|
- Ordena las entradas por valores
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
int <methodname>ArrayObject::ksort</methodname>(void)
|
|
- Ordena las entradas por clave
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
int <methodname>ArrayObject::natcasesort</methodname>(void)
|
|
- Ordena las entradas por clave usando un algoritmo de "orden natural" sin
|
|
diferenciación entre mayúsculas y minúsculas.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
int <methodname>ArrayObject::natsort</methodname>(void)
|
|
- Ordena las entradas por valor usando un algoritmo de "orden natural".
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
int <methodname>ArrayObject::uasort</methodname>(callback cmp_function)
|
|
- Ordena las entradas por valor usando una función definida por el usuario.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
int <methodname>ArrayObject::uksort</methodname>(callback cmp_function)
|
|
- Ordena las entradas por clave usando una función definida por el usuario.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
ArrayIterator <methodname>AppendIterator::getArrayIterator</methodname>()
|
|
- Obtiene acceso al <literal>ArrayIterator</literal> interno
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
int <methodname>AppendIterator::getIteratorIndex</methodname>()
|
|
- Obtiene el índice del iterator
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
bool <methodname>CachingIterator::getCache</methodname>()
|
|
- Devuelve el caché
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
int <methodname>CachingIterator::getFlags</methodname>()
|
|
- Devuelve las banderas internas
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
bool <methodname>CachingIterator::offsetExists</methodname>(mixed index)
|
|
- Devuelve &true; si el índice solicitado existe
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
string <methodname>CachingIterator::offsetGet</methodname>(mixed index)
|
|
- Devuelve el caché interno si es usado
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
void <methodname>CachingIterator::offsetSet</methodname>(mixed index, mixed newval)
|
|
- Fija el índice dado en caché
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
void <methodname>CachingIterator::offsetUnset</methodname>(mixed index)
|
|
- Destruye el índice dado en caché
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
void <methodname>CachingIterator::setFlags</methodname>()
|
|
- Fija las banderas internas
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
array("delimiter" =>, "enclosure" =>) <methodname>SplFileObject::getCsvControl</methodname>(void)
|
|
- Obtiene el delimitador y carácter de cierre de campo usado en
|
|
<function>fgetcsv</function>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
void <methodname>SplFileObject::setCsvControl</methodname>([string delimiter = ',' [, string enclosure = '"']])
|
|
- Fija el delimitador y carácter de cierre de campo usado en
|
|
<function>fgetcsv</function>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.tidy">Tidy</link></para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
tidyNode <methodname>tidyNode::getParent</methodname>()
|
|
- Devuelve el nodo padre del nodo actual (Añadido en PHP 5.2.2)
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="book.xmlreader">XMLReader</link></para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
boolean <function>XMLReader::setSchema</function>
|
|
- Utiliza el esquema XSD de W3C para validar el documento mientras se
|
|
procesa. Sólo es posible su activación antes de la primer llamada a
|
|
<function>XMLReader::read</function>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.zip">zip</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<methodname>ZipArchive::addEmptyDir</methodname>()
|
|
- Crea un directorio vacío en el fichero
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section xml:id="migration52.removed-extensions">
|
|
<title>Extensiones eliminadas</title>
|
|
<para>
|
|
Estas extensiones han sido movidas a PECL y ya no forman parte de la
|
|
distribución de PHP. La versión del paquete PECL de estas extensiones se
|
|
creará de acuerdo a la demanda del usuario.
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<link linkend="ref.filepro">filePro</link>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<link linkend="ref.hwapi">Hyperwave API</link>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section xml:id="migration52.new-extensions">
|
|
<title>Nuevas Extensiones</title>
|
|
<para>
|
|
Los siguientes son nuevas extensiones agregadas (por defecto) a partir de PHP
|
|
5.2.0:
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<link linkend="ref.filter">Filter</link>
|
|
- valida y filtra datos, y está diseñado para ser usado con datos inseguros
|
|
como ser los ingresados por el usuario. Esta extensión está activada de
|
|
forma predeterminada; el modo predeterminado RAW no afecta los datos de
|
|
entrada de ninguna manera.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<link linkend="ref.json">JSON</link>
|
|
- implementa el formato de intercambio de datos 'JavaScript Object
|
|
Notation' (JSON). Esta extensión está activada por defecto.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<link linkend="ref.zip">Zip</link>
|
|
- permite leer y escribir de forma transparente archivos comprimidos con
|
|
ZIP y los ficheros dentro de ellos.
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section xml:id="migration52.classes">
|
|
<title>Nuevas Clases</title>
|
|
<para>
|
|
Las siguientes clases fueron añadidas en PHP 5.2.0:
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<link linkend="ref.datetime">DateTime</link>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<link linkend="ref.datetime">DateTimeZone</link>
|
|
</simpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<simpara>
|
|
RegexIterator - extiende de <classname>FilterIterator</classname>;
|
|
implementa <classname>Iterator</classname>, <classname>Traversable</classname>,
|
|
<classname>OuterIterator</classname>
|
|
</simpara>
|
|
<simpara>
|
|
Constantes:
|
|
</simpara>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>RegexIterator::ALL_MATCHES</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>RegexIterator::GET_MATCH</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>RegexIterator::MATCH</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>RegexIterator::REPLACE</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>RegexIterator::SPLIT</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>RegexIterator::USE_KEY</constant>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<simpara>
|
|
Propiedades:
|
|
</simpara>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
public <property>replacement</property>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<simpara>
|
|
Métodos:
|
|
</simpara>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
RegexIterator::__construct(Iterator it, string regex [, int mode [, int flags [, int preg_flags]]])
|
|
- Crea un objeto <literal>RegexIterator</literal> desde otro iterador y
|
|
una expresión regular
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
bool RegexIterator::accept()
|
|
- Realiza una comparación entre (string)current() y una expresión regular
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
bool RegexIterator::getFlags()
|
|
- Devuelve las banderas de la operación actual
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
bool RegexIterator::getMode()
|
|
- Devuelve el modo de la operación actual
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
bool RegexIterator::getPregFlags()
|
|
- Devuelve las banderas actuales PREG (si está en uso o &null;)
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
bool RegexIterator::setFlags(int new_flags)
|
|
- Fija banderas de la operación
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
bool RegexIterator::setMode(int new_mode)
|
|
- Fija el nuevo modo de la operación
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
bool RegexIterator::setPregFlags(int new_flags)
|
|
- Fija banderas PREG
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<simpara>
|
|
RecursiveRegexIterator
|
|
</simpara>
|
|
<simpara>
|
|
Constantes:
|
|
</simpara>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>RecursiveRegexIterator::ALL_MATCHES</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>RecursiveRegexIterator::GET_MATCH</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>RecursiveRegexIterator::MATCH</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>RecursiveRegexIterator::REPLACE</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>RecursiveRegexIterator::SPLIT</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>RecursiveRegexIterator::USE_KEY</constant>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<simpara>
|
|
Métodos:
|
|
</simpara>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
RecursiveRegexIterator::__construct(RecursiveIterator iterator, string regex [, int mode [, int flags [, int preg_flags]]])
|
|
- Crea un objeto <literal>RecursiveRegexIterator</literal> desde otro
|
|
iterador recursivo y una expresión regular
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
RecursiveRegexIterator RecursiveRegexIterator::getChildren()
|
|
- Devuelve los hijos del iterador interno contenido en un
|
|
<literal>RecursiveRegexIterator</literal>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
bool RecursiveRegexIterator::hasChildren()
|
|
- Comprueba si el elemento actual del iterador interno tiene hijos
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section xml:id="migration52.global-constants">
|
|
<title>Nuevas Constantes Globales</title>
|
|
|
|
<para>Núcleo de PHP:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>M_EULER</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>M_LNPI</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>M_SQRT3</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>M_SQRTPI</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>PATHINFO_FILENAME</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>PREG_BACKTRACK_LIMIT_ERROR</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>PREG_BAD_UTF8_ERROR</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>PREG_INTERNAL_ERROR</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>PREG_NO_ERROR</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>PREG_RECURSION_LIMIT_ERROR</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>UPLOAD_ERR_EXTENSION</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>STREAM_SHUT_RD</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>STREAM_SHUT_WR</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>STREAM_SHUT_RDWR</constant>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.curl">curl</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CURLE_FILESIZE_EXCEEDED</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CURLE_FTP_SSL_FAILED</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CURLE_LDAP_INVALID_URL</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CURLFTPAUTH_DEFAULT</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CURLFTPAUTH_SSL</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CURLFTPAUTH_TLS</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CURLFTPSSL_ALL</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CURLFTPSSL_CONTROL</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CURLFTPSSL_NONE</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CURLFTPSSL_TRY</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CURLOPT_FTP_SSL</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CURLOPT_FTPSSLAUTH</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CURLOPT_TCP_NODELAY</constant>
|
|
</simpara>
|
|
<simpara>
|
|
Añadido en PHP 5.2.1.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CURLOPT_TIMEOUT_MS</constant>
|
|
</simpara>
|
|
<simpara>
|
|
Añadido en PHP 5.2.3
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CURLOPT_CONNECTTIMEOUT_MS</constant>
|
|
</simpara>
|
|
<simpara>
|
|
Añadido en PHP 5.2.3
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.gmp">GMP</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>GMP_VERSION</constant>
|
|
</simpara>
|
|
<simpara>
|
|
Añadido en PHP 5.2.2.
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.ming">ming</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SWFTEXTFIELD_USEFONT</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SWFTEXTFIELD_AUTOSIZE</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SWF_SOUND_NOT_COMPRESSED</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SWF_SOUND_ADPCM_COMPRESSED</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SWF_SOUND_MP3_COMPRESSED</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SWF_SOUND_NOT_COMPRESSED_LE</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SWF_SOUND_NELLY_COMPRESSED</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SWF_SOUND_5KHZ</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SWF_SOUND_11KHZ</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SWF_SOUND_22KHZ</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SWF_SOUND_44KHZ</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SWF_SOUND_8BITS</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SWF_SOUND_16BITS</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SWF_SOUND_MONO</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SWF_SOUND_STEREO</constant>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.openssl">openssl</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>OPENSSL_VERSION_NUMBER</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>OPENSSL_VERSION_TEXT</constant>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.snmp">snmp</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SNMP_OID_OUTPUT_FULL</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SNMP_OID_OUTPUT_NUMERIC</constant>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.sem">Semaphore</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>MSG_EAGAIN</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>MSG_ENOMSG</constant>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section xml:id="migration52.class-constants">
|
|
<title>Nuevas Constantes de Clase</title>
|
|
|
|
<para><link linkend="intro.pdo">pdo</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>PDO::ATTR_DEFAULT_FETCH_MODE</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>PDO::FETCH_PROPS_LATE</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>PDO::FETCH_KEY_PAIR</constant>
|
|
</simpara>
|
|
<simpara>
|
|
Recupera un resultado de 2 columnas hacia una matriz asociativa. (Añadido
|
|
en PHP 5.2.3)
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para><link linkend="ref.spl">spl</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CachingIterator::FULL_CACHE</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>CachingIterator::TOSTRING_USE_INNER</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SplFileObject::READ_AHEAD</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SplFileObject::READ_CSV</constant>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<constant>SplFileObject::SKIP_EMPTY</constant>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section xml:id="migration52.newconf">
|
|
<title>Nuevas Directivas de Configuración INI</title>
|
|
<para>
|
|
Nuevas directivas &php.ini; introducidas en PHP 5.2.0:
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<link linkend="ini.allow-url-include">allow_url_include</link>
|
|
</simpara>
|
|
<simpara>
|
|
Esta útil opción hace posible distinguir entre las operaciones de ficheros
|
|
estándar en ficheros remotos, y la inclusión de ficheros remotos. Mientras
|
|
que el anterior es generalmente deseable, este último puede ser un riesgo
|
|
para la seguridad si se usa de forma ingenua. Comenzando con PHP 5.2.0, es
|
|
posible habilitar operaciones sobre ficheros remotos mientras que rechaza
|
|
la inclusión de ficheros remotos en scripts locales. De hecho, ésta es la
|
|
configuración de defecto.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<link linkend="ini.pcre.backtrack-limit">pcre.backtrack_limit</link>
|
|
</simpara>
|
|
<simpara>
|
|
Límite de marcha atrás de PCRE.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<link linkend="ini.pcre.recursion-limit">pcre.recursion_limit</link>
|
|
</simpara>
|
|
<simpara>
|
|
Límite de recursividad de PCRE. Tenga en cuenta que si establece este valor
|
|
a un número elevado puede consumir toda la pila de procesos disponible y,
|
|
finalmente, colapsar PHP (porque ha alcanzado el límite de tamaño de pila
|
|
impuestas por el sistema operativo).
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<link linkend="ini.session.cookie-httponly">session.cookie_httponly</link>
|
|
</simpara>
|
|
<simpara>
|
|
Marca la cookie como accesible únicamente a través del protocolo HTTP. Esto
|
|
significa que la cookie no será accesible por lenguajes de scripting, como
|
|
JavaScript. Esta configuración puede efectivamente ayudar a reducir el robo
|
|
de identidad a través de ataques XSS (aunque no es compatible con todos los
|
|
navegadores).
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<para>
|
|
Nuevas directivas en PHP 5.2.2:
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<link linkend="ini.max-input-nesting-level">max_input_nesting_level</link>
|
|
</simpara>
|
|
<simpara>
|
|
Limita que tan profundo pueden ser jerarquizadas las
|
|
<link linkend="language.variables.external">variables de entrada</link>,
|
|
por defecto es 64.
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section xml:id="migration52.errorrep">
|
|
<title>Reportes de Error</title>
|
|
<para>
|
|
|
|
Algunas de las condiciones existentes de <constant>E_ERROR</constant> se han
|
|
convertido en algo que se puede capturado por un manejador de errores
|
|
definido por el usuario. Si un <link
|
|
linkend="errorfunc.constants"><constant>E_RECOVERABLE_ERROR</constant></link>
|
|
no es dirigido al manejador, se comportará de la misma forma que
|
|
<constant>E_ERROR</constant> se comporta en todas las versiones del PHP. Los
|
|
errores de este tipo se registran como <literal>Catchable fatal error</literal>.
|
|
</para>
|
|
<para>
|
|
|
|
Este cambio significa que el valor de la constante para
|
|
<link linkend="ini.error-reporting">error_reporting</link> <constant>E_ALL</constant>
|
|
ahora es 6143, cuando el valor anterior era 2047. Debido a las constantes de
|
|
PHP no tiene significado fuera de PHP, en algunos casos el valor entero se
|
|
utiliza en su lugar por lo que estos tendrán que ser ajustados. Así, por
|
|
ejemplo estableciendo el modo error_reporting, ya sea desde
|
|
<link linkend="apache.configuration">httpd.conf</link> o ficheros
|
|
<filename>.htaccess</filename>, el valor tiene que ser cambiado en
|
|
consecuencia. Lo mismo se aplica cuando valores numéricos son utilizados en
|
|
lugar de las constantes en scripts PHP.
|
|
</para>
|
|
<para>
|
|
Como efecto secundario de un cambio realizado para prevenir mensajes de error
|
|
duplicados, cuando <link linkend="ini.track-errors">track_errors</link> están
|
|
<literal>On</literal>, es ahora necesario que los manejadores de error
|
|
definidos por el usuario devuelvan &false; para propagar
|
|
<varname>$php_errormsg</varname>. Esto proporciona un control muy detallado
|
|
sobre los niveles de mensajes almacenados.
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="migration52.other">
|
|
<title>Otras mejoras</title>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
Se ha mejorado el administrador de memoria y ampliado el límite de memoria
|
|
predeterminado.
|
|
</simpara>
|
|
<simpara>
|
|
El nuevo administrador de memoria asigna menos memoria y funciona más
|
|
rápido que la representación anterior. Este asigna memoria del sistema en
|
|
grandes bloques, y luego administra lo acumulado. El valor de
|
|
<literal>memory_limit</literal> es comprobado en &php.ini;, no para cada
|
|
llamada a <literal>emalloc()</literal> (como antes), pero si para los bloques
|
|
concretos solicitados al sistema. Esto significa que <literal>memory_limit</literal>
|
|
es mucho más preciso de lo que solía ser, ya que el antiguo administrador
|
|
de memoria no calculaba todos los gastos de memoria utilizada por la
|
|
biblioteca <literal>malloc</literal>.
|
|
</simpara>
|
|
<simpara>
|
|
Gracias a esta reciente exactitud puede parecer que el uso de memoria se ha
|
|
incrementado, aunque en realidad no es así. Para dar cabida a este aparente
|
|
aumento, el valor predeterminado para <literal>memory_limit</literal> fue
|
|
incrementado también - de 8 a 16 megabytes.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Añadido soporte para constructores en interfaces para forzar la comprobación
|
|
de firma del constructor en implementaciones.
|
|
</simpara>
|
|
<simpara>
|
|
A partir de PHP 5.2.0, las interfaces pueden tener constructores. Sin embargo,
|
|
si se opta por declarar un constructor en una interfaz, cada clase que la
|
|
implementa DEBE incluir un constructor con una firma que se corresponda con
|
|
la del constructor de la interfaz base. Por 'firma' nos referimos a las
|
|
definiciones de parámetros y de tipos devueltos,
|
|
esto aplica para cualquier declaración de tipo e
|
|
incluye si los datos se pasan por referencia o por valor.
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
</appendix>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|