(Yaf >=1.0.0)
Yaf_Loader 锟斤拷为Yaf锟结供锟斤拷锟皆讹拷锟斤拷锟截癸拷锟杰碉拷全锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷
锟节碉拷一锟斤拷使锟矫碉拷时锟津,斤拷锟斤拷锟斤拷 Yaf_Application 锟斤拷实锟斤拷锟斤拷 Yaf_Loader 实锟斤拷锟剿碉拷锟斤拷模式锟斤拷锟斤拷使锟斤拷spl_autoload注锟斤拷锟斤拷锟皆硷拷锟斤拷 通锟斤拷 Yaf_Loader::getInstance() 锟斤拷锟斤拷锟斤拷锟斤拷实锟斤拷
Yaf_Loader 锟斤拷锟斤拷一锟斤拷锟斤拷时锟斤拷锟斤拷锟斤拷锟斤拷一锟轿o拷锟斤拷锟绞э拷锟斤拷耍锟� 锟斤拷锟斤拷牟锟斤拷锟斤拷锟饺★拷锟斤拷锟�yaf.use_spl_auload锟斤拷 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷为On锟斤拷Yaf_Loader::autoload() 锟斤拷锟结返锟斤拷FALSE锟斤拷 锟接讹拷锟窖伙拷锟斤拷锟矫革拷锟斤拷锟斤拷锟斤拷锟皆讹拷锟斤拷锟截癸拷锟杰★拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷为Off锟斤拷默锟较o拷锟斤拷 Yaf_Loader::autoload() 锟斤拷锟结返锟斤拷TRUE锟斤拷 锟斤拷锟斤拷要锟斤拷锟角斤拷锟斤拷锟阶筹拷一锟斤拷锟角筹拷锟斤拷锟矫的撅拷锟芥(锟斤拷锟斤拷锟揭筹拷一锟斤拷锟斤拷锟斤拷锟绞э拷芊浅锟斤拷锟斤拷茫锟斤拷锟�
Note:
锟诫保锟斤拷yaf.use_spl_autoload锟斤拷锟街关闭o拷锟斤拷锟斤拷锟斤拷一些library锟斤拷锟皆硷拷锟斤拷autoload锟斤拷锟狡o拷锟斤拷锟斤拷锟斤拷锟睫凤拷锟斤拷写锟侥★拷
默锟斤拷锟斤拷锟斤拷拢锟�Yaf_Loader 锟秸硷拷锟斤拷锟斤拷library(锟洁定锟斤拷慕疟锟�)锟斤拷锟斤拷锟斤拷锟� php.ini(yaf.library)锟斤拷锟斤拷锟�global library directory之锟叫★拷
锟斤拷锟斤拷锟斤拷锟绞癸拷锟� Yaf_Loader 锟斤拷锟斤拷锟斤拷锟斤拷锟洁(锟解)锟斤拷锟斤拷锟斤拷锟斤拷application.ini锟斤拷 默锟斤拷锟斤拷锟斤拷拢锟斤拷锟斤拷锟� application.directory . "/libraray"锟斤拷锟斤拷 锟斤拷锟斤拷要使锟斤拷 Yaf_Loader::registerLocalNameSpace() 注锟结本锟斤拷锟斤拷前缀锟斤拷
锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷一些锟斤拷锟接o拷锟斤拷锟斤拷 APPLICATION_PATH 锟斤拷 application.directory锟斤拷锟斤拷
Example #1 Config example
// Assuming the following configure in php.ini: yaf.libraray = "/global_dir" //Assuming the following configure in application.ini application.libraray = APPLICATION_PATH "/library"
Example #2 注锟结本锟斤拷锟斤拷锟斤拷锟秸硷拷
<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
public function _initLoader($dispatcher) {
Yaf_Loader::getInstance()->registerLocalNameSpace(array("Foo", "Bar"));
}
?>
Example #3 锟斤拷锟斤拷锟斤拷
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
Example #4 锟斤拷锟斤拷锟斤拷锟斤拷锟秸硷拷锟斤拷
class \Foo\Bar\Dummy => // APPLICATION_PATH/library/Foo/Bar/Dummy.php class \FooBar\Bar\Dummy => // /global_dir/FooBar/Bar/Dummy.php
锟斤拷锟斤拷芑锟阶拷獾斤拷锟斤拷锟斤拷募锟斤拷锟斤拷锟斤拷值锟斤拷锟斤拷锟侥革拷谴锟叫达拷模锟斤拷锟斤拷锟斤拷通锟斤拷锟斤拷php.ini锟斤拷锟斤拷锟斤拷 yaf.lowcase_path = On 锟斤拷锟斤拷锟斤拷锟斤拷小写锟斤拷
Yaf_Loader 也锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟組VC锟洁,锟斤拷应锟侥癸拷锟斤拷锟斤拷锟铰o拷
Example #5 MVC锟斤拷锟斤拷锟斤拷锟斤拷锟�
Controller Classes => // APPLICATION_PATH/controllers/ Model Classes => // APPLICATION_PATH/models/ Plugin Classes => // APPLICATION_PATH/plugins/
Example #6 MVC 锟斤拷锟斤拷锟斤拷
Controller Classes => // ***Controller Model Classes => // ***Model Plugin Classes => // ***Plugin
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
默锟斤拷锟斤拷锟斤拷拢锟斤拷锟斤拷锟街碉拷锟� application.directory . "/library"锟斤拷 锟斤拷锟斤拷锟酵拷锟斤拷薷锟絘pplication.ini(application.library)锟斤拷锟竭碉拷锟斤拷 Yaf_Loader::setLibraryPath() 锟侥憋拷锟斤拷锟斤拷