4 Stimmen

CodeIgniter - Funktionen, die in mehreren Controllern verfügbar sind

Ich bin relativ neu in CodeIgniter, und bis jetzt wurde mein Projekt ausschließlich mit Controllern und Views erstellt. Allerdings wird es immer komplexer und ich stelle fest, dass es bestimmte Funktionen gibt, die ich in mehrere Controller kopiert habe - dies ist alles andere als ideal, da das Bearbeiten einer Funktion erfordert, dass ich auch alle anderen bearbeite.

Es gibt eine Vielzahl von CI-Funktionen, von denen ich nichts weiß - Modelle, Helfer, Erweiterung von "Controller", usw. Wo soll ich also hinschauen, um das oben Genannte zu erreichen? Ich könnte auch import() direkt einen Codeblock importieren, obwohl ich das Gefühl habe, dass dies nicht "auf die CodeIgniter-Art" ist.

4voto

Dominic Tancredi Punkte 39016

Legen Sie alle Ihre "Utility"-Funktionen in einen "Helper-Manager" und greifen Sie darauf zu.

http://codeigniter.com/user_guide/general/helpers.html

0 Stimmen

Vielen Dank für den Link. Der Artikel sagt nichts darüber aus, wie man eigene Helfer erstellt. Ist es wirklich so einfach, eine Datei im Helfer-Ordner zu erstellen, die nicht mit "MY_" beginnt?

0 Stimmen

Was passiert, wenn Sie zwei Helfer laden, die denselben Funktionsnamen haben? Welche Funktion wird ausgeführt, wenn sie aufgerufen wird?

0 Stimmen

Du solltest den "Helper" erweitern, der denselben Funktionsnamen hat (z.B. MY_array_helper.php). Wenn du das nicht tust, bin ich mir nicht sicher, aber höchstwahrscheinlich wird die zuletzt definierte Methode in PHP aufgerufen.

2voto

bl00dshooter Punkte 981

Oder erstellen Sie einen Basiskontroller und erweitern Sie andere Kontroller daraus.

Ich bin sicher, Phil Sturgeon hat eine Anleitung dazu: http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-Base-Classes-Keeping-it-DRY

0 Stimmen

Phil hat einen Leitfaden zu allem

2voto

Arun David Punkte 2644

base_controller.php

other_controller.php

base_function(); 
    }
}
?>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X