Special use case: If $closure is not null executing the closure inside
the specified scope.
public static scope ( string $name = null, Closur\Closure $closure = null ) : mixed | ||
$name | string | Name of the scope to use. |
$closure | Closur\Closure | A closure to execute inside the scope. |
return | mixed | Returns the previous scope if if `$name` is not null and `$closure` is null, returns the default used scope if `$name` is null, otherwise returns `null`. |
public function testEmptyHostAndSchemeOptionLocation() { Media::attach('app', array('absolute' => true)); Media::scope('app'); $result = Media::asset('/js/path/file', 'js', array('base' => '/app/base')); $expected = 'http://localhost/app/base/js/path/file.js'; $this->assertEqual($expected, $result); }
* The following connects the `Media` class as a format handler, which allows `Collection`s to be * exported to any format with a handler provided by `Media`, i.e. JSON. This enables things like * the following: * {{{ * $posts = Post::find('all'); * return $posts->to('json'); * }}} */ use lithium\util\Collection; Collection::formats('lithium\\net\\http\\Media'); // Mount assets directory as DOMAIN/assets // Stamp assets with version. use lithium\net\http\Media; Media::attach('app', array('path' => dirname(LITHIUM_APP_PATH) . '/assets', 'prefix' => 'assets/v:' . PROJECT_VERSION_BUILD)); // Set default scope. Media::scope('app'); // Render libary views in the app's layout only. Media::type('default', null, array('view' => 'lithium\\template\\View', 'paths' => array('template' => '{:library}/views/{:controller}/{:template}.{:type}.php', 'layout' => LITHIUM_APP_PATH . '/views/layouts/{:layout}.{:type}.php', 'element' => '{:library}/views/elements/{:template}.{:type}.php'))); /** * This filter is a convenience method which allows you to automatically route requests for static * assets stored within active plugins. For example, given a JavaScript file `bar.js` inside the * `li3_foo` plugin installed in an application, requests to `http://app/path/li3_foo/js/bar.js` * will be routed to `/path/to/app/libraries/plugins/li3_foo/webroot/js/bar.js` on the filesystem. * In production, it is recommended that you disable this filter in favor of symlinking each * plugin's `webroot` directory into your main application's `webroot` directory, or adding routing * rules in your web server's configuration. */ // use lithium\action\Dispatcher; // use lithium\action\Response; // use lithium\net\http\Media; //