Ciao, questo il problema.
I siti della LAN dove lavoro sono strutturati in questo modo:
ROOT
CSS
JS
LIBS
-------CLASSES
-------CONFIG
EXT
Quindi in ROOT ci sono i file principali, come index e autoloader.php
In LIBS/CLASSES le classi, in LIBS/CONFIG/file di configurazione
e infine in EXT file come ad esempio programmi chiamati tramite javascript/ajax e altro.
E qui sta il problema:
in particolare c'è un file che ho chiatao getNomiFirma.php che è appunto nella cartella EXT/ che richiama dal database alcuni nomi di clienti e che tramite json vengono trasmessi al suggeritore di un form.
Ora per farlo funzionare ho bisogno di alcuni file che si trovano in LIBS/CLASSES come la classe Connetti che richiama una connessione al database e la classe Verifica che verifica quanto inserito.
Per farlo utilizzo autoloader.php che si trova in ROOT.
Le chiamate avvengono in PHP tramite include_once
Codice PHP:
// file: EXT/getNomiFirma.php
include_once __DIR__ . '/../autoloader.php';
....
non viene generato nessun errore relativo alla chiamata del file esterno, ma appena chiamo una qualsiasi classe mi genera un errore di classe non trovata.
Il file autoloader.php
Codice PHP:
class ClassAutoloader{
public static function loaderClasses( string $ClassName ) {
$ClassFile = __DIR__ . '/libs/classes/' . str_replace('\/_\\', DIRECTORY_SEPARATOR, strtolower( $ClassName ) ) . '.class.php';
if ( file_exists( $ClassFile ) && is_readable( $ClassFile ) )
require ( $ClassFile );
}
}
spl_autoload_extensions('.class.php');
spl_autoload_register( __NAMESPACE__ . '\\ClassAutoloader::loaderClasses' );
Errore specifico:
Warning: array_walk_recursive() expects parameter 2 to be a valid callback, function 'trimValue' not found or invalid function name in C:\apache\users\marco\apoleg-3\ext\getNomiFirma.php on line
33
in particolare la riga 33 richiama una classe di verifica:
Codice PHP:
array_walk_recursive($_GET, 'trimValue'); // Trimming
trimValue() che pulisce l'input.
Ora è chiaro che è un problema di percorsi.
autoloader.php se chiamato da ROOT/ funziona perfettamente, ma se come in questo caso lo richiamo da una directory interna a ROOT va in tilt e non so come risolvere.
Riuscite a darmi una mano?
Grazie.