Ik ben begonnen met OOP te programmeren en het project word steeds groter wat mij bij autoloader brengt.
Waar ik tegen aan loop is werken met namespace en hoop dat iemand mij wat wegwijs hierin kan bieden.
De autoloader
<?php
spl_autoload_register( function( $class ) {
$folder = 'include/';
$prefix = 'class.';
$ext = '.php';
$fullPath = $folder . $prefix . $class . $ext;
if( !file_exists( $fullPath ) ){
print 'Class file not found!';
return false;
}
require_once $fullPath;
});
?>
De autoloader word vereist in de index file van de site.
Dan heb ik in de root folder een map include hierin staan vervolgens mappen deze groeperen diversen classes van php.
Als voorbeeld heb ik een map Person de structuur is dan root->include->Person.
In de map Person bevind zicht de file class.person.php.
<?php
namespace Person;
class Person{
function __construct(){
print 'autoload works';
}
}
?>
In de index file staat bijvoorbeeld het volgende
<?php
require 'autoload.php';
//gebruik backslash voor namespace
$pers = new Person\Person();
?>
Maar krijg nu de foutmelding terug file not found.