web-dev-qa-db-fra.com

Comment étendre un plugin que j'écris avec un autre que j'écris en utilisant des classes?

J'ai un ensemble de plugins qui font des choses différentes. Je souhaite écrire un plugin avec une classe que je peux étendre dans chacun de mes plugins personnalisés pour atteindre un objectif commun. Dans mon plugin "socket" j'ai quelque chose comme ça

class socketPlugin {
        function __construct($extendedClass){
    global $wpdb;
    $tablename = $wpdb->prefix."tableName";

    $classCount = $wpdb->get_var(
        "SELECT COUNT(id) FROM $tablename WHERE extendedClass='$extendedClass'"
    );

    if($classCount && $classCount > 0){
        $wpdb->insert(
            $tablename,
            array(
            'extendedClass' => $extendedClass
            )
        );
    }

}

Je veux alors faire quelque chose comme ça:

class myCustomClass extends socketPlugin {

}

Et passez une variable dans le constructeur. En ce moment, si je fais ce qui précède, je reçois le PHP "écran blanc de la mort".

Des idées pourquoi je reçois un écran blanc? Comment puis-je étendre proprement la classe du plugin socket?

3
dcp3450

Si les classes ne se trouvent pas dans le même fichier, vous devez le demander dans la classe enfant (myCustomClass). Est-ce que tu fais ça?

Exemple :

//get the base class
if(!class_exists('MyParentClass')) {
    require_once plugin_dir_path( __FILE__ ) . '/_inc/MyParentClass.php';
}

/**
 * Class Definition
 */
class MyChildClass extends MyParentClass{

    // class definition

}
3
Welcher