添加和訪問ZF庫的最佳實踐是什麼?我試圖添加phpmailer,我應該只是將它添加到庫文件夾?我現在如何訪問此文件,因爲它不使用ZF命名約定。謝謝!想要添加phpmailer庫到Zend Framework安裝
回答
簡單的解決方案是將PHPMailer類(和任何其他文件)放入庫文件夾中。
作爲PHPMailer的,似乎應使用不會到磁帶自動加載(
class.phpmailer.php
)以及適用的文件名約定,我只是需要在類文件在你的引導
然後,您應該能夠創建一個新的
PHPMailer
類在您的應用程序的任何地方。
您可以嘗試註冊一個自動加載器,將類名稱PHPMailer
映射到class.phpmailer.php
然而IMO不值得付出努力。
UPDATE
試想想它,我會忽略引導部分和根本要求的類時,它的需要(比如,在您的控制器)。由於文件位於包含路徑中,所有您需要的是
require_once 'class.phpmailer.php';
$mailer = new PHPMailer;
將相關文件放入庫文件夾中。在Bootstrap
class My_Loader_Autoloader_PhpMailer implements Zend_Loader_Autoloader_Interface
{
/**
* Autoload a class
*
* @param string $class
* @return mixed
* False [if unable to load $class]
* $class [if $class is successfully loaded]
*/
public function autoload($class)
{
if ('PHPMailer' === $class) {
include 'class.phpmailer.php';
return $class;
}
return false;
}
}
那麼這個自動加載磁帶機添加到ZF自動加載堆棧,大概是::然後,你可以創建一個自動加載磁帶機是這樣的:
在文件library/My/Loader/Autoloader/PhpMailer.php
protected function _initAutoloader()
{
$autoloader = Zend_Loader_Autoloader::getInstance();
// The following is not necessary if My_ is already a registered namespace
// in the ZF autoloader
require 'My/Loader/Autoloader/PhpMailer.php';
$autoloader->pushAutoloader(new My_Loader_Autoloader_PhpMailer());
}
我已經對於更多涉及傳統類命名/映射的示例,可以這樣做,這非常有幫助。
所以你需要兩個類(自動加載器和PHPMailer)來加載一個類?對於單級PHPMailer庫,我不認爲這是值得的。仍然+1得到好的答案 – Phil 2011-05-05 03:37:11
@Phil:對,雖然這個自動加載器類非常小,所以它可以節省不必使用那些未使用的請求的更大的PHPmailer類。另一方面,自動裝載機還有額外的開銷。就像你說的,在這種情況下可能不值得付出努力;主要試圖展示這項技術。感謝您的支持。乾杯! ;-) – 2011-05-05 04:07:52
- 1. 安裝Zend Framework
- 2. 如何在不安裝Zend Framework的情況下使用Zend庫
- 3. 想要使用zend Framework存儲會話
- 4. Zend Framework安裝 - 請問在Linux下的Apache已經安裝的Drupal需要的Zend安裝
- 5. Zend Framework - 將功能添加到$ this
- 6. 如何在Windows上安裝Zend Framework
- 7. 在cPanel上安裝Zend Framework 2(Skeleton)
- 8. 安裝舊版本的Zend Framework?
- 9. 需要Zend Framework庫中的類
- 10. 我爲PHP安裝了Eclipse,但想要添加Java/JUnit
- 11. .Net Framework安裝
- 12. 從Zend Framework遷移到Zend Framework 2 1
- 13. 添加Maven安裝到Eclipse
- 14. 如何使用Zend Framework 3添加cookie?
- 15. Zend Framework添加CSS文件的問題
- 16. Zend Framework導航 - 動態添加參數
- 17. 向Zend Framework添加第三方PHP類
- 18. Zend Framework Url View Helper默認添加「id」
- 19. Zend Framework URL路由不添加域
- 20. Zend Framework headMeta() - 不添加關鍵字
- 21. 安裝.NET Framework
- 22. Zend Framework配置裝飾器
- 23. 結論:不要安裝laravel/framework v4.2.22
- 24. 安裝需要.NET Framework 3.5版
- 25. 想要將基本安全性添加到WCF服務
- 26. Zend Framework vs Zend Framework 2
- 27. Zend Framework和zend庫的位置
- 28. .Net Framework安裝包括MSBuild?
- 29. Yum安裝不添加庫文件
- 30. 想要將數組值添加到textarea
這些庫應該由同一系統上的其他應用程序使用還是僅由您的應用程序使用?你在使用哪種操作系統? – hakre 2011-05-04 21:41:06
嗨,好的,thx的迴應。該庫只需要我的應用程序使用,並且我使用的是Windows Vista,但爲什麼操作系統很重要? – blacktie24 2011-05-04 21:46:40
如果操作系統爲該庫提供了一個包,OS可能很重要。 Vista沒有。我傾向於建議將其添加到庫文件夾中,並將文件包含在引導程序中,但您可能需要考慮將其添加到[autoloader]中(http://framework.zend.com/manual/1.11/en/) zend.loader.autoloader.html)。但我不是一個ZF專家,手頭上有一個快速的例子。 – hakre 2011-05-04 21:55:05