Créer Simple Codeigniter bibliothèque
Pour mon projet actuel, j'ai décidé de créer une bibliothèque pour certaines fonctionnalités communes.
Ex : Login_check,get_current_user etc.
Avec mon peu de connaissances que j'ai créé un simple mais malheureusement sa ne fonctionne pas.
Ici ma bibliothèque :
Nom de fichier : Pro.php
et situé dans application/libraries
class Pro{
public function __construct()
{
parent::_construct();
$CI =& get_instance();
$CI->load->helper('url');
$CI->load->library('session');
$CI->load->database();
}
function show_hello_world()
{
$text = "Hello World";
return $text;
}
}
?>
Et j'ai essayé de le charger sur mon contrôleur :
<?php
class Admin extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->database();
$this->load->library(array('session'));
$this->load->library("Pro");
}
function index()
{
echo($this->Pro->show_hello_world());
}
}
?>
Je ne peux pas voir toutes les erreurs là-bas...mais j'obtiens une page blanche.
Quoi de mal avec moi ??
Merci .
Edit : j'ai eu cette erreur :
Call to a member function show_hello_world() on a non-object in C:\wamp\www\Project\application\controllers\admin.php on line 13
- où est l'erreur ?
- Il n'y a pas d'erreur,j'obtiens une page blanche.
- l'erreur d'affichage en php.ini
- Appel à une fonction membre show_hello_world() sur un non-objet dans C:\wamp\www\project\application\controllers\admin.php sur la ligne 13
- où est la ligne 13 ??
echo($this->Pro->show_hello_world());
- avez-vous essayé exactement l'ensemble des cas de test dans ma réponse? (Je l'ai mis à jour un peu)
- ouais j'ai fait...maintenant, je suis le téléchargement de codeigniter [nouveau]
- Non vous n'avez pas, vous ne l'avez toujours les choses à votre façon.
- ah nooon...mais ce n'était pas une copie&coller..c'est le problème..
Vous devez vous connecter pour publier un commentaire.
Une chose que je remarque: retirez la
parent::__construct()
à partir de votre bibliothèque de constructeur, parce que ce n'est pas l'extension de quoi que ce soit, n'a pas de parent à l'appel.Aussi, activer le rapport d'erreurs par la configuration de l'environnement "développement" dans index.php et vous pouvez également augmenter la journalisation seuil à 4 config/config.php si vous avez des erreurs dans le journal.
Essayez ce simple test:
fichier Pro.php dans l'application/les bibliothèques:
Contrôleur admin.php dans application/controllers
Undefined property: Admin::$Pro
define('ENVIRONMENT', 'development');
de sorte que son correct...log_threshold
est fixé à 4..bien que votre nom de la classe est en majuscule, toutes les références à la bibliothèque lors de chargement et d'utilisation doivent être en minuscules. vous ne devez également pas le constructeur, comme l'autre intervenant a mentionné.
ainsi, au lieu de:
vous devriez avoir:
Je préfère le standard de php autochargeur approche, avec cela, vous n'avez pas besoin de modifier vos classes, vous pouvez utiliser vos classes standard sans modification
dire, par exemple, vous classe est la classe de Custom_Example_Example2 " et est stockée dans des bibliothèques
dans des sous-dossiers, vous pouvez ajouter ce autochargeur dans le maître index.php
assurez-vous qu'elle est ajoutée en dessous de la définition de APPPATH constante
Ce sera pour les appels de classe correspondant à l' 'Custom_' préfixe
et de rediriger à l'emplacement relatif dans ce cas
vous avez seulement besoin de définir le préfixe de la base de pas les sous dossiers /classes
ces sera détecté automatiquement par le présent code
Vous pouvez l'appeler dans le contrôleur de la standard php façon
ou
Vous pouvez modifier le script à votre convenance actuellement, il attend de tous les dossiers et les noms de fichiers dans la bibliothèque des minuscules mais vous pouvez supprimer les strtolower() fonction pour permettre à plusieurs caissons.
vous pouvez modifier le nécessite, une fois de faire écho à tester la sortie en décommentant la ligne et l'actualisation de la page, assurez-vous que vous avez une classe init /test dans le contrôleur ou le modèle pour exécuter le test
Merci
Daniel
Dans Pro.php
Dans votre contrôleur
Viens de faire ces choses, vous pouvez accéder à votre bibliothèque personnalisée dans codeignitor.