asicms: Next Alpha Version Released


 
Thread Tools Search this Thread
Special Forums News, Links, Events and Announcements Software Releases - RSS News asicms: Next Alpha Version Released
# 1  
Old 08-04-2008
asicms: Next Alpha Version Released

ASICMS is a php Framework for CMS-Systems. MultiUser and Multiuser Support and a large libary of php-Classes and Widgets.
ImageImage

More...
Login or Register to Ask a Question

Previous Thread | Next Thread
Login or Register to Ask a Question
YAF_LOADER(3)								 1							     YAF_LOADER(3)

The Yaf_Loader class

INTRODUCTION
Yaf_Loader introduces a comprehensive autoloading solution for Yaf. The first time an instance of Yaf_Application is retrieved, Yaf_Loader will instance a singleton, and registers itself with spl_autoload. You retrieve an instance using the Yaf_Loader::getInstance Yaf_Loader attempt to load a class only one shot, if failed, depend on yaf.use_spl_auload, if this config is On Yaf_Loader::autoload will return FALSE, thus give the chance to other autoload function. if it is Off (by default), Yaf_Loader::autoload will return TRUE, and more important is that a very usefull warning will be triggerd (very usefull to find out why a class could not be loaded). Note Please keep yaf.use_spl_autoload Off unless there is some library have their own autoload mechanism and impossible to rewrite it. By default, Yaf_Loader assume all library (class defined script) store in the global library directory, which is defined in the php.ini(yaf.library). If you want Yaf_Loader search some classes(libraries) in the local class directory(which is defined in application.ini, and by default, it is application.directory . "/library"), you should register the class prefix using the Yaf_Loader::registerLocalNameSpace Let's see some examples(assuming APPLICATION_PATH is application.directory): Example #1 Config example // Assuming the following configure in php.ini: yaf.library = "/global_dir" //Assuming the following configure in application.ini application.library = APPLICATION_PATH "/library" Assuming the following local name space registerd: Example #2 Register localnamespace <?php class Bootstrap extends Yaf_Bootstrap_Abstract{ public function _initLoader($dispatcher) { Yaf_Loader::getInstance()->registerLocalNameSpace(array("Foo", "Bar")); } ?> Then the autoload examples: Example #3 Load class example class Foo_Bar_Test => // APPLICATION_PATH/library/Foo/Bar/Test.php class GLO_Name => // /global_dir/Glo/Name.php class BarNon_Test // /global_dir/Barnon/Test.php As of PHP 5.3, you can use namespace: Example #4 Load namespace class example class FooBarDummy => // APPLICATION_PATH/library/Foo/Bar/Dummy.php class FooBarBarDummy => // /global_dir/FooBar/Bar/Dummy.php You may noticed that all the folder wth the first letter capitalized, you can make them lowercase by set yaf.lowcase_path = On in php.ini Yaf_Loader is also designed to load the MVC classes, and the rule is: Example #5 MVC class loading example Controller Classes => // APPLICATION_PATH/controllers/ Model Classes => // APPLICATION_PATH/models/ Plugin Classes => // APPLICATION_PATH/plugins/ Yaf identify a class's suffix(this is by default, you can also change to the prefix by change the configure yaf.name_suffix) to decide whether it is a MVC class: Example #6 MVC class distinctions Controller Classes => // ***Controller Model Classes => // ***Model Plugin Classes => // ***Plugin some examples: Example #7 MVC loading example class IndexController // APPLICATION_PATH/controllers/Index.php class DataModel => // APPLICATION_PATH/models/Data.php class DummyPlugin => // APPLICATION_PATH/plugins/Dummy.php class A_B_TestModel => // APPLICATION_PATH/models/A/B/Test.php Note As of 2.1.18, Yaf supports Controllers autoloading for user script side, (which means the autoloading triggered by user php script, eg: access a controller static property in Bootstrap or Plugins), but autoloader only try to locate controller class script under the default module folder, which is "APPLICATION_PATH/controllers/". also, the directory will be affected by yaf.lowcase_path. CLASS SYNOPSIS
Yaf_Loader Yaf_Loader Properties o protected$_local_ns o protected$_library o protected$_global_library o static$_instance Methods o public void Yaf_Loader::autoload (void ) o public void Yaf_Loader::clearLocalNamespace (void ) o private void Yaf_Loader::__clone (void ) o private Yaf_Loader::__construct (void ) o publicstatic void Yaf_Loader::getInstance (void ) o public Yaf_Loader Yaf_Loader::getLibraryPath ([bool $is_global = false]) o public void Yaf_Loader::getLocalNamespace (void ) o publicstatic void Yaf_Loader::import (void ) o public void Yaf_Loader::isLocalName (void ) o public void Yaf_Loader::registerLocalNamespace (mixed $prefix) o public Yaf_Loader Yaf_Loader::setLibraryPath (string $directory, [bool $is_global = false]) o private void Yaf_Loader::__sleep (void ) o private void Yaf_Loader::__wakeup (void ) PROPERTIES
o $_local_ns - o $_library - By default, this value is application.directory . "/library", you can change this either in the application.ini(applica- tion.library) or call to Yaf_Loader::setLibraryPath o $_global_library - o $_instance - PHP Documentation Group YAF_LOADER(3)