2011-08-02 22:07:40 -05:00
|
|
|
<?php namespace System;
|
|
|
|
|
|
|
|
|
|
class Package {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* All of the loaded packages.
|
|
|
|
|
*
|
|
|
|
|
* @var array
|
|
|
|
|
*/
|
|
|
|
|
public static $loaded = array();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Load a package or set of packages.
|
|
|
|
|
*
|
2011-08-02 22:40:12 -05:00
|
|
|
* @param string|array $packages
|
2011-08-02 22:07:40 -05:00
|
|
|
* @return void
|
|
|
|
|
*/
|
2011-08-02 22:40:12 -05:00
|
|
|
public static function load($packages)
|
2011-08-02 22:07:40 -05:00
|
|
|
{
|
2011-08-02 22:40:12 -05:00
|
|
|
foreach ((array) $packages as $package)
|
2011-08-02 22:07:40 -05:00
|
|
|
{
|
2011-08-08 14:29:19 -05:00
|
|
|
if ( ! static::loaded($package) and file_exists($bootstrap = PACKAGE_PATH.$package.'/bootstrap'.EXT))
|
2011-08-08 14:28:38 -05:00
|
|
|
{
|
2011-08-08 14:29:19 -05:00
|
|
|
require $bootstrap;
|
2011-08-08 14:28:38 -05:00
|
|
|
}
|
2011-08-02 22:29:48 -05:00
|
|
|
|
2011-08-08 14:28:38 -05:00
|
|
|
static::$loaded[] = $package;
|
2011-08-02 22:07:40 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2011-08-08 09:21:56 -05:00
|
|
|
/**
|
|
|
|
|
* Determine if a given package has been loaded.
|
|
|
|
|
*
|
|
|
|
|
* @param string $package
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public static function loaded($package)
|
|
|
|
|
{
|
|
|
|
|
return array_key_exists($package, static::$loaded);
|
|
|
|
|
}
|
|
|
|
|
|
2011-08-02 22:07:40 -05:00
|
|
|
}
|