mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 11:28:25 +00:00
fb96b06394
Revision: [1796] Adding missing layout error messages. Changed more errors in View class to use the ErrorHandler class Revision: [1795] Added the missing error messages I found after RC 1 was built. Corrected errors in the View class when helpers where not found. Added error views for missing component classes and files. Updated views for missing view classes and files Revision: [1794] Adding fix for Ticket #273 Revision: [1793] Correcting loading order of required files in bake.php Revision: [1792] Added fix for Ticket #271 Revision: [1791] Fix for Ticket #268 and Ticket #272 git-svn-id: https://svn.cakephp.org/repo/trunk/cake@1797 3807eeeb-6ff5-0310-8944-8be069107fe0
147 lines
No EOL
4.5 KiB
PHP
147 lines
No EOL
4.5 KiB
PHP
<?php
|
|
/* SVN FILE: $Id$ */
|
|
|
|
/**
|
|
*
|
|
*
|
|
* PHP versions 4 and 5
|
|
*
|
|
* CakePHP : Rapid Development Framework <http://www.cakephp.org/>
|
|
* Copyright (c) 2005, Cake Software Foundation, Inc.
|
|
* 1785 E. Sahara Avenue, Suite 490-204
|
|
* Las Vegas, Nevada 89104
|
|
*
|
|
* Licensed under The MIT License
|
|
* Redistributions of files must retain the above copyright notice.
|
|
*
|
|
* @filesource
|
|
* @copyright Copyright (c) 2005, Cake Software Foundation, Inc.
|
|
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project
|
|
* @package cake
|
|
* @subpackage cake.cake.libs.controller
|
|
* @since CakePHP v TBD
|
|
* @version $Revision$
|
|
* @modifiedby $LastChangedBy$
|
|
* @lastmodified $Date$
|
|
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
|
|
*/
|
|
|
|
/**
|
|
*
|
|
*
|
|
* @package cake
|
|
* @subpackage cake.cake.libs.controller
|
|
* @since CakePHP v TBD
|
|
*/
|
|
class Component extends Object
|
|
{
|
|
|
|
/**
|
|
* Enter description here...
|
|
*
|
|
* @var unknown_type
|
|
*/
|
|
var $components = array();
|
|
|
|
/**
|
|
* Enter description here...
|
|
*
|
|
* @var unknown_type
|
|
*/
|
|
var $controller = null;
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* @return Component
|
|
*/
|
|
function Component(&$controller)
|
|
{
|
|
$this->controller =& $controller;
|
|
if ($this->controller->components !== false)
|
|
{
|
|
$loaded = array();
|
|
$loaded = $this->_loadComponents($loaded,$this->controller->components);
|
|
foreach(array_keys($loaded) as $component)
|
|
{
|
|
$tempComponent =& $loaded[$component];
|
|
if(isset($tempComponent->components) && is_array($tempComponent->components))
|
|
{
|
|
foreach($tempComponent->components as $subComponent)
|
|
{
|
|
$this->controller->{$component}->{$subComponent} =& $loaded[$subComponent];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Enter description here...
|
|
*
|
|
* @param unknown_type $loaded
|
|
* @param unknown_type $components
|
|
* @return unknown
|
|
*/
|
|
function &_loadComponents(&$loaded, $components)
|
|
{
|
|
foreach ($components as $component)
|
|
{
|
|
if(in_array($component, array_keys($loaded)) !== true)
|
|
{
|
|
$componentFn = Inflector::underscore($component).'.php';
|
|
|
|
if(file_exists(COMPONENTS.$componentFn))
|
|
{
|
|
$componentFn = COMPONENTS.$componentFn;
|
|
}
|
|
else if(file_exists(LIBS.'controller'.DS.'components'.DS.$componentFn))
|
|
{
|
|
$componentFn = LIBS.'controller'.DS.'components'.DS.$componentFn;
|
|
}
|
|
|
|
$componentCn = $component.'Component';
|
|
|
|
if (is_file($componentFn))
|
|
{
|
|
require_once $componentFn;
|
|
|
|
if(class_exists($componentCn)===true)
|
|
{
|
|
if($componentCn == 'SessionComponent')
|
|
{
|
|
$param = $this->controller->base.'/';
|
|
}
|
|
else
|
|
{
|
|
$param = null;
|
|
}
|
|
$this->controller->{$component} =& new $componentCn($param);
|
|
$loaded[$component] =& $this->controller->{$component};
|
|
if (isset($this->controller->{$component}->components) && is_array($this->controller->{$component}->components))
|
|
{
|
|
$loaded =& $this->_loadComponents($loaded, $this->controller->{$component}->components);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return $this->cakeError('missingComponentClass',
|
|
array(array('className' => $this->controller->name,
|
|
'component' => $component,
|
|
'file' => $componentFn)));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return $this->cakeError('missingComponentFile',
|
|
array(array('className' => $this->controller->name,
|
|
'component' => $component,
|
|
'file' => $componentFn)));
|
|
}
|
|
}
|
|
}
|
|
return $loaded;
|
|
}
|
|
}
|
|
|
|
?>
|