Joomla.it Forum

Non solo Joomla... => Sviluppo => : loryzizu 23 Jun 2014, 15:54:01

: [RISOLTO]Problema "include" file in un modulo
: loryzizu 23 Jun 2014, 15:54:01
Salve a tutti, sto creando un modulo per la versione 2.5 di Joomla. Ho il seguente problema: sembra che il file helper non venga incluso nell'entry point del modulo.
Uso l'istruzione
:
require_once( dirname(__FILE__).DS.'helper.php' );[size=78%] per caricare il file helper.[/size]
Quando richiamo un metodo della classe definita nel file helper il server mi riporta un fatal error, che specifica che la classe non è stata trovata.
Eppure se non sbaglio, l'istruzione require dovrebbe interrompere lo script se il file non viene caricato, mentre lo script gira fin quando non richiamo la classe del file helper.
Qualcuno sà aiutarmi?
: Re:Problema "include" file in un modulo
: mau_develop 23 Jun 2014, 15:58:12
la classe non è stata trovata...mica il file..o sbaglio? ...il naming?
: Re:Problema "include" file in un modulo
: loryzizu 23 Jun 2014, 16:04:08
Sì, esatto, la classe, per questo la cosa mi risulta incomprensibile. Richiamo la classe così:
:
$resultAut=functionsProposta::autentication();
[/size][size=78%]Nel file helper la classe è definita:[/size]
[/size]
[/size]
:
class functionsProposta{
   
   public static function autentication(){
      //some code...
   }
}
: Re:Problema "include" file in un modulo
: loryzizu 23 Jun 2014, 16:12:34
Tanto che se copio e incollo manualmente la classe invece di richiamarla, tutto funziona.  :o
: Re:Problema "include" file in un modulo
: mau_develop 23 Jun 2014, 16:14:48
..il naming?
: Re:Problema "include" file in un modulo
: loryzizu 23 Jun 2014, 16:15:15
Scusa l'ignoranza ma non capisco che intendi.
: Re:Problema "include" file in un modulo
: mau_develop 23 Jun 2014, 16:17:49
guarda joomla come chiama le classi, esiste un camel-case

usa require_once __DIR__ . '/helper.php';
usalo ovviamente nell'entry point

evita di usare nomi che potrebbero essere riservati tipo function/s
: Re:Problema "include" file in un modulo
: loryzizu 25 Jun 2014, 12:29:21
Ho rinominato classe e metodi di classe, ho provato pure a cambiare server, ma niente, sempre lo stesso problema.
: Re:Problema "include" file in un modulo
: simone83 26 Jun 2014, 12:50:22
forse fai prima a postare il codice, xche cosi sembra una cosa senza senso, non ci sono convenzioni o cose particolari sui moduli, la cosa piu scema che mi viene in mente e che fai il require dopo aver tentato di accedere alla classe ma non penso sia questo il tuo problema (lo spero  :) :) :) )
: Re:Problema "include" file in un modulo
: loryzizu 26 Jun 2014, 16:13:59
Hai ragione, è una cosa che non mi spiego.


mod_prova1.php:
:
<?php
/**
 Entry node
 */
 
// no direct access
defined'_JEXEC' ) or die( 'Restricted access' );
 
// Include the syndicate functions only once
require_once __DIR__ '/helper.php';
if(
modProva1::provaFunzione()){
   echo 
"Funzione richiamata";
}
require( 
JModuleHelper::getLayoutPath'mod_prova1' ) );
?>

helper.php:

:

<?php/*


FILE HELPER


*/
class modProva1{
   public static function 
provaFunzione(){
      echo 
"Funzione richiamata con successo";
      return 
true;
   }   
}
?>

Errore restituito dal server: Fatal error: Class 'modProva1' not found in C:\wamp\www\Joomla_2.5.19_ita-Stable\modules\mod_prova1\mod_prova1.php on line11
: Re:Problema "include" file in un modulo
: simone83 26 Jun 2014, 16:46:39
Prova a fare un echo __DIR__.'/helper.php';

Perche se hai una versione più vecchia del php 5.3 __DIR__ non esiste ma devi usare dirname(__FILE__)

Insomma il tuo problema è legato sicuramente all'ambiente di sviluppo, ho provato ad emulare quello che hai fatto e a me funziona tutto

------

Mi son reso conto ora che usi joomla 2.5 quindi prova a fare __DIR__.DS.'helper.php'
: Re:Problema "include" file in un modulo
: mau_develop 26 Jun 2014, 21:20:24
i backslash?
: Re:Problema "include" file in un modulo
: loryzizu 27 Jun 2014, 00:25:13
Niente, non funziona. Anche perchè ripeto che il require viene eseguito, altrimenti darebbe un errore relativo ad esso. Divento pazzo!
: Re:[RISOLTO]Problema "include" file in un modulo
: loryzizu 27 Jun 2014, 15:13:49
Nel file helper mancava l'istruzione:


:
defined('_JEXEC') or die('Restricted access');

Grazie a tutti quelli che hanno risposto.