php Funktion aus anderer Klasse includen

So in etwa sollte es aussehen:
PHP:
require 'config.php';

$url = isset( $_GET[ 'url' ] ) ? $_GET[ 'url' ] : 'index/index';
# wenn nur ein Slash vorhanden ist, werden die anderen Werte auf null gesetzt (verhindert E_NOTICE-Meldungen)
list( $controller_name, $action_name, $params ) = array_merge( explode( '/', $url, 3 ), array( null, null ) );

spl_autoload_register(function( $class_name ) {
    $path = realpath( LIBS . $class_name . '.php' );

    if ( $path ) {
        require $path;
    }
});

$path = realpath( './controllers/' . $controller_name . '.php' );
$dispatcher = new Dispatcher( $params );

if ( $path ) {
    require $path;

    try {
        $dispatcher->controller( $controller_name )->action( $action_name );
    } catch ( ControllerNotFound $e ) {
        $dispatcher->controller( 'error' )->action( 'show' );
    } catch ( ActionNotFound $e ) {
        $dispatcher->controller( $controller_name )->action( 'index' );
    }
}
 
Zuletzt bearbeitet:
Sorry, falls das zu meta ist, aber hier stellt sich mal wieder die Frage: Warum kein bestehendes Framework (oder auch nur einen bestehenden Router/Dispatcher) verwenden?

Edit: Das ist immer so: Fertige Lösungen existieren, aber jemand möchte es unbedingt selbst machen, weiß aber nicht so recht wie (das sollte ein Indikator sein, es vielleicht nicht selbst zu machen) und fragt dann in einem Forum und am Ende kommt so eine halbe Lösung dabei raus, die dann doch nur den Bruchteil einer bestehenden Variante umfasst. Ich halte das nicht unbedingt für eine effiziente Vorgehensweise.
 
Weil ich mir mein eigenes basteln will da einige diverse Funktionen haben die ich nicht brauche.
@einfach nur crack:
Irgendwie spinnt da was habs eben mal eingebaut. da bekomme ich gesagt das Index::action nicht existiert auch wenn ich index/index eingebe
 
Ich gehe mal davon aus, dass Deine Methode im entsprechenden Controller "index" heißt und nicht "action_index", wie ich es hier als Nomenklatur verwende.
 

Neue Beiträge

Zurück