1
0
mirror of https://github.com/php/doc-es.git synced 2026-04-23 15:18:07 +02:00
Files
archived-doc-es/reference/reflection/extending.xml
T
Jesús Ruiz-Ayúcar Vázquez 10591bb2a2 Sigo con Mongo, actualizo Strings, y comienzo con Reflexion.
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@317624 c90b9560-bf6c-de11-be94-00142212c4b1
2011-10-02 19:18:13 +00:00

103 lines
2.2 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: fa6e196973e45c0013c0801e01697757f4b98426 Maintainer: chuso Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="reflection.extending" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Extensión</title>
<para>
Si se deseara crear versiones especializadas de las clases que vienen
incorporadas (por ejemplo, para crear HTML en color cuando se
experto, parar tener variables de acceso rápido en lugar de usar métodos,
o parar crear métodos auxiliares), deberá
extender la clase.
</para>
<example>
<title>Extendiendo las clases incorporadas</title>
<programlisting role="php">
<![CDATA[
<?php
/**
* Mi clase Reflection_Method
*/
class My_Reflection_Method extends ReflectionMethod
{
public $visibility = array();
public function __construct($o, $m)
{
parent::__construct($o, $m);
$this->visibility = Reflection::getModifierNames($this->getModifiers());
}
}
/**
* Clase demo #1
*
*/
class T {
protected function x() {}
}
/**
* Clase demo #2
*
*/
class U extends T {
function x() {}
}
// Mostrar información
var_dump(new My_Reflection_Method('U', 'x'));
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
object(My_Reflection_Method)#1 (3) {
["visibility"]=>
array(1) {
[0]=>
string(6) "public"
}
["name"]=>
string(1) "x"
["class"]=>
string(1) "U"
}
]]>
</screen>
</example>
<caution>
<para>
Si se sobrescribe el constructor, no hay que olvidar llamar
en primer lugar al constructor de la clase padre.
Si esto fallara, se lanzará el siguiente error:
<literal>Fatal error: Internal error: Failed to retrieve the reflection object</literal>
</para>
</caution>
</chapter>
<!-- 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
-->