Esta bien llamar clases de esta forma?

  • Autor Autor YeltsinReyes
  • Fecha de inicio Fecha de inicio

YeltsinReyes

Mi
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
En la clase base llamar otras clases y en esas otras clases
llamar la clase base para usar sus métodos y variables.

PHP:
<?php

class Base {

    private static $instance;
   
    public static function get_instance(){
        if(is_null(self::$instance)){
            self::$instance = new self();
        }
        return self::$instance;
    }
   
    public function inicializar(){

        $this->time = time();

        require_once('class-ayuda.php');
        new Ayuda();
       
    }
   
}

$wpys = WPYS::get_instance();
$wpys->inicializar();

?>

PHP:
<?php

class Ayuda {
   
    public function __construct(){
       
        $this->base = Base::get_instance();
        echo $this->base->time;
       
    }
   
}

?>
 
Última edición:
En WP podrias implementar containers o un pseudo inyección de dependencias, como en el siguiente ejemplo:

 
@iamcholo aquí se usa la clase Repository para guardar toda la información disponible del plugin y pasarlas a las otras clases?
 
Sí. “Repository” podría ser un modelo de una tabla, por ejemplo un CPT específico y te creas métodos para crear, actualizar o eliminar un registro (CRUD), hacer búsquedas, acceder a las propiedades, etc. Y todo siendo referenciado en el constructor.

¿Es WP, no?
 
Si bro, lo que quiero hacer es dividir cada pantalla o submenú en clases diferente, con el código
que me enviaste creo que puedo hacer lo que quiero.

Gracias.
 
Si se puede utilizar, es un patron de diseño y se llama Singleton, es utilizado para obtener siempre una unica instancia de una clase, casi siempre lo usan para hacer una conexion a la base de datos
 
Reacciones: kj2
Como dice @XxMarkxX , es solo el patrón singlenton, aunque le falta poner su constructor en privado.

kj
 
Hola,
No, no es recomendable hacer esto:

public function inicializar(){

$this->time = time();

require_once('class-ayuda.php');
new Ayuda();

}

No sigue los principios SOLID (recomiendo que lo googlees e intentes siempre ir hacia eso para adoptar buenas prácticas de programación)


Saludos