Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 2390

Přidáno uživatelem Ondřej Fibich před více než 9 roky(ů)

Upravy: odstraneni Loader knihovny (nepouzivate Kohana zverstvo)

Zobrazit rozdíly:

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