$stack = array(); foreach ($reqs as $type => $type_reqs) { if (!isset($stack[$type])) { $stack[$type] = array(); } foreach ($type_reqs as $item) { $item = substr($item, strlen($type) + 1); // skip leading 'js/' $item = substr($item, 0, -(strlen($type) + 1)); // skip trailing '.js' echo '<br />', $item; } } return $stack; } $presets = new DependenciesManager(__DIR__ . '/../composer.json'); echo '<pre>'; var_export($presets->getComposerManifest()->getName()); echo '<br />'; $ajax = $presets->findDependencies('ajax'); var_export($ajax); echo '<br />'; var_export(prepareRequirements($ajax)); echo '<br />'; echo build_requirements_url('js', $ajax['js']); echo '<br />'; echo build_requirements_url('css', $ajax['css']); echo '<br />'; echo <<<EOT <script src="/GitHub_projects/assets-library/src/assets-library.php?type=js&preset=ajax" type="text/javascript"> EOT;
/** * Build a preset requirements and include it * * @param string $type 'js' or 'css' * @param string $preset * @return void */ function prepare_preset_include($type, $preset) { require_once __DIR__ . '/DependenciesManager.php'; $presets = new DependenciesManager(_ASSETSLIB_MANIFEST); $deps = $presets->findDependencies($preset); if (!empty($deps) && isset($deps[$type])) { $str = ''; foreach ($deps[$type] as $item) { $str .= library_include($item); } if (!empty($str)) { if ($type === 'css') { css_header(); } elseif ($type === 'js') { javascript_header(); } echo $str; } } }