Ciao a tutti, da qualche tempo sto sviluppando con Yii e ora ho un problema che non riesco a risolvere:
Sto sviluppando la mia app in locale su MacOsX / MAMP e fin qui tutto bene.
Poche ore fa l’ho caricata su di un server internet, ho configurato il db e anche qui tutto bene. Entrando in una pagina specifica, mi è uscito
PHP Warning - include(address.php) [<a href=‘function.include’>function.include</a>]: failed to open stream: No such file or directory
Il frammento di errore è questo:
/home/onlqoots/public_html/yii-1.1.10.r3566/framework/YiiBase.php(418)
{
407 foreach(self::$_includePaths as $path)
408 {
409 $classFile=$path.DIRECTORY_SEPARATOR.$className.'.php';
410 if(is_file($classFile))
411 {
412 include($classFile);
413 break;
414 }
415 }
416 }
417 else
418 ******** include($className.'.php'); ***** (EVIDENZIATO)
419 }
420 else // class name with namespace in PHP 5.3
421 {
422 $namespace=str_replace('\\','.',ltrim($className,'\\'));
423 if(($path=self::getPathOfAlias($namespace))!==false)
424 include($path.'.php');
425 else
426 return false;
427 }
428 return class_exists($className,false) || interface_exists($className,false);
429 }
430 return true;
In pratica indagando ho capito che il metodo autoloader cerca il file address.php, in quanto il nome della relazione della tabella address con la tabella X è appunto "address", solo che il file si chiama "Address.php", perchè giustamenteio ho "class Address extends CActiveRecord".
Rinominando il file in "address.php" il tutto torna apparentemente a funzionare!
Ora il mio dilemma è questo:
rinominare tutti i file delle classi dei modelli? se poi più avanti esce un problema analogo che richiede che il file abbia l’identico nome della classe?
modificare in qualche modo l’autoloader?
…altro?
Grazie a chi avrà la pazienza di rispondermi