日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > ZendFramework > Zend Framework教程-Autoloading使用方法

Zend Framework教程-Autoloading使用方法

來源:程序員人生   發布時間:2014-01-28 23:41:45 閱讀次數:3572次

通常,只需將需要引入包含類,然后實例化它即可。由于Zend_Loader_Autoloader采用的單例模式,可以使用getInstance()方法來獲取一個實例。

require_once 'Zend/Loader/Autoloader.php';Zend_Loader_Autoloader::getInstance();

默認情況下,可以加載命名空間前綴為"Zend_"或 "ZendX_"的任何類,只要確保已經指定include_path。

如果想使用其他的命名空間前綴?最好的,最簡單的方法是調用registerNamespace() 方法。您可以通過傳遞一個單一的命名空間前綴,或一個數組:

require_once 'Zend/Loader/Autoloader.php';$loader = Zend_Loader_Autoloader::getInstance();$loader->registerNamespace('Foo_');$loader->registerNamespace(array('Foo_', 'Bar_'));

或者,你可以把Zend_Loader_Autoloader作為一個“備用”自動加載器。這意味著如果命名空間無論是否定義,都會嘗試自動加載。

$loader->setFallbackAutoloader(true);
(注意:這種方式是不推薦的,盡量不要使用)。


 Zend_Loader_Autoloader的內部實現是使用 Zend_Loader::loadClass() 加載類的。該方法的使用 include() 來嘗試加載給定的類文件。 include()將返回一個布爾值,如果沒有成功返回FALSE - ??而且還發出PHP警告。 可能會導致以下問題:

如果啟用了display_errors,警告將包含在輸出中。

根據你所配置的error_reporting級別,它也可以輸出到日志中。

可以禁止這些錯誤消息,具體如下:(但注意,display_errors啟用時,錯誤日志將始終顯示。)

$autoloader->suppressNotFoundWarnings(true);




選擇一個Zend Framework的版本

ZendFramework/|-- 1.9.2/|   |-- library/|-- ZendFramework-1.9.1-minimal/|   |-- library/|-- 1.8.4PL1/|   |-- library/|-- 1.8.4/|   |-- library/|-- ZendFramework-1.8.3/|   |-- library/|-- 1.7.8/|   |-- library/|-- 1.7.7/|   |-- library/|-- 1.7.6/|   |-- library/

$autoloader->setZfPath($path, 'latest');

$autoloader->setZfPath($path, '1.8');

$autoloader->setZfPath($path, '1.7.7');

也可以使用配置文件

[production]autoloaderZfPath = "path/to/ZendFramework"autoloaderZfVersion = "1.7.7" [qa]autoloaderZfVersion = "1.8" [development]autoloaderZfVersion = "latest"

Autoloader接口


注:命名空間前綴和PHP命名空間
PHP5.3已經發布。該版本中,PHP現在已經正式支持命名空間。
然而,Zend Framework的命名空間和PHP 5.3的命名空間完全不同的。 Zend Framework中,提到的“命名空間”,是指一個類前綴。例如,所有的Zend Framework的類名稱的前綴“Zend_”。 這是我們指定的“命名空間”。
在Zend Framework 2.0.0使用了原生的PHP命名空間。

 

自動加載器除了能夠指定任意回調以外,Zend Framework還定義了一個需要自動加載類實現的接口Zend_Loader_Autoloader_Interface:



interface Zend_Loader_Autoloader_Interface{    public function autoload($class);}


如果您希望在Zend Framework中使用自定義的自動加載器,可以使用 Zend_Loader_Autoloader的 pushAutoloader()和unshiftAutoloader()方法。

通過這些方法將在Zend Framework的內部自動裝載器之后追加或之前使用自定義的加載器。

   每個方法接受一個可選的第二個參數,類的命名空間前綴。自動加載器只查找給定的類前綴。如果不是指定的類前綴,將跳過自動加載器 , 這可能是一種性能改進方式。


當使用這個接口時,你需要傳遞類實例到Zend_Loader_Autoloader類的pushAutoloader()和unshiftAutoloader()方法,具體如下:


