添加和访问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