web-dev-qa-db-de.com

Wie erweitere ich ein Plugin, das ich schreibe, mit einem anderen, das ich mit Klassen schreibe?

Ich habe eine Reihe von Plugins, die verschiedene Dinge tun. Ich möchte ein Plugin mit einer Klasse schreiben, die ich in jedem meiner benutzerdefinierten Plugins erweitern kann, um ein gemeinsames Ziel zu erreichen. In meinem "Socket" -Plugin habe ich so etwas

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
            )
        );
    }

}

Ich möchte dann so etwas machen:

class myCustomClass extends socketPlugin {

}

Und übergeben Sie eine Variable an den Konstruktor. Im Moment bekomme ich, wenn ich das oben genannte mache, den PHP "weißen Bildschirm des Todes".

Irgendwelche Ideen, warum ich einen weißen Bildschirm bekomme? Wie kann ich die Klasse des Socket-Plugins richtig erweitern?

3
dcp3450

Wenn sich die Klassen nicht in derselben Datei befinden, müssen Sie sie in der untergeordneten Klasse (myCustomClass) anfordern. Machst du das

Beispiel:

//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