// Append function 'my_autoloader' to the stack,// to manage classes with the prefix 'My_':$loader->pushAutoloader('my_autoloader', 'My_'); // Prepend static method Foo_Loader::autoload() to the stack,// to manage classes with the prefix 'Foo_':$loader->unshiftAutoloader(array('Foo_Loader', 'autoload'), 'Foo_');



// Assume Foo_Autoloader implements Zend_Loader_Autoloader_Interface:$foo = new Foo_Autoloader(); $autoloader->pushAutoloader($foo, 'Foo_');


Zend_Loader_Autoloader的相關方法



Zend_Loader_Autoloader Methods
MethodReturn ValueParametersDescription
getInstance()Zend_Loader_AutoloaderN/A

獲取實例

resetInstance()voidN/A

重置Zend_Loader_Autoloadersingleton實例的狀態,恢復它的原始狀態,注銷所有的自動加載器回調和所有注冊的命名空間。

autoload($class)string|FALSE
  • $class,required. A string class name to load.

試圖加載一個類。

setDefaultAutoloader($callback)Zend_Loader_Autoloader
  • $callback,required.

指定默認的加載器回調

getDefaultAutoloader()callbackN/A

獲取默認的加載器接口;默認是Zend_Loader::loadClass().

setAutoloaders(array $autoloaders)Zend_Loader_Autoloader
  • $autoloaders,required.

設置在自動加載器棧使用具體的自動加載器列表。自動加載器列表中的每個項目必須是PHPcallback。

getAutoloaders()ArrayN/A

 

getNamespaceAutoloaders($namespace)Array
  • $namespace,required

獲取所有已注冊的自動加載器來加載一個特定的的命名空間。

registerNamespace($namespace)Zend_Loader_Autoloader
  • $namespace,required.

注冊命名空間. If$namespace is a string, it registers that namespace; if it's an array of strings, registers each as a namespace.

unregisterNamespace($namespace)Zend_Loader_Autoloader
  • $namespace,required.


getRegisteredNamespaces()ArrayN/A


suppressNotFoundWarnings($flag = null)boolean|Zend_Loader_Autoloader
  • $flag,optional.

錯誤提示

setFallbackAutoloader($flag)Zend_Loader_Autoloader
  • $flag,required.

 

isFallbackAutoloader()BooleanN/A

 

getClassAutoloaders($class)Array
  • $class,required.

 

unshiftAutoloader($callback, $namespace = '')Zend_Loader_Autoloader
  • $callback,required. A valid PHPcallback

  • $namespace,optional. A string representing a class prefix namespace.

 

pushAutoloader($callback, $namespace = '')Zend_Loader_Autoloader
  • $callback,required. A valid PHPcallback

  • $namespace,optional. A string representing a class prefix namespace.

 

removeAutoloader($callback, $namespace = '')Zend_Loader_Autoloader
  • $callback,required. A valid PHPcallback

  • $namespace,optional. A string representing a class prefix namespace, or an array of namespace strings.




生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产一区二区在线免费视频 | 日本精品久久 | 精品久久精品 | 麻豆视频传媒入口 | 亚洲国产精品成人va在线观看 | 国产成人精品一区二区三区 | 亚洲一区二区视频 | 亚洲综合成人在线 | 天堂成人国产精品一区 | 九九热在线视频观看这里只有精品 | 国产精品欧美一区二区三区 | 日韩欧美高清 | 美日韩在线观看 | 91香蕉视频在线观看免费 | 麻豆传媒在线播放 | 激情成人黄色 | 免费看羞羞的视频 | 亚洲高清视频在线 | 农村黄性色生活片 | 99re在线视频 | 亚洲视频精品 | 欧美电影一区 | 久久久久国产精品 | 日韩免费在线视频 | 一世独尊动漫在线观看 | 国产乱色国产精品播放视频 | 男人的av| 精品2区 | 日本在线视频一区二区三区 | 一区二区三区在线观看免费视频 | 久久中文字幕免费视频 | 99久在线视频 | 欧美日韩中文字幕在线视频 | 国产欧美一区二区三区在线看 | 精品第一页 | 91视频一区二区三区 | 日韩在线不卡 | 国产剧情在线 | 精品久久久久久久久久久久久久久 | 99久久精品国产毛片 | 中文字幕亚洲综合久久久软件 |