DOMDocument::registerNodeClass
En esta página
DOMDocument::registerNodeClass
Registra la clase extendida utilizada para crear un tipo de nodo base
Descripción#
public DOMDocument::registerNodeClass(string $baseClass, string $extendedClass): true
```php
Este método permite registrar su propia clase DOM extendida para ser utilizada posteriormente en la extensión DOM de PHP.
Este método no forma parte del estándar DOM.
> [!CAUTION]
> Los constructores de los objetos de las clases de nodos registrados no son llamados.
## Parámetros
`baseClass`
La clase DOM que se desea extender. Puede encontrarse una lista de estas clases en la [introducción del capítulo](#book.dom).
`extendedClass`
El nombre de su clase extendida. Si se proporciona el valor `null`, todas las clases registradas previamente que extienden `baseClass` serán eliminadas.
## Valores devueltos
Retorna siempre `true`.
## Historial de cambios
| Versión | Descripción |
|----|----|
| 8.4.0 | DOMDocument::registerNodeClass ahora tiene un tipo de retorno provisional de tipo `true`. |
## Ejemplos
Añadir un nuevo método a DOMElement
El ejemplo anterior mostrará:
Recuperación de elementos en forma de clase personalizada
El ejemplo anterior mostrará:
string(9) "myElement" Texto en un hijo
Recuperación del propietario del documento
Al instanciar un `DOMDocument` personalizado, la propiedad `ownerDocument` se refiere a la clase instanciada. Sin embargo, si todas las referencias a esta clase son eliminadas, será destruida y una nueva instancia de `DOMDocument` será creada en su lugar. Por esta razón, puede utilizarse el método `DOMDocument::registerNodeClass` con `DOMDocument`
El ejemplo anterior mostrará:
string(13) "MyDOMDocument" string(11) "DOMDocument" string(18) "MyOtherDOMDocument" string(18) "MyOtherDOMDocument"
Los objetos personalizados son efímeros
> [!CAUTION]
> Los objetos de la clase de nodos registrada son efímeros, es decir, son destruidos cuando ya no son referenciados desde el código PHP, y recreados cuando son recuperados nuevamente. Esto implica que los valores de propiedades personalizadas se perderán después de la recreación.
El ejemplo anterior mostrará:
modified value default value
```php