Support Joomla!
Main
Community
Documentation
Forum
Extensions
Shop
Developers
Joomla! 1.5 Documentation
Home
API reference wiki
Developer portal
SVN repository
Packages
Select a package...
Unknown
Archive_Tar
com-tecnick-tcpdf
geshi
Joomla
Joomla-Framework
OpenID
patError
patTemplate
PEAR
phpGACL
PHP_Compat
SimplePie
utf8
Package: Joomla-Framework
Other documents
Changelog
Element index (all)
Error log
Install
Copyright
Credits
License
Licenses
License
Content on this site is copyright © 2005 - 2008 Open Source Matters Inc and can be used in accordance with the
Joomla! Electronic Documentation License
. Some parts of this website may be subject to other licenses.
Source code for file /loader.php
Documentation is available at
loader.php
<?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
)
;
}
Documentation generated on Sat, 14 Nov 2009 11:15:34 +0000 by
phpDocumentor 1.3.1