Skip to content

Commit

Permalink
Introduce custom PSR-4 autoload if not using composer
Browse files Browse the repository at this point in the history
  • Loading branch information
julienbourdeau committed Aug 17, 2018
1 parent d66c3c0 commit c8e7973
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions autoload.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php

/**
* Based on https://www.php-fig.org/psr/psr-4/examples/
*/
spl_autoload_register(function ($class) {

// project-specific namespace prefix
$prefix = 'Algolia\\AlgoliaSearch\\';

// base directory for the namespace prefix
$base_dir = __DIR__ . '/src/';

// does the class use the namespace prefix?
$len = strlen($prefix);
if (strncmp($prefix, $class, $len) !== 0) {
// no, move to the next registered autoloader
return;
}

// get the relative class name
$relative_class = substr($class, $len);

// replace the namespace prefix with the base directory, replace namespace
// separators with directory separators in the relative class name, append
// with .php
$file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';

dump($file);

// if the file exists, require it
if (file_exists($file)) {
require $file;
}
});

0 comments on commit c8e7973

Please sign in to comment.