codeigniter: Erweiterung des common controller
Ich habe allen die den post Lesen fand ich zu diesem Thema aber nichts funktioniert. Ich bin mit Codeigniter 2.02 ist eine LAMPE, mit Apache2.2 und PHP5.3.2
Ich versuche zu schaffen, einen gemeinsamen controller, von dem meine common Controller Erben, so kann ich tun, gemeinsame Aufgaben gibt.
Habe ich dieses:
- Datei: parent_controller.php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Parent_controller extends CI_Controller {
public function Parent_controller()
{
parent::__construct();
}
public function index() {
echo "Hi!";
}
}
- Datei: welcome.php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends Parent_controller {
public function __construct()
{
parent::__construct();
}
}
Habe ich versucht, die nächsten Lösungen, die ich gefunden habe, aber keiner von Ihnen arbeiten:
-
public function __contstruct() statt public function Parent_controller()
-
parent::Parent_controller();
-
setzen die parent_controller.php Datei in core
-
setzen die parent_controller.php Datei in Controller
-
hinzufügen dieser zu config/config.php:
function __autoload($class){ if (file_exists(APPPATH."(controllers|core)/".$class.EXT)){ require_once(APPPATH.'(controllers|core)/'.$class.EXT); } }
Danke an Euch alle.
- Ich vergaß es zu sagen, aber in jedem Fall, die Antwort html ist LEER, keine Fehler, auch mit define('UMWELT', 'Entwicklung');
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werfen Sie einen Blick auf diese post von Phil Sturgeon:
http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-Base-Classes-Keeping-it-DRY
Der Schlüssel ist mithilfe der systemeigenen autoload, wie erklärt in seinem post:
HINWEIS
Als Hinweis, werden Sie wollen alle Ihre "Basis" - Controller in der
core
Ordner für CI2+index.php
Seite. Jedoch, es ist veraltet, siehe codeigniter.com/userguide3/installation/...Dieses bit ist richtig
Aber was du suchst ist die prefix MY_. Also, wenn Sie erstellen den controller in der /application/libraries/Ordner und nennen die Datei MY_Controller.php und die Klasse MY_Controller es wird funktionieren.
Können Sie auch die prefix MY_ zu was auch immer Sie möchten, in der config.php Datei. Suchen:
Für die weitere Lektüre und ein Ausführlicher Erläuterung finden Sie unter http://codeigniter.com/user_guide/general/core_classes.html
Beachten Sie auch, es wird nicht geladen, eine Vielzahl von Dateien. Es sieht einfach für 1-controller genannt MY_Controller.php.
Wenn Sie denken, es wird geladen MY_Test_Controller.php und MY_Web_Controller.php ist dem nicht so.
Wenn Sie können mehrere Controller in einer Datei oder andere Dateien aus, die Datei.
Konnte man bauen, um dieses, natürlich, aber eine gute Menge an zusätzlichen Daten zu wissen.