2017-09-20 2 views
0

salut j'ai un problème avec namespace en codeIgniter.pourquoi mon contrôleur principal n'est pas trouvé à codeIgniter

ce que je suis en train de faire est:

  1. j'ai téléchargé phpmailer avec composer

  2. il a 2 namespaces ils sont

utilisation PHPMailer \ PHPMailer \ PHPMailer;

utilisez PHPMailer \ PHPMailer \ Exception;

whenerver i inclure ce namespace il donnera cette error

classe 'Frontend_Controller' not found

voici mon code du contrôleur:

Aucun code d'erreur - ce code fonctionne bien

class Welcome extends Frontend_Controller { 
    //my code goes here 
} 

Ce code donne erreur

require "vendor/autoload.php"; 

use PHPMailer\PHPMailer\PHPMailer; 

use PHPMailer\PHPMailer\Exception; 

class Welcome extends Frontend_Controller { 
    // my code goes here.... 
} 

j'ai essayé ce lien, mais donnant même erreur: https://gist.github.com/JeyKeu/7533af3b9b5fd078910d si je mets le code dans application\config\config.php

s'il vous plaît me aider grâce à l'avance

+0

l'instruction d'utilisation devrait entrer dans la classe ... dans la fonction de constructeur, vous devez mentionner cette instruction d'utilisation ... – Mahesh

+0

@Mahesh, j'ai essayé mais il donne même erreur – EaB

+0

@Mahesh, le problème réel est avec 'require' cette ligne' require '" vendeur/autoload.php "'; ' – EaB

Répondre

0

à l'intérieur du dossier config créer un fichier email.php ...

<?php 
    $config['protocol'] = 'smtp'; 
    $config['smtp_host'] = 'ssl://smtp.gmail.com'; 
    $config['smtp_port'] = '465'; 
    $config['smtp_user'] = '[email protected]'; 
    $config['smtp_pass'] = '[email protected]#'; 
    $config['mailtype'] = 'html'; 
    $config['charset'] = 'iso-8859-1'; 
    $config['wordwrap'] = TRUE; 
    $config['newline'] = "\r\n"; 
?> 

et contrôleur principal ...

$params['mailtype'] = 'html'; 
    $params['subject'] = ' Something '; 
    $this->email->set_mailtype("html"); 
    $this->email->from('[email protected]', 'Application name'); 
    $this->email->to('[email protected]'); 
    $this->email->subject($params['subject']); 
    $this->email->message($this->load->view('your_view_page', $params, true)); 
    $this->email->send(); 
1

CodeIgniter 2.x

ajouter la ligne suivante dans index.php

require "vendor/autoload.php"; 

maintenant à l'intérieur du contrôleur

use PHPMailer\PHPMailer\PHPMailer; 

pour plus d'informations Ref: https://stackoverflow.com/a/15244577/7296317

CodeIgniter 3.x

Si vous voulez CodeIgniter utiliser un Composer auto-loader, juste mis $config['composer_autoload'] à TRUE ou un chemin personnalisé dans application/config/config.php.

REF: https://www.codeigniter.com/user_guide/general/autoloader.html

et également en haut de votre fichier dans lequel vous voulez utiliser PHP mailer, a probablement besoin de quelque chose comme:

use PHPMailer;