Conflit Autoload Swiftmailer

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Conflit Autoload Swiftmailer

Re: Conflit Autoload Swiftmailer

par xTG » 19 févr. 2015, 17:45

Es-tu certain que leur autoload est exécuté ? Qu'il a été ajouté ?

Conflit Autoload Swiftmailer

par Aurélie » 19 févr. 2015, 15:52

Bonjour à tous,

Je suis bloqué sur un conflit d'autoloader, j'aurais vraiment besoin de vos lumières ! :) D'autant que mon code marche sur un autre site...

Alors voilà, j'ai un autoloader de classes pour mon site dans un fichier autoload.php (localhost\monsite\modeles\) :

function chargerClasse ($classe) {
require MODELES . $classe . '.class.php';
}
spl_autoload_register('chargerClasse');


J'utilise la lib Swiftmailer pour le formulaire de contact. Il y a également un autoloader. Tout d'abord dans le required principal (lib_swiftmailer\swift_required.php):

if (defined('SWIFT_REQUIRED_LOADED')) {
return;
}

define('SWIFT_REQUIRED_LOADED', true);

//Load Swift utility class
require dirname(__FILE__) . '/classes/Swift.php';

if (!function_exists('_swiftmailer_init')) {
function _swiftmailer_init()
{
require dirname(__FILE__) . '/swift_init.php';
}
}

//Start the autoloader and lazy-load the init script to set up dependency injection
Swift::registerAutoload('_swiftmailer_init');


Ensuite dans swift.php (lib_swiftmailer\classes\)

public static function autoload($class)
{
//Don't interfere with other autoloaders
if (0 !== strpos($class, 'Swift_')) {
return;
}

$path = dirname(__FILE__).'/'.str_replace('_', '/', $class).'.php';

if (!file_exists($path)) {
return;
}

require $path;

if (self::$inits && !self::$initialized) {
self::$initialized = true;
foreach (self::$inits as $init) {
call_user_func($init);
}
}
}


Mon formulaire passe, les données vont vien dans SQL mais il ne trouve pas les classes de Swiftmailer. Voilà le message d'erreur type :

SCREAM: Error suppression ignored for
( ! ) Warning: require(modeles/Swift_SmtpTransport.class.php): failed to open stream: No such file or directory in C:\wamp\www\cv\modeles\autoload.php on line 4

SCREAM: Error suppression ignored for
( ! ) Fatal error: require(): Failed opening required 'modeles/Swift_SmtpTransport.class.php' (include_path='.;C:\php\pear') in C:\wamp\www\cv\modeles\autoload.php on line 4


Pourriez-vous m'aider SVP ?

Merci beaucoup par avance à tous ceux qui auront pris le temps de me lire