Php Codeigniter如何设置API键和资源URL,以便在应用程序中轻松访问
我试图通过将所有配置放在一个地方以便于访问来清理我的站点 我有许多不同的配置依赖项,例如,PayPal和Stripe公用/专用和沙盒/live密钥,以及许多链接,例如google recaptcha链接 例如,如果我想从沙盒走向生活,我不想在我的应用程序中散布这些密钥,然后需要去寻找它们 我试图在CodeIgniter config.php文件中定义我的API键和最常用的链接,如下所示Php Codeigniter如何设置API键和资源URL,以便在应用程序中轻松访问,php,codeigniter,dry,Php,Codeigniter,Dry,我试图通过将所有配置放在一个地方以便于访问来清理我的站点 我有许多不同的配置依赖项,例如,PayPal和Stripe公用/专用和沙盒/live密钥,以及许多链接,例如google recaptcha链接 例如,如果我想从沙盒走向生活,我不想在我的应用程序中散布这些密钥,然后需要去寻找它们 我试图在CodeIgniter config.php文件中定义我的API键和最常用的链接,如下所示 $config['stripe_live'] = [ 'secret' => 'secret_
$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';
];
$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');
问题一:
如果我想访问我的Stripe live私钥,我必须编写
$stripe_live = $this->config->item('stripe_live');
$stripe_live['public_key'];
这几乎和把钥匙复制到我需要的地方(一两个地方)一样多。那么有没有更简单的方法
问题二:
可以像上面的例子那样将我的URL放在配置文件中吗?或者最好将我的URL定义为常量(在常量文件中),然后将其作为常量访问,而不是写出$this->config->item('bootstrap\u link')
谢谢。因为我是新手,不能评论:/ 我将从问题2开始。保持这样没关系。但stripe、paypal是支付网关,如Yogesh所说,将其存储在db中并检索以使用它会很好。如果您想让用户编辑它,它也很方便 对于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;
}
?>
将其保存在application/helpers中作为paymentdetail_helper.php并像往常一样加载。有关相关帮助者的详细信息
这是我的主意欢迎您提出建议在阅读了CodeIgniter配置文档之后,我至少为我的API配置设置提出了以下解决方案,在下面的示例中,我使用的是google recaptcha API 1-在application/config文件夹中创建一个新文件,并随意调用它。。。e、 g.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 api
2-在控制器文件中加载配置文件并将数据聚集到视图中,如下所示
$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';
];
$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');
3-在视图文件中只显示您的数据
<script src="<?php echo $recaptcha_api_url; ?>"></script>
<div class="g-recaptcha" data-sitekey="<?php echo $recaptcha_public_key; ?>"></div>
为此,您可以将这些详细信息保存在数据库中,然后使用以下方法从数据库中提取这些详细信息并在配置中设置:$this->config->set_item('key','value');。如果仍然想询问比请评论有趣的解决方案,但出于我的目的,我将只设置这些键一次或两次,因此使用数据库使其动态化的麻烦对我来说有点远,如果我错过了更大的图片,请纠正我!如果是静态值,您可以使用CI根目录的index.php中的值创建一个超级全局文件,或者创建一个自定义核心文件,并确保扩展具有此功能的核心。虽然这只允许控制器调用函数。