Revize 2390
Přidáno uživatelem Ondřej Fibich před více než 9 roky(ů)
freenetis/branches/1.2/system/libraries/Loader.php | ||
---|---|---|
<?php defined('SYSPATH') or die('No direct script access.');
|
||
/**
|
||
* Loader.
|
||
*
|
||
* $Id: Loader.php 1758 2008-01-21 00:05:34Z PugFish $
|
||
*
|
||
* @package Core
|
||
* @author Kohana Team
|
||
* @copyright (c) 2007-2008 Kohana Team
|
||
* @license http://kohanaphp.com/license.html
|
||
*/
|
||
class Loader {
|
||
|
||
/**
|
||
* Autoloads libraries and models specified in config file.
|
||
*/
|
||
public function __construct()
|
||
{
|
||
foreach(array (Config::get('preload')) as $type => $load)
|
||
{
|
||
if ($load == FALSE) continue;
|
||
|
||
foreach(explode(',', $load) as $name)
|
||
{
|
||
if (($name = trim($name)) == FALSE) continue;
|
||
|
||
switch($type)
|
||
{
|
||
case 'libraries':
|
||
if ($name == 'database')
|
||
{
|
||
$this->database();
|
||
}
|
||
else
|
||
{
|
||
$this->library($name);
|
||
}
|
||
break;
|
||
case 'models':
|
||
$this->model($name);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Load library.
|
||
*
|
||
* @param string library name
|
||
* @param array custom configuration
|
||
* @param boolean return library instance instead of adding to Kohana instance
|
||
* @return FALSE|Object FALSE if library is already loaded, instance of library if return is TRUE
|
||
*/
|
||
public function library($name, $config = array(), $return = FALSE)
|
||
{
|
||
if (isset(Kohana::instance()->$name) AND $return == FALSE)
|
||
return FALSE;
|
||
|
||
if ($name == 'database')
|
||
{
|
||
return $this->database($config, $return);
|
||
}
|
||
else
|
||
{
|
||
$class = ucfirst($name);
|
||
$class = new $class($config);
|
||
|
||
if ($return == TRUE)
|
||
return $class;
|
||
|
||
Kohana::instance()->$name = $class;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Load database.
|
||
*
|
||
* @param string Database config group to use
|
||
* @param boolean return database instance instead of adding to Kohana instance
|
||
* @return void|Database database instance if return is TRUE
|
||
*/
|
||
public function database($group = 'default', $return = FALSE)
|
||
{
|
||
$db = new Database($group);
|
||
|
||
// Return the new database object
|
||
if ($return == TRUE)
|
||
return $db;
|
||
|
||
Kohana::instance()->db = $db;
|
||
}
|
||
|
||
/**
|
||
* Load helper. Deprecated.
|
||
*
|
||
* @param string helper name
|
||
*/
|
||
public function helper($name)
|
||
{
|
||
// Just don't do this... there's no point.
|
||
Log::add('debug', 'Using $this->load->helper() is deprecated. See Kohana::auto_load().');
|
||
}
|
||
|
||
/**
|
||
* Load model.
|
||
*
|
||
* @param string model name
|
||
* @param string custom name for accessing model, or TRUE to return instance of model
|
||
* @return void|FALSE|Object FALSE if model is already loaded, instance of model if alias is TRUE
|
||
*/
|
||
public function model($name, $alias = FALSE)
|
||
{
|
||
// The alias is used for Controller->alias
|
||
$alias = ($alias == FALSE) ? $name : $alias;
|
||
$class = ucfirst($name).'_Model';
|
||
|
||
if (isset(Kohana::instance()->$alias))
|
||
return FALSE;
|
||
|
||
if (strpos($name, '/') !== FALSE)
|
||
{
|
||
// Handle models in subdirectories
|
||
require_once Kohana::find_file('models', $name);
|
||
|
||
// Reset the class name
|
||
$class = end(explode('/', $class));
|
||
}
|
||
|
||
// Load the model
|
||
$model = new $class();
|
||
|
||
// Return the model
|
||
if ($alias === TRUE)
|
||
return $model;
|
||
|
||
Kohana::instance()->$alias = $model;
|
||
}
|
||
|
||
/**
|
||
* Load view.
|
||
*
|
||
* @param string view name
|
||
* @param array data to make accessible within view
|
||
* @return View
|
||
*/
|
||
public function view($name, $data = array())
|
||
{
|
||
return new View($name, $data);
|
||
}
|
||
|
||
} // End Loader Class
|
freenetis/branches/1.2/system/libraries/Controller.php | ||
---|---|---|
* @author Kohana Team
|
||
* @copyright (c) 2007-2008 Kohana Team
|
||
* @license http://kohanaphp.com/license.html
|
||
*
|
||
*
|
||
* @property Loader $load
|
||
* @property URI $uri
|
||
* @property Input $input
|
||
... | ... | |
Kohana::$instance = $this;
|
||
|
||
// Loader should always be available
|
||
$this->load = new Loader;
|
||
|
||
// Loader should always be available
|
||
$this->uri = new URI;
|
||
|
||
// Input should always be available
|
||
... | ... | |
else
|
||
{
|
||
// Loader should always be available
|
||
$this->load = Kohana::$instance->load;
|
||
|
||
// Loader should always be available
|
||
$this->uri = Kohana::$instance->uri;
|
||
|
||
// Input should always be available
|
Také k dispozici: Unified diff
Upravy: odstraneni Loader knihovny (nepouzivate Kohana zverstvo)