$path) { if (!is_array($path)) { $code .= '$autoloader->register(\'' . rtrim($namespace, '\\') . '\', DIR_STORAGE . \'vendor/' . $directory . '/' . rtrim($path, '/') . '/' . '\', true);' . "\n"; } else { foreach ($path as $value) { $code .= '$autoloader->register(\'' . rtrim($namespace, '\\') . '\', DIR_STORAGE . \'vendor/' . $directory . '/' . rtrim($value, '/') . '/' . '\', true);' . "\n"; } } } } // Autoload psr-0 files if (isset($output['autoload']['psr-0'])) { $autoload = $output['autoload']['psr-0']; foreach ($autoload as $namespace => $path) { if (!is_array($path)) { $code .= '$autoloader->register(\'' . rtrim($namespace, '\\') . '\', DIR_STORAGE . \'vendor/' . $directory . '/' . rtrim($path, '/') . '/' . '\', true);' . "\n"; } else { foreach ($path as $value) { $code .= '$autoloader->register(\'' . rtrim($namespace, '\\') . '\', DIR_STORAGE . \'vendor/' . $directory . '/' . rtrim($value, '/') . '/' . '\', true);' . "\n"; } } } } // Autoload classmap if (isset($output['autoload']['classmap'])) { $autoload = []; $classmaps = $output['autoload']['classmap']; foreach ($classmaps as $classmap) { $directories = [dirname($file) . '/' . $classmap]; while (count($directories) != 0) { $next = array_shift($directories); if (is_dir($next)) { foreach (glob(trim($next, '/') . '/{*,.[!.]*,..?*}', GLOB_BRACE) as $file) { if (is_dir($file)) { $directories[] = $file . '/'; } if (is_file($file)) { $namespace = substr(dirname($file), strlen(DIR_STORAGE . 'vendor/' . $directory . $classmap) + 1); if ($namespace) { $autoload[$namespace] = substr(dirname($file), strlen(DIR_STORAGE . 'vendor/')); } } } } } } foreach ($autoload as $namespace => $path) { $code .= '$autoloader->register(\'' . rtrim($namespace, '\\') . '\', DIR_STORAGE . \'vendor/' . rtrim($path, '/') . '/' . '\', true);' . "\n"; } } // Autoload files if (isset($output['autoload']['files'])) { $files = $output['autoload']['files']; foreach ($files as $file) { $code .= 'if (is_file(DIR_STORAGE . \'vendor/' . $directory . '/' . $file . '\')) {' . "\n"; $code .= ' require_once(DIR_STORAGE . \'vendor/' . $directory . '/' . $file . '\');' . "\n"; $code .= '}' . "\n"; } } } $code .= "\n"; } file_put_contents(DIR_SYSTEM . 'vendor.php', trim($code)); }