【发布时间】:2018-07-14 16:15:03
【问题描述】:
我正在开发一个 CodeIgniter 3.1.4 项目,并且知道我可以使用 MY_ 前缀库类来扩展系统库。
这很好,可以按预期工作,但我希望能够根据当前环境或 DotEnv 值确定正在使用的类 (我已经有一个运行良好的 DotEnv 库).
生产站点使用服务器“sendmail”发送电子邮件,我希望能够在开发中使用 MailGun(或其他),允许我在发送之前覆盖 'to' 值以允许安全开发利用像数据集一样的产品。
在 Laravel 中可以做到这一点,您可以使用 .env 的 MAIL_DRIVER=mailgun 和 MAIL_TO_ADDRESS=x@y.com 将所有出站邮件强制发送到一个地址以进行开发。
我确信这一定是可能的,但我缺乏 CI 方面的经验以及我应该将其实施到框架中的什么地方,这让我很失望。
【问题讨论】:
-
谢谢 - 我已经通过了这两个,它只概述了如何根据环境指定不同的配置......我需要能够基于动态覆盖核心系统库环境,不加载不同的... CI强制您使用基于 MY_ 的文件/类名来覆盖基本文件名,我无法弄清楚如何仅动态加载基于 env 的文件/类名...因为它们单独存在于目录中过载。 =(
-
但在 MY_ 中,您可以检查您拥有的环境并为您的电子邮件创建 2 个不同的配置
-
我想过——在使用
MY_Email.php类作为基于env定义的服务在幕后需要的实际真实类的工厂——但你不能有两个 MY 类覆盖电子邮件一 - 所以你会有一个 MASSIVE MY_Email 类,每个服务都有开关......感觉很讨厌 -
在 config/email.php 中为您的电子邮件进行 2 种不同的设置
标签: php codeigniter codeigniter-3