The Yaf_Loader class

(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
��PHP 5.3�У������ʹ�������ռ䣺

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/
Yaf ͨ��ʶ��һ����ĺ�׺�������Ĭ�ϵģ���Ҳ����ͨ���ı������� yaf.name_suffix ��������Ϊͨ��ǰ׺ʶ�����������Ƿ���һ��MVC�ࣺ

Example #6 MVC ������

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
��Ŀ¼���� yaf.lowcase_path ��Ӱ�졣

��ժҪ

Yaf_Loader {
/* ���� */
protected $_local_ns ;
protected $_library ;
protected $_global_library ;
static $_instance ;
/* ���� */
public autoload ( void ) : void
public clearLocalNamespace ( void ) : void
private __clone ( void ) : void
private__construct ( void )
public static getInstance ( void ) : void
public getLibraryPath ([ bool $is_global = false ] ) : Yaf_Loader
public getLocalNamespace ( void ) : void
public static import ( void ) : void
public isLocalName ( void ) : void
public registerLocalNamespace ([ mixed $prefix ] ) : void
public setLibraryPath ( string $directory [, bool $is_global = false ] ) : Yaf_Loader
private __sleep ( void ) : void
private __wakeup ( void ) : void
}

����

_local_ns

_library

Ĭ������£�����ֵ�� application.directory . "/library"�� �����ͨ���޸�application.ini(application.library)���ߵ��� Yaf_Loader::setLibraryPath() �ı�����

_global_library

_instance

Table of Contents