Commit 31e2c1c4 authored by Taylor Otwell's avatar Taylor Otwell

added facades for core classes.

parent 86da3af7
......@@ -22,30 +22,30 @@ return array(
'Auth' => 'Laravel\\Security\\Authenticator',
'Benchmark' => 'Laravel\\Benchmark',
'Cache' => 'Laravel\\Cache\\Manager',
'Config' => 'Laravel\\Config',
'Cookie' => 'Laravel\\Cookie',
'Config' => 'Laravel\\Config_Facade',
'Cookie' => 'Laravel\\Cookie_Facade',
'Crypter' => 'Laravel\\Security\\Crypter',
'DB' => 'Laravel\\Database\\Manager',
'Download' => 'Laravel\\Download',
'Download' => 'Laravel\\Download_Facade',
'Eloquent' => 'Laravel\\Database\\Eloquent\\Model',
'Error' => 'Laravel\\Error',
'File' => 'Laravel\\File',
'Form' => 'Laravel\\Form',
'File' => 'Laravel\\File_Facade',
'Form' => 'Laravel\\Form_Facade',
'Hasher' => 'Laravel\\Security\\Hasher',
'HTML' => 'Laravel\\HTML',
'HTML' => 'Laravel\\HTML_Facade',
'Inflector' => 'Laravel\\Inflector',
'Input' => 'Laravel\\Input',
'Input' => 'Laravel\\Input_Facade',
'IoC' => 'Laravel\\IoC',
'Lang' => 'Laravel\\Lang',
'Loader' => 'Laravel\\Loader',
'Package' => 'Laravel\\Package',
'URL' => 'Laravel\\URL',
'Redirect' => 'Laravel\\Redirect',
'Request' => 'Laravel\\Request',
'Response' => 'Laravel\\Response',
'Lang' => 'Laravel\\Lang_Facade',
'Loader' => 'Laravel\\Loader_Facade',
'Package' => 'Laravel\\Package_Facade',
'URL' => 'Laravel\\URL_Facade',
'Redirect' => 'Laravel\\Redirect_Facade',
'Request' => 'Laravel\\Request_Facade',
'Response' => 'Laravel\\Response_Facade',
'Session' => 'Laravel\\Session\\Manager',
'Str' => 'Laravel\\Str',
'Validator' => 'Laravel\\Validation\\Validator',
'View' => 'Laravel\\View',
'View' => 'Laravel\\View_Facade',
);
\ No newline at end of file
......@@ -39,7 +39,7 @@ return array(
'GET /' => function($laravel)
{
return $laravel->view->make('home.index');
return View::make('home.index');
},
);
\ No newline at end of file
......@@ -42,6 +42,7 @@ $application = new Application;
// --------------------------------------------------------------
// Load the configuration manager.
// --------------------------------------------------------------
require SYS_PATH.'facade'.EXT;
require SYS_PATH.'loader'.EXT;
require SYS_PATH.'config'.EXT;
require SYS_PATH.'arr'.EXT;
......
<?php namespace Laravel;
class Config_Facade extends Facade { public static $resolve = 'config'; }
class Config {
/**
......@@ -9,14 +11,14 @@ class Config {
*
* @var array
*/
public $items = array();
protected $items = array();
/**
* The paths containing the configuration files.
*
* @var array
*/
public $paths = array();
protected $paths = array();
/**
* Create a new configuration manager instance.
......
......@@ -61,7 +61,7 @@ return array(
}),
'laravel.form' => array('resolver' => function($container)
'laravel.form' => array('singleton' => true, 'resolver' => function($container)
{
list($request, $html, $url) = array(
$container->resolve('laravel.request'),
......@@ -79,7 +79,7 @@ return array(
}),
'laravel.html' => array('resolver' => function($container)
'laravel.html' => array('singleton' => true, 'resolver' => function($container)
{
return new HTML($container->resolve('laravel.url'), $container->resolve('laravel.config')->get('application.encoding'));
}),
......@@ -110,7 +110,9 @@ return array(
'laravel.lang' => array('singleton' => true, 'resolver' => function($container)
{
return new Lang($container->resolve('laravel.config')->get('application.language'), array(SYS_LANG_PATH, LANG_PATH));
require_once SYS_PATH.'lang'.EXT;
return new Lang_Factory($container->resolve('laravel.config'), array(SYS_LANG_PATH, LANG_PATH));
}),
......
<?php namespace Laravel;
class Cookie_Facade extends Facade { public static $resolve = 'cookie'; }
class Cookie {
/**
......
<?php namespace Laravel;
class Download_Facade extends Facade { public static $resolve = 'download'; }
class Download extends Response {
/**
......
<?php namespace Laravel;
abstract class Facade {
/**
* Magic Method for passing methods to a class registered in the IoC container.
* This provides a convenient method of accessing functions on classes that
* could not otherwise be accessed staticly.
*/
public static function __callStatic($method, $parameters)
{
return call_user_func_array(array(IoC::container()->resolve('laravel.'.static::$resolve), $method), $parameters);
}
}
\ No newline at end of file
<?php namespace Laravel;
class File_Facade extends Facade { public static $resolve = 'file'; }
class File {
/**
......
<?php namespace Laravel;
class Form_Facade extends Facade { public static $resolve = 'form'; }
class Form {
/**
......
<?php namespace Laravel;
class HTML_Facade extends Facade { public static $resolve = 'html'; }
class HTML {
/**
......
<?php namespace Laravel;
class Input_Facade extends Facade { public static $resolve = 'input'; }
class Input {
/**
......@@ -7,7 +9,7 @@ class Input {
*
* @var array
*/
private $input;
protected $input;
/**
* The $_GET array for the request.
......
<?php namespace Laravel;
class Lang {
class Lang_Facade extends Facade { public static $resolve = 'lang'; }
class Lang_Factory {
/**
* All of the loaded language lines.
* The configuration manager instance.
*
* The array is keyed by [$language.$file].
* @var Config
*/
protected $config;
/**
* The paths containing the language files.
*
* @var array
*/
private $lines = array();
protected $paths;
/**
* The default language being used by the application.
* Create a new language factory instance.
*
* @var string
* @param Config $config
* @param array $paths
* @return void
*/
private $language;
public function __construct(Config $config, $paths)
{
$this->paths = $paths;
$this->config = $config;
}
/**
* The paths containing the language files.
* Begin retrieving a language line.
*
* @param string $key
* @param array $replacements
* @return Lang
*/
public function line($key, $replacements = array())
{
return new Lang($key, $replacements, $this->config->get('application.language'), $this->paths);
}
}
class Lang {
/**
* All of the loaded language lines.
*
* The array is keyed by [$language.$file].
*
* @var array
*/
private $paths;
private static $lines = array();
/**
* The key of the language line being retrieved.
......@@ -40,45 +71,34 @@ class Lang {
private $replacements;
/**
* The language of the line being retrieved.
*
* This is set to the default language when a new line is requested.
* However, it may be changed using the "in" method.
* The default language being used by the application.
*
* @var string
*/
private $line_language;
private $language;
/**
* Create a new Lang instance.
* The paths containing the language files.
*
* @param string $language
* @param array $paths
* @return void
* @var array
*/
public function __construct($language, $paths)
{
$this->paths = $paths;
$this->language = $language;
}
private $paths;
/**
* Begin retrieving a new language line.
*
* Language lines are retrieved using "dot" notation. So, asking for the "messages.required" langauge
* line would return the "required" line from the "messages" language file.
* Create a new Lang instance.
*
* @param string $key
* @param array $replacements
* @return Lang
* @param string $language
* @param array $paths
* @return void
*/
public function line($key, $replacements = array())
public function __construct($key, $replacements, $language, $paths)
{
$this->key = $key;
$this->paths = $paths;
$this->language = $language;
$this->replacements = $replacements;
$this->line_language = $this->language;
return $this;
}
/**
......@@ -98,7 +118,7 @@ class Lang {
return ($default instanceof \Closure) ? call_user_func($default) : $default;
}
$line = Arr::get($this->lines[$this->line_language.$file], $line, $default);
$line = Arr::get(static::$lines[$this->language.$file], $line, $default);
foreach ($this->replacements as $key => $value)
{
......@@ -138,13 +158,13 @@ class Lang {
*/
private function load($file)
{
if (isset($this->lines[$this->line_language.$file])) return;
if (isset(static::$lines[$this->language.$file])) return;
$language = array();
foreach ($this->paths as $directory)
{
if (file_exists($path = $directory.$this->line_language.'/'.$file.EXT))
if (file_exists($path = $directory.$this->language.'/'.$file.EXT))
{
$language = array_merge($language, require $path);
}
......@@ -152,10 +172,10 @@ class Lang {
if (count($language) > 0)
{
$this->lines[$this->line_language.$file] = $language;
static::$lines[$this->language.$file] = $language;
}
return isset($this->lines[$this->line_language.$file]);
return isset(static::$lines[$this->language.$file]);
}
/**
......@@ -168,7 +188,7 @@ class Lang {
*/
public function in($language)
{
$this->line_language = $line_language;
$this->language = $language;
return $this;
}
......
<?php namespace Laravel;
class Loader_Facade extends Facade { public static $resolve = 'loader'; }
class Loader {
/**
......@@ -38,7 +40,7 @@ class Loader {
*/
public function load($class)
{
$file = strtolower(str_replace('\\', '/', $class));
$file = strtolower(str_replace(array('\\', '_Facade'), array('/', ''), $class));
if (array_key_exists($class, $this->aliases))
{
......
<?php namespace Laravel;
class Package_Facade extends Facade { public static $resolve = 'package'; }
class Package {
/**
......
<?php namespace Laravel;
class Redirect_Facade extends Facade { public static $resolve = 'redirect'; }
class Redirect extends Response {
/**
......
<?php namespace Laravel;
class Request_Facade extends Facade { public static $resolve = 'request'; }
class Request {
/**
......
<?php namespace Laravel;
class Response_Facade extends Facade { public static $resolve = 'response'; }
class Response_Factory {
/**
......
<?php namespace Laravel;
class URL_Facade extends Facade { public static $resolve = 'url'; }
class URL {
/**
......
<?php namespace Laravel;
class View_Facade extends Facade { public static $resolve = 'view'; }
/**
* The view composer class is responsible for calling the composer on a view and
* searching through the view composers for a given view name. It is injected
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment