J'ai strictement suivi le how-to article by Phil Sturgeon, pour étendre le contrôleur de base. Mais j'ai encore quelques erreurs.Codeigniter étendu étendu MY_Controller
Mes 3 classes:
// application/libraries/MY_Controller.php
class MY_Controller extends Controller{
public function __construct(){
parent::__construct();
}
}
// application/libraries/Public_Controller.php
class Public_Controller extends MY_Controller{
public function __construct(){
parent::__construct();
}
}
// application/controllers/user.php
class User extends Public_Controller{
public function __construct(){
parent::__construct();
}
}
Fatal error: Class 'Public_Controller' not found in /srv/www/xxx/application/controllers/user.php on line 2
curieux est que l'extrait suivant fonctionne, si j'étend directement à partir de MY_Controller
:
// application/controllers/user.php
class User extends MY_Controller{
public function __construct(){
parent::__construct();
}
}
I ont chargé les contrôleurs via __autoload()
ou manuellement . Les contrôleurs sont chargés avec succès.
CI-Version: 1.7.3
Chargement de MY_Controller.php avant le chargement de Public_Controller.php? – Alisson
Pourriez-vous publier la fonction __autoload dans config.php? –
Il y a beaucoup de meilleures réponses dans cette question: http://stackoverflow.com/questions/21663045/creating-a-core-class-that-extends-another-core-class-codeigniter/22125436#22125436 même si elle est marquée en tant que doublon de ceci – Chococroc