drakonli / php-imap
PHP OOP 库,通过 IMAP 扩展访问 POP3/IMAP/NNTP 邮箱
dev-master
2016-12-11 17:25 UTC
Requires
- php: >=5.6.0 <7.0.0
- ext-imap: *
- ext-spl_types: *
- drakonli/php-utils: dev-master
- symfony/config: ^3.0.0
- symfony/dependency-injection: ^3.0.0
- symfony/yaml: ^3.0.0
Requires (Dev)
- php-mock/php-mock-phpunit: dev-master
- phpspec/prophecy: ~1.0
- phpunit/phpunit: 5.5.*
This package is not auto-updated.
Last update: 2024-09-14 19:47:34 UTC
README
PHP IMAP 是什么?
基本上,它是 IMAP 库的一个面向对象的包装。它旨在用于面向对象的工程,并提供它自己的依赖注入容器(Dependency Injection Symfony 组件)。
该项目使用 SPL 类型,因为分支项目是为 PHP 7 之前的 PHP 版本创建的,因此没有返回类型和标量提示。
要求
如何使用
以下示例来自我的 php-imap 示例 存储库
- 创建连接
- 将服务注入到您的客户端(如 RepositoryInterface)。您可以在 此处 找到所有服务,以及它们的 依赖配置。
- 将实例化的连接传递给服务以执行任何类型的 IMAP 操作。
现在,最有趣的部分是如何创建连接。有多种方法可以实现。这些方法取决于您希望如何实例化连接方法以及您对 标志、选项 和 参数 及其值的了解程度。
- 如果您对它们一无所知,您可能只想使用 工厂和构建器 来创建自己的连接和连接配置。为此,我建议为每个您想创建 IMAP 连接的服务创建一个实现 PreDefinedConnectionFactoryInterface 的 工厂(因为连接设置基本上是相同的,只有登录密码和邮箱地址不同)。例如,Gmail。
- 如果您了解它们,请使用 依赖注入工厂方法 来创建连接并将其直接注入到客户端。为此,您需要使用 ConnectionFactoryInterface::createConnectionNonStrict。请注意,尽管该接口非严格,但内部会实例化 SplTypes 和 Flags-、Params-、Options- 集合。
-
您还可以使用ConnectionFactoryInterface在客户端直接使用严格(构建器、工厂等)和非严格(常量)语法创建连接。但是,我建议不要这样做:)
- 这里是一个非严格的例子:NonStrictFactoryMethodEmailDisplayer
- 服务:services.yml
- 这里有一个使用构建器的例子:BuildersEmailDisplayer
- 服务:services.yml
并查看parameters.yml文件,它将帮助您更好地理解服务配置。
祝您玩得开心:)