/** * Get the path to a view on disk. * * @param $view * * @return string * @throws \Exception */ protected function path($view) { $root = \Bundle::path(\Bundle::name($view)) . 'views'; $path = $root . DS . \Bundle::element($view); if (file_exists($path)) { return $path; } throw new \Exception("View [{$view}] does not exist."); }
/** * Parse a language key into its bundle, file, and line segments. * * Language lines follow a {bundle}::{file}.{line} naming convention. * * @param string $key * @return array */ protected function parse($key) { $bundle = Bundle::name($key); $segments = explode('.', Bundle::element($key)); // If there are not at least two segments in the array, it means that // the developer is requesting the entire language line array to be // returned. If that is the case, we'll make the item "null". if (count($segments) >= 2) { $line = implode('.', array_slice($segments, 1)); return array($bundle, $segments[0], $line); } else { return array($bundle, $segments[0], null); } }
/** * Parse a key and return its bundle, file, and key segments. * * Configuration items are named using the {bundle}::{file}.{item} convention. * * @param string $key * @return array */ protected static function parse($key) { // First, we'll check the keyed cache of configuration items, as this will // be the fastest method of retrieving the configuration option. After an // item is parsed, it is always stored in the cache by its key. if (array_key_exists($key, static::$cache)) { return static::$cache[$key]; } $bundle = Bundle::name($key); $segments = explode('.', Bundle::element($key)); // If there are not at least two segments in the array, it means that the // developer is requesting the entire configuration array to be returned. // If that is the case, we'll make the item field "null". if (count($segments) >= 2) { $parsed = array($bundle, $segments[0], implode('.', array_slice($segments, 1))); } else { $parsed = array($bundle, $segments[0], null); } return static::$cache[$key] = $parsed; }
/** * Test the Bundle::name method. * * @group laravel */ public function testBundleNameCanBeRetrievedFromIdentifier() { $this->assertEquals(DEFAULT_BUNDLE, Bundle::name('something')); $this->assertEquals(DEFAULT_BUNDLE, Bundle::name('something.else')); $this->assertEquals('bundle', Bundle::name('bundle::something.else')); }
static function factory($block, $fail = true) { if (is_object($block)) { $class = $block; } else { \Bundle::start(\Bundle::resolve(\Bundle::name($block))); if (\IoC::registered($ioc = "vane.block: {$block}")) { $class = $block = IoC::resolve($ioc); } else { $class = static::classOf($block, false); class_exists($class) or $class = static::fromStd($block); } } if ($fail and !is_subclass_of($class, $parent = 'Laravel\\Routing\\Controller')) { throw new Error("Block class [{$class}] must inherit from [{$parent}]."); } else { return is_object($block) ? $block : new $class(); } }