Ciao, ho un problema

Sto rifacendo un vecchio sito bilingue, e sto avendo dei problemi col richiamo delle classi da... una classe.

Allora prima di tutto la struttura del sito:
codice:
 ROOT --> BIN --> CLASSES
|           |  --> INTERFACES
|           |  --> INCLUDES
IT  --> index.php // sito in italiano
EN --> index.php // sito in inglese
autoloader.php
index.php
Nulla di speciale, ho ovviamente esluso file e directory di supporto, come: immagini, css e javascript che per ora non servono alla domanda.

Quindi: autoloader.php è richiamato da ogni file PHP, sia che si trovi nella ROOT del sito, o che si trovi in EN o IT e come dice il nome, carica dinamicamente le classi che si trovano nella directory CLASSES dentro la directory generale BIN.
Il tutto funziona bene, ma quando tento di richiamare una classe dall'interno della stessa classe, il sistema mi dice errore: classe non trovata!

Bene un po' di codice: autoloader.php
Codice PHP:
class Autoloader
{
    public static function 
loaderClasses$className ) {
        
$path '';  //  Se si è nella root il path è blank.
        //  Se ci si trova in una delle due directory IT o EN il path deve tornare indietro di uno step.
        //  REAL_PATH è una costante creata in un file di configurazione che viene caricato prima di autoloader.php e contiene il path del file chiamante autoloader.php 
        
if ((preg_match('/\bit/i'REAL_PATH) > ) || (preg_match('/\ben/i'REAL_PATH) > )) $path '/..';
        
$classe REAL_PATH $path '/bin/class/' str_replace('\/_\\'DIRECTORY_SEPARATORstrtolower$className ) ) . '.class.php';
        if ( 
file_exists$classe ) && is_readable$classe ) )
            require ( 
$classe );
    }
    
    public static function 
loaderInterfaces$interfacesName ) {
        
$path '';
        if ((
preg_match('/\bit/i'REAL_PATH) > ) || (preg_match('/\ben/i'REAL_PATH) > )) $path '/..';
        
$interfaccia REAL_PATH $path '/bin/interface/' str_replace('\/_\\'DIRECTORY_SEPARATORstrtolower$interfacesName ) ) . '.int.php';
        if ( 
file_exists$interfaccia ) && is_readable$interfaccia ) )
            require ( 
$interfaccia );
    }
}

spl_autoload_extensions('.class.php, .int.php');

spl_autoload_register__NAMESPACE__ '\\Autoloader::loaderClasses' );
spl_autoload_register__NAMESPACE__ '\\Autoloader::loaderInterfaces' ); 
Quindi se lo richiamo da un file php sia da ROOT che da una delle due directory di lingua e poi carico una classe, questa viene caricata senza problemi.

Per esempio
Codice PHP:
//  prova.php
include 'autoloader.php';
$v= new Ciccio();  //  Ciccio esiste 
Ma se creando la classe ciccio, che ripeto si trova in ROOT-->BIN-->CLASSES e da questa voglio richiamare la classe paperino, quest'ultima non viene trovata.

Esempio: file paperino.class.php
Codice PHP:
//  Classe paperino
class Paperino {
  function 
chiSono() {
    return 
'Ciao sono Paperino';
  }

file: ciccio.class.php -- primo esempio
Codice PHP:
class Ciccio {
  function 
__construct() {
    echo 
Paperino::chiSono();  //  Non trova la classe.

file: ciccio.class.php -- secondo esempio
Codice PHP:
class Ciccio exteds Paperino {
  function 
__construct() {
    echo 
parent::chiSono();  //  Non trova la classe.

In altre parole anche se autoloader.php carica le classi regolarmente, se dopo aver caricata una classe dal file che lo chiama, questa non trova una classe ausiliaria.
Come posso risolvere?
Grazie.