attacher une classe

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Soumis par ELRIFI le 1 Février, 2015 - 13:48
Bonjour, je souhaite factoriser un certains nombre de traitement dans une classe. mon module : GestionVoitures. -GestionVoitures.info -GestionVoitures.class
-GestionVoitures.module

Dans le Fichier .info
files[] = GestionVoitures.module
files[] = GestionVoitures.class
Dans le Fichier .class

<?php
class GestionVoiture{
 private
$modele;
    function
__construct( )     { ....     }
    public function
Rouler($modele){ ...    }
}
?>

Dans le Fichier .module J'ai une erreur : Fatal error: Call to undefined function Insert()
function Simulateur() {
....
Rouler($modele);
....

}

j'ai essayer plusieurs solution:
Avec et sans déclaration :GestionVoiture = new GestionVoiture();->erreur: Parse error: syntax error, unexpected '='
et ces deux syntaxes ....
GestionVoiture->Rouler($modele);
GestionVoiture::Rouler($modele);
Auriez vous une idée?

Forum : 
Version de Drupal : 

Bonsoir

Merci pour la réponse.Cependant dans le module Filedepot j'ai trouver des .class dans le répertoire.
sinon avec .inc ca na pas l air de fonctionner non plus

Si tu as d autre idées ...

Hello ELRIFI,

Pour ton petit soucis je te conseillerais plusieurs chose pour te simplifier la vie sous drupal avec l'utilisation des class / interfaces dans drupal. Utilise xautoload qui te permettra d'utiliser des namespace ex : "$module_dir/src/Foo/Bar.php".

Exemple concret :

Créer ton module : supermodule/

Créer un dossier src/ dans ton module ce qui permettra de ranger bien proprement tes fichiers :)

Ensuite créer tes fichier maclass.class.inc ou maclasss.php

Dans ton fichier maclass.php il faut mettre namespace Drupal\supermodule;

Pour l'utiliser dans ton .module utilise un use Drupal\supermodule\nomdetaclass;

Tu n'aura pas besoin d'ajouter dans le info files[].