Skip to content

Commit

Permalink
Add autoloader that doesn't depend on composer.
Browse files Browse the repository at this point in the history
  • Loading branch information
paragonie-scott committed Oct 17, 2015
1 parent 93debf0 commit ee5e92e
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 1 deletion.
37 changes: 37 additions & 0 deletions autoload.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php
if (\file_exists(__DIR__.'/vendor/autoload.php')) {
require __DIR__.'/vendor/autoload.php';
} else {
/**
* You aren't using Composer, so, here's an autoloader instead.
*/
spl_autoload_register(function ($class) {
$prefix = 'ParagonIE\\Halite\\';
$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';

// If the file exists, require it
if (\file_exists($file) && \strpos(\realpath($file), $base_dir) === 0) {
require $file;
}
});
}
2 changes: 1 addition & 1 deletion test/phpunit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ if [ $? -eq 0 ]; then
echo
echo -e "\033[33mBegin Unit Testing\033[0m"
# Run the testing suite
php phpunit.phar --bootstrap "$parentdir/vendor/autoload.php" "$parentdir/test/unit"
php phpunit.phar --bootstrap "$parentdir/autoload.php" "$parentdir/test/unit"
EXITCODE=$?
# Cleanup
if [ "$clean" -eq 1 ]; then
Expand Down

0 comments on commit ee5e92e

Please sign in to comment.