Submitted by ELRIFI on
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?
Il me semble que les fichiers
Permalien Soumis par vincent59 le 6 Février, 2015 - 14:28
Il me semble que les fichiers qui sont chargés doivent avoir l'extension .inc
Il faudrait essayer de renommer GestionVoitures.class et GestionVoitures.inc
cf. https://www.drupal.org/node/1976198
Bonsoir
Permalien Soumis par ELRIFI le 8 Février, 2015 - 23:38
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,
Permalien Soumis par Woprrr le 16 Février, 2015 - 21:32
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[].