添加到 trunk
+YUCHENG HU+ git-svn-id: https://svn.code.sf.net/p/hawebs/svn@214 a2543c7e-f6e9-4f8a-8bff-1ffc34733512
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
<html>
|
||||
<body bgcolor="#FFFFFF">
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,187 @@
|
||||
<?php
|
||||
/**
|
||||
* @version $Id: loader.php 10381 2008-06-01 03:35:53Z pasamio $
|
||||
* @package Joomla.Framework
|
||||
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
|
||||
* @license GNU/GPL, see LICENSE.php
|
||||
* Joomla! is free software. This version may have been modified pursuant
|
||||
* to the GNU General Public License, and as distributed it includes or
|
||||
* is derivative of works licensed under the GNU General Public License or
|
||||
* other free or open source software licenses.
|
||||
* See COPYRIGHT.php for copyright notices and details.
|
||||
*/
|
||||
|
||||
if(!defined('DS')) {
|
||||
define( 'DS', DIRECTORY_SEPARATOR );
|
||||
}
|
||||
|
||||
/**
|
||||
* @package Joomla.Framework
|
||||
*/
|
||||
class JLoader
|
||||
{
|
||||
/**
|
||||
* Loads a class from specified directories.
|
||||
*
|
||||
* @param string $name The class name to look for ( dot notation ).
|
||||
* @param string $base Search this directory for the class.
|
||||
* @param string $key String used as a prefix to denote the full path of the file ( dot notation ).
|
||||
* @return void
|
||||
* @since 1.5
|
||||
*/
|
||||
function import( $filePath, $base = null, $key = 'libraries.' )
|
||||
{
|
||||
static $paths;
|
||||
|
||||
if (!isset($paths)) {
|
||||
$paths = array();
|
||||
}
|
||||
|
||||
$keyPath = $key ? $key . $filePath : $filePath;
|
||||
|
||||
if (!isset($paths[$keyPath]))
|
||||
{
|
||||
if ( ! $base ) {
|
||||
$base = dirname( __FILE__ );
|
||||
}
|
||||
|
||||
$parts = explode( '.', $filePath );
|
||||
|
||||
$classname = array_pop( $parts );
|
||||
switch($classname)
|
||||
{
|
||||
case 'helper' :
|
||||
$classname = ucfirst(array_pop( $parts )).ucfirst($classname);
|
||||
break;
|
||||
|
||||
default :
|
||||
$classname = ucfirst($classname);
|
||||
break;
|
||||
}
|
||||
|
||||
$path = str_replace( '.', DS, $filePath );
|
||||
|
||||
if (strpos($filePath, 'joomla') === 0)
|
||||
{
|
||||
/*
|
||||
* If we are loading a joomla class prepend the classname with a
|
||||
* capital J.
|
||||
*/
|
||||
$classname = 'J'.$classname;
|
||||
$classes = JLoader::register($classname, $base.DS.$path.'.php');
|
||||
$rs = isset($classes[strtolower($classname)]);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* If it is not in the joomla namespace then we have no idea if
|
||||
* it uses our pattern for class names/files so just include.
|
||||
*/
|
||||
$rs = include($base.DS.$path.'.php');
|
||||
}
|
||||
|
||||
$paths[$keyPath] = $rs;
|
||||
}
|
||||
|
||||
return $paths[$keyPath];
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a class to autoload
|
||||
*
|
||||
* @param string $classname The class name
|
||||
* @param string $file Full path to the file that holds the class
|
||||
* @return array|boolean Array of classes
|
||||
* @since 1.5
|
||||
*/
|
||||
function & register ($class = null, $file = null)
|
||||
{
|
||||
static $classes;
|
||||
|
||||
if(!isset($classes)) {
|
||||
$classes = array();
|
||||
}
|
||||
|
||||
if($class && is_file($file))
|
||||
{
|
||||
// Force to lower case.
|
||||
$class = strtolower($class);
|
||||
$classes[$class] = $file;
|
||||
|
||||
// In php4 we load the class immediately.
|
||||
if((version_compare( phpversion(), '5.0' ) < 0)) {
|
||||
JLoader::load($class);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $classes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Load the file for a class
|
||||
*
|
||||
* @access public
|
||||
* @param string $class The class that will be loaded
|
||||
* @return boolean True on success
|
||||
* @since 1.5
|
||||
*/
|
||||
function load( $class )
|
||||
{
|
||||
$class = strtolower($class); //force to lower case
|
||||
|
||||
if (class_exists($class)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$classes = JLoader::register();
|
||||
if(array_key_exists( strtolower($class), $classes)) {
|
||||
include($classes[$class]);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* When calling a class that hasn't been defined, __autoload will attempt to
|
||||
* include the correct file for that class.
|
||||
*
|
||||
* This function get's called by PHP. Never call this function yourself.
|
||||
*
|
||||
* @param string $class
|
||||
* @access public
|
||||
* @return boolean
|
||||
* @since 1.5
|
||||
*/
|
||||
function __autoload($class)
|
||||
{
|
||||
if(JLoader::load($class)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Global application exit.
|
||||
*
|
||||
* This function provides a single exit point for the framework.
|
||||
*
|
||||
* @param mixed Exit code or string. Defaults to zero.
|
||||
*/
|
||||
function jexit($message = 0) {
|
||||
exit($message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Intelligent file importer
|
||||
*
|
||||
* @access public
|
||||
* @param string $path A dot syntax path
|
||||
* @since 1.5
|
||||
*/
|
||||
function jimport( $path ) {
|
||||
return JLoader::import($path);
|
||||
}
|
||||
Reference in New Issue
Block a user