我试图清理我的网站,把我的所有配置放在一个地方,以方便访问。
我有许多不同的配置依赖项,例如,PayPal和Stripe公共/私有和沙箱/活键,以及一些链接,例如google链接。
我不想在我的应用程序中传播这些密钥,如果我想从沙箱到生活的话,我需要去寻找它们。
我试图在CodeIgniter config.php文件中定义API密钥和大多数使用的链接,如下所示.
$config['stripe_live'] = [
'secret' => 'secret_key_xyz',
'private' => 'private_key_xyz',
]
$config['stripe_sandbox'] = [
'secret' => 'secret_key_xyz',
'private' => 'private_key_xyz',
]
$config['paypal'] = [
'secret' => 'secret_key_xyz',
'private' => 'private_key_xyz',
]
$config['recaptcha'] = [
'site_key' => 'xyz_one_two_three',
'secret_key' => 'xyz_one_two_three',
];
$config['jquery'] = [
['jquery_link'] => base_url() . 'Public/js/jquery.js',
]
$config['bootstrap'] = [
['bootstrap_link'] => base_url() . 'Public/js/jquery.js',
]
$config['fontawesome'] = [
]
$config['google_fonts'] = [
];
$config['groupworld'] = [
'groupworld_api' => 'api_key_xyz';
];问题一:
如果我想访问我的Stripe现场私钥,我必须写.
$stripe_live = $this->config->item('stripe_live');
$stripe_live['public_key'];这几乎和复制到我需要它的地方(一两个地方)的钥匙一样多。那么还有更简单的方法吗?
问题二:
是否可以像上面的示例一样将我的urls放在配置文件中?还是最好将我的URL定义为常量(在常量文件中),然后以常量形式访问它们,而不是写出$this->config->item('bootstrap_link')
谢谢。
发布于 2016-09-26 12:06:36
在查看了CodeIgniter Config文档之后,我至少为我的API配置设置提供了以下解决方案,在下面的示例中,我使用的是。
1-在应用程序/config文件夹中创建一个新文件,并将其命名为您想要的.例如api_config.php
在这个文件中放置API键,如下所示:
// stripe api
$config["stripe_live_public_key"] = "public_key_xyz";
$config["stripe_live_private_key"] = "public_key_xyz";
$config["stripe_sandbox_public_key"] = "public_key_xyz";
$config["stripe_sandbox_private_key"] = "public_key_xyz";
// paypal api
$config["paypal_live_public_key"] = "public_key_xyz";
$config["paypal_live_private_key"] = "public_key_xyz";
$config["paypal_sandbox_public_key"] = "public_key_xyz";
$config["paypal_sandbox_private_key"] = "public_key_xyz";
// recaptcha api
$config["recaptcha_api_url"] = 'https://www.google.com/recaptcha/api.js';
$config["recaptcha_verification_url"] = "https://www.google.com/recaptcha/api/siteverify";
$config["recaptcha_public_key"] = "lfgksl;dfg;kkkkdsjfhskjfhkjsdhfjshjksjdh";
$config["recaptcha_private_key"] = "sfkljslfjsjfahjjjjjjhjhsdfjskhajkakkajdj";
// groupworld api
// phpmailer api2-在控制器文件中加载配置文件并将数据海量到视图中,如下所示.
$this->config->load('api_config');
$data['recaptcha_api_url'] = $this->config->item('recaptcha_api_url');
$data['recaptcha_public_key'] = $this->config->item('recaptcha_public_key');在视图文件中只显示你的数据.
<script src="<?php echo $recaptcha_api_url; ?>"></script>
<div class="g-recaptcha" data-sitekey="<?php echo $recaptcha_public_key; ?>"></div>现在,要在多个地方更改配置数据,只需转到api_config.php文件并粘贴到新的键中即可。
发布于 2016-09-26 11:18:37
因为我是个新手,所以不能发表评论。
我将从问题2开始,保持这样的状态是可以的。但是,paypal是支付网关,如Yogesh所说,将其存储在db中是很好的,如果您想提供用户编辑它,使用it.It的检索也会派上用场。
对于js,css链接,您可以将它们放在类似于'includefiles.php‘的视图中,并在加载视图时将其加载到所有页面中。
为了方便地检索数据,可以使用助手函数。
<?php
//paymentdetail_helper
function getpaymentdetailhelper(someid or gateway name as arg eg.$id){
$ins=& get_instance();
$ins->load->database();
//your queries $ins->db->query();
return $data;
}
?>将其保存在应用程序/帮助程序中,作为paymentdetail_helper.php,并像往常一样加载它。关于Info about helper问题中的帮助者的更多信息
这是我的主意。)欢迎你提出建议
https://stackoverflow.com/questions/39700952
复制相似问题