CodeIgniter CI_Controller pas trouvé
Donc, fondamentalement, vous trouverez ci-dessous le code que j'ai droit:
class MY_Log extends CI_Log {
/**
* Variable storing the CodeIgniter instance.
*
* @access private
* @since v0.1.0.0
*/
private $CI;
/**
* Constructor for later use by internal
* methods.
*
* @access public
* @since v0.1.0.0
*/
public function __construct()
{
//Extend the parent logging.
parent::__construct();
$this->$CI =& get_instance();
}
}
Et j'obtiens l'erreur suivante;
Fatal error: Class 'CI_Controller' not found in /<deleted>/system/core/CodeIgniter.php on line 233
C'est un peu la façon dont le guide de l'utilisateur décrit il.
- Est-il system/core/Controller.php fichier dans votre système de fichiers?
- Oui, et la ligne 233: retour CI_Controller::get_instance();
- double possible de CodeIgniter: la Classe de CI_Controller' ne trouve pas
- Je n'ai pas essayé moi-même, mais êtes-vous sûr que vous devez faire get_instance? Dans ma tentative d'extension de la CI_Controller me semble avoir accès à l'objet CI par $this (c'est à dire $this->load->vars($data); travaux sur l'étagère)
- Je suis "Undefined property: MY_Log::$charge". Stupide bibliothèques sont me rend fou parfois.
- où avez-vous enregistrez-vous MY_Log classe?
- vous parlez de l'extension de CI_COntroller, OP extension d'une bibliothèque de base. Des choses différentes.
- Je suis l'enregistrement de ce qui se trouve dans /applications/dossier libraries. Enregistré comme MY_Log.php.
- C'est exact, et je pense/je pensais bien précisé qu'elle était juste une supposition de quelque chose à regarder
- Veuillez vérifier si votre PHPMyAdmin est allumé.
Vous devez vous connecter pour publier un commentaire.
Assez étrange. J'ai juste répliqué votre cas (avec les infos fournies) et je n'ai rencontré aucun problèmes. Mais assurez-vous de deux choses:
application/libraries/My_log.php
Vous téléphonez à la bibliothèque, dans votre contrôleur
je.e, ne pas utiliser "My_log" mais la mère de la bibliothèque de nom. En fait, vous êtes l'extension de il, ne pas en créer un autre, c'est pourquoi CI veut que vous appelez il le même que l'original
Votre fichier d'origine a la ligne suivante correctement écrits (sans le signe $ devant IC)
Mon cas de test avec votre code fonctionne très bien sur ma machine de développement (Windows 7 WAMP php 5.3.8). Je vais être en attente pour plus d'infos.
Je suppose que cette erreur se produit lorsqu'un journal de la bibliothèque de fonction est appelée avant CI_Controller classe est chargé. Cela pourrait se produire dans un stade précoce de votre application en routine. Si vous devez étendre le journal de la bibliothèque sans l'aide de
$this->$CI =& get_instance();
.Essayer de mettre le présent en haut de MY_Log.php si vous ne l'avez pas déjà:
<?php défini('BASEPATH') OU de sortie (de "Pas directement accès au script a permis');
Il est possible que votre classe MY_Log n'est pas fait pour être analysée par php si il n'est pas inclus dans le php délimiteurs. Si c'est le cas, alors la CI voir le fichier MY_Log.php et attendre CI_Log être prolongée par la classe déclarée dans MY_Log.php. Mais, si votre classe n'est pas dans PHP délimiteurs, CI_Log ne pas être prolongé, ce qui pourrait provoquer des erreurs bizarres.
Dans le cas où cela peut aider n'importe qui, j'ai eu le même problème et a remarqué qu'il ne se produisait que sur les URLs contenant un
+
en eux, par exemple dans le cadre d'un permalien. CI s'est détraqué; je l'ai prévenu+
signes d'apparaître dans les Url, et tout allait bien.