Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php `加上`在电子邮件中有相同电子邮件的唯一版本它是如何工作的?管理生产和测试环境_Php_Ruby On Rails_Email_Production Environment_Test Environments - Fatal编程技术网

Php `加上`在电子邮件中有相同电子邮件的唯一版本它是如何工作的?管理生产和测试环境

Php `加上`在电子邮件中有相同电子邮件的唯一版本它是如何工作的?管理生产和测试环境,php,ruby-on-rails,email,production-environment,test-environments,Php,Ruby On Rails,Email,Production Environment,Test Environments,我有一个web应用程序,它的产品有数百个真实用户 我需要一个具有生产状态的测试环境,因为应用程序是数据驱动的,应用程序的状态由数据改变,如果不存在真实的用户数据,事情就无法测试 但是,由于它有真实的电子邮件,它在测试中的风险也很大,因为测试电子邮件可以传递给真实的用户 因此,我需要一种机制来将电子邮件更改为不真实的内容,但由于电子邮件字段是唯一的,我如何通过一个查询来更改所有电子邮件 我的同事建议一封包含+任何数字的电子邮件,例如rajat@gmail.com和rajat+27@gmail.co

我有一个web应用程序,它的产品有数百个真实用户

我需要一个具有生产状态的测试环境,因为应用程序是数据驱动的,应用程序的状态由数据改变,如果不存在真实的用户数据,事情就无法测试

但是,由于它有真实的电子邮件,它在测试中的风险也很大,因为测试电子邮件可以传递给真实的用户

因此,我需要一种机制来将电子邮件更改为不真实的内容,但由于电子邮件字段是唯一的,我如何通过一个查询来更改所有电子邮件

我的同事建议一封包含+任何数字的电子邮件,例如
rajat@gmail.com
rajat+27@gmail.com
将向同一封电子邮件发送电子邮件。

所以我写了一个查询

update users set email = CONCAT(CONCAT('rajat+',id),'@gmail.com')
现在我可以在测试环境中使用生产数据了

我的问题:

1) 它是如何工作的


2) 这是一个正确的方法吗??人们是如何管理测试和生产环境的?

我更喜欢在底层更改代码,而不是更改数据库。例如:

function sendEmail($to, ...) {
    if (APPLICATION_ENV != 'production') {
        $to = "dev@.....";
    }
    // continue ...
}

通过这种方式,您始终可以确保将收件人地址更改为测试地址,即使该地址来自不同的源,如表单。

我更喜欢更改低级别代码,而不是更改数据库。例如:

function sendEmail($to, ...) {
    if (APPLICATION_ENV != 'production') {
        $to = "dev@.....";
    }
    // continue ...
}
通过这种方式,您始终可以确保将收件人地址更改为测试地址,即使该地址来自不同的源(如表单)