(Yaf >=1.0.0)
Yaf_Loader ��ΪYaf�ṩ���Զ����ع��ܵ�ȫ����������
�ڵ�һ��ʹ�õ�ʱ������ Yaf_Application ��ʵ���� Yaf_Loader ʵ���˵���ģʽ����ʹ��spl_autoloadע�����Լ��� ͨ�� Yaf_Loader::getInstance() ��������ʵ��
Yaf_Loader ����һ����ʱ��������һ�Σ����ʧ���ˣ� ����IJ�����ȡ����yaf.use_spl_auload�� ������������ΪOn��Yaf_Loader::autoload() ���᷵��FALSE�� �Ӷ��ѻ����ø��������Զ����ع��ܡ�������������ΪOff��Ĭ�ϣ��� Yaf_Loader::autoload() ���᷵��TRUE�� ����Ҫ���ǽ����׳�һ���dz����õľ��棨�����ҳ�һ�������ʧ�ܷdz����ã���
Note:
�뱣��yaf.use_spl_autoload���ֹرգ�������һЩlibrary���Լ���autoload���ƣ�����������д�ġ�
Ĭ������£�Yaf_Loader �ռ�����library(�ඨ��Ľű�)������� php.ini(yaf.library)�����global library directory֮�С�
�������ʹ�� Yaf_Loader ���������ࣨ�⣩��������application.ini�� Ĭ������£����� application.directory . "/libraray"���� ����Ҫʹ�� Yaf_Loader::registerLocalNameSpace() ע�᱾����ǰ��
������������һЩ���ӣ����� 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 Ҳ�����������MVC�࣬��Ӧ�Ĺ������£�
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"�� �����ͨ����application.ini(application.library)���ߵ��� Yaf_Loader::setLibraryPath() �ı�����