Buongiorno a tutti, ho questo problema, non riesco a far funzionare il mio vecchio file ClassAutoloader.php con la nuova configurazione del server.
ROOT\ --> libs/
|
classes/
connetti.class.php
....
ClassAutoloader.php
index.php
....
Il codice di ClassAutoloader.php
	
	
	
		
il codice di index.php
	
	
	
		
la classe generica connetti.class.php che si trova in libs/classes/
	
	
	
		
in index.php ho anche provato a inserire un inclusione diretta al file con 
include_once __DIR__ . '/libs/classes/connetti.class.php';
ma niente, sempre lo stesso errore.
Questo il percorso al file elaborato da ClassAutoloader C:\apache\users\marco\ambasciate/libs/classes/connetti.class.php la root è ambasciate
Questo è l'errore come definito da XDebug:
				
			ROOT\ --> libs/
|
classes/
connetti.class.php
....
ClassAutoloader.php
index.php
....
Il codice di ClassAutoloader.php
		PHP:
	
	<?php declare(strict_types=1);
/**
 *   ClassAutoload esegue l'autoload per le classi
 *   
 *   @author Marco Grazia
 */
class ClassAutoloader
{
    /**
     * Carica la classe quando richiamata e la registra nell'elenco delle classi attiva 
     * 
     * @param string $className
     */
    public static function loaderClasses(string $className) {
        $file = __DIR__ . '/libs/classes/' . strtolower(str_replace("\\", "/", $className)) . '.class.php';
        
            echo $file . '<br>';
           
        if ( file_exists($file) && is_readable($file))
            require_once $file;
    }
}
spl_autoload_extensions('.php');
spl_autoload_register( __NAMESPACE__  . '\\ClassAutoloader::loaderClasses' );
	il codice di index.php
		PHP:
	
	<?php declare(strict_types=1);
try {
    include_once __DIR__ . '/ClassAutoloader.php';
    $pdo = new Connetti();  //  <<--<< ERRORE DI CLASSE NON TROVATA, MA IL PERCORSO E' GIUSTO :(
}
catch (Exception $e ) {
    echo $e->getMessage();
}
?>
	la classe generica connetti.class.php che si trova in libs/classes/
		PHP:
	
	<?php declare(strict_types=1);
namespace libs\classes;
/**
 *
 * @author marco.grazia
 * 
 * La Classe Connetti, conette ad un database MariaDB/MySQL
 */
class Connetti
{
    /**
     * Handle della connessione
     */
    public $pdo = null;
    
    /**
     * Nome del database
     */
    private string $database = '';
    
    /**
     * Username
     */
    private string $username = '^_^';
    
    /**
     * Password per il database
     */
    private string $password = 'baubaumiciomicio';
    
    /**
     * Metodo iniziale della classe.
     * 
     * @param string $database con valore predefinito.
     */
    public function __construct (string $database = 'hahaha')
    {
        $this->database = $database;
        
        $dsn = 'mysql:host=localhost;dbname=' . $this->database . ';charset=utf8mb4';
        $options = [
            PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            PDO::ATTR_EMULATE_PREPARES   => false,
        ];
        try {
            $this->pdo = new \PDO($dsn, $this->username, $this->password, $options);
        } catch (\PDOException $e) {
            throw new \PDOException($e->getMessage(), (int)$e->getCode());
        }
    }
    /**
     * Quando la classe viene dichiarata null, tutto viene cancellato e la memoria liberata.
     */
    function __destruct ()
    {
        if (!is_null($this->pdo)) {
            $this->pdo = null;
            $this->database = '';
        }
    }
}
	include_once __DIR__ . '/libs/classes/connetti.class.php';
ma niente, sempre lo stesso errore.
Questo il percorso al file elaborato da ClassAutoloader C:\apache\users\marco\ambasciate/libs/classes/connetti.class.php la root è ambasciate
Questo è l'errore come definito da XDebug:
#  | Time  | Memory  | Function  | Location  | 
|---|---|---|---|---|
Call Stack  | ||||
( ! ) Error: Class 'Connetti' not found in C:\apache\users\marco\ambasciate\index.php on line 28  | ||||
Fatal error: Uncaught Error: Class 'Connetti' not found in C:\apache\users\marco\ambasciate\index.php on line 28  | ||||
1  | 0.0009  | 411528  | {main}( ) | ...\index.php:0 |