Skip to content
This repository has been archived by the owner on Dec 31, 2023. It is now read-only.

Whoops - Methoden fehlen #10

Closed
tbaddade opened this issue Oct 20, 2017 · 9 comments
Closed

Whoops - Methoden fehlen #10

tbaddade opened this issue Oct 20, 2017 · 9 comments
Assignees

Comments

@tbaddade
Copy link
Member

Nimmt man den Code aus der Readme, dann erscheint ein Whoops Call to undefined method NewsManager::getCommentList()

echo $newsmanager->getCommentList($article_post->getPid());
echo $newsmanager->getCommentForm($article_post->getPid());

PlugIns sind bewusst nicht installiert.

@georgkaser
Copy link
Member

Hast du die abgeleitete Klasse NewsManagerWithComments() verwendet? Weiß nicht ob man das so macht, wenn's da eine bessere Lösung gibt, gerne sagen.

@tbaddade
Copy link
Member Author

Ich habe den Code aus der Readme einfach ins Template kopiert. Hab da nichts angepasst.

@georgkaser
Copy link
Member

Ich hab im Plugin eine abgeleitete Klasse erstellt. Die muss verwendet werden. Muss ich vielleicht 2 Beispiele im Readme machen...

@skerbis
Copy link
Member

skerbis commented Oct 20, 2017

Ich würde prüfen welche Plugins aktiv sind und dann den richtigen Aufruf starten. Dann muss niemand darüber nachdenken.

@georgkaser
Copy link
Member

georgkaser commented Oct 20, 2017

Hmm, interessante Idee - ich hab mal ein bisschen rumgespielt. In der Elternklasse hab ich jetzt folgende Funktion:

    public static function create() {
        
        if (rex_addon::get('newsmanager')->getPlugin('comments')->isAvailable()) {
            $instance = new NewsManagerWithComments();
        } else {
            $instance = new self();
        }
        
        return $instance;
    }

Das Newsmanager Objekt wird dann über diese Funktion initialisiert:

    $newsmanager = NewsManager::create();

Ob das guter Stil ist, weiß ich nicht. Aber ich muss da nicht mehr aufpassen. Verwende ich jedoch z.B. vorher das Plugin comments bzw. die Funktionen der abgeleiteten Klasse und deaktiviere es z. B. später - weil ich vielleicht keine Kommentare mehr nutzen möchte, plattelt es mich trotzdem auf. Aber das ist eh klar - oder? So idiotensicher muss das dann nicht sein, nicht? Was haltet ihr davon?

@georgkaser georgkaser removed the bug label Oct 20, 2017
@skerbis
Copy link
Member

skerbis commented Oct 20, 2017

Eine Alternative wäre mit namespaces zu arbeiten und der jewiligen Class den gewünschten alias geben

@georgkaser
Copy link
Member

georgkaser commented Oct 20, 2017

Mit Namespaces hab ich mich noch nicht beschäftigt (also nicht in PHP - in Java mit den Packages schon). Damit kann man ja die gleichen Klassennamen im jeweiligen Namespace verwenden - ich versteh aber nicht, wie mir das hier helfen kann? Kannst du mir ein kleines Beispiel geben?

@skerbis
Copy link
Member

skerbis commented Oct 20, 2017

Ja und du kannst switchen, du änderst entweder den namespace und rufst dann die andere class auf oder du rufst eine class als alias auf, so dass es der gleiche classaufruf bleibt.

@georgkaser
Copy link
Member

Hmm, wenn ich aber das mit der Funktion mach wie beschrieben, dann muss ich nicht mal einen namespace ändern. Ist das nicht besser?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants