Buongiorno a tutti, spiego brevemente il problema che mi perseguita. Sembra banale ma non riesco ad uscirne.
Per un piccolo progetto personale ho voluto provare ad utilizzare i namespace per la prima volta, ma in questo caso specifico mi succede una cosa molto strana, che per la varità non so neanche se dipenda dai namespace o dai percorsi dei file.
Magari qualcuno di voi mi sa dire meglio.
Vi spiego in brave.
Ho questa alberatura (vedi foto allegata) ed utilizzo xampp, il progetto si trova in xampp\htdocs\myprog\ ;
Ora dalla index.php, in root, con 'namespace controller' e autocontroller.php incluso, riesco ad accedere alle classi contenute nella cartella 'controller' e sottostanti, se invece provo a richiamare ( sempre con autoloader incluso ) dal file installpage.php la classe che si trova ad esempio in controller/install/installer.php o controller/db/dbConnection.php ricevo un Fatal error: Uncaught Error: Class "controller\install\installer" not found.
Autoloader.php
Installpage.php
Installer.php inizia così..
Per un piccolo progetto personale ho voluto provare ad utilizzare i namespace per la prima volta, ma in questo caso specifico mi succede una cosa molto strana, che per la varità non so neanche se dipenda dai namespace o dai percorsi dei file.
Magari qualcuno di voi mi sa dire meglio.
Vi spiego in brave.
Ho questa alberatura (vedi foto allegata) ed utilizzo xampp, il progetto si trova in xampp\htdocs\myprog\ ;
Ora dalla index.php, in root, con 'namespace controller' e autocontroller.php incluso, riesco ad accedere alle classi contenute nella cartella 'controller' e sottostanti, se invece provo a richiamare ( sempre con autoloader incluso ) dal file installpage.php la classe che si trova ad esempio in controller/install/installer.php o controller/db/dbConnection.php ricevo un Fatal error: Uncaught Error: Class "controller\install\installer" not found.
Autoloader.php
PHP:
<?php
namespace controller;
class autoloader
{
public function register()
{
spl_autoload_register(function ($class) {
$file = str_replace('\\', DIRECTORY_SEPARATOR, $class).'.php';
if (file_exists($file)) {
require_once $file;
return true;
}
return false;
});
}
}
Installpage.php
PHP:
<?php
// Namespace
namespace controller;
// Autoloader
include '../autoloader.php';
$loader = new autoloader;
$loader -> register();
// Install
$inst = new install\installer; // qui si blocca
$inst -> createUserTable();
$inst -> createSuperUser();
Installer.php inizia così..
PHP:
<?php
namespace controller\install;
use \PDO;
class installer extends \controller\db\dbConnection {
...
}
Allegati
Ultima modifica: