首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置API键和资源urls以便于在应用程序中访问

问如何设置API键和资源urls以便于在应用程序中访问
EN

Stack Overflow用户
提问于 2016-09-26 10:54:12
回答 2查看 2.4K关注 0票数 2

我试图清理我的网站,把我的所有配置放在一个地方,以方便访问。

我有许多不同的配置依赖项,例如,PayPal和Stripe公共/私有和沙箱/活键,以及一些链接,例如google链接。

我不想在我的应用程序中传播这些密钥,如果我想从沙箱到生活的话,我需要去寻找它们。

我试图在CodeIgniter config.php文件中定义API密钥和大多数使用的链接,如下所示.

代码语言:javascript
复制
$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现场私钥,我必须写.

代码语言:javascript
复制
$stripe_live = $this->config->item('stripe_live');

$stripe_live['public_key'];

这几乎和复制到我需要它的地方(一两个地方)的钥匙一样多。那么还有更简单的方法吗?

问题二:

是否可以像上面的示例一样将我的urls放在配置文件中?还是最好将我的URL定义为常量(在常量文件中),然后以常量形式访问它们,而不是写出$this->config->item('bootstrap_link')

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-26 12:06:36

在查看了CodeIgniter Config文档之后,我至少为我的API配置设置提供了以下解决方案,在下面的示例中,我使用的是。

1-在应用程序/config文件夹中创建一个新文件,并将其命名为您想要的.例如api_config.php

在这个文件中放置API键,如下所示:

代码语言:javascript
复制
// 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-在控制器文件中加载配置文件并将数据海量到视图中,如下所示.

代码语言:javascript
复制
    $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');

在视图文件中只显示你的数据.

代码语言:javascript
复制
<script src="<?php echo $recaptcha_api_url; ?>"></script>   
<div class="g-recaptcha" data-sitekey="<?php echo $recaptcha_public_key; ?>"></div>

现在,要在多个地方更改配置数据,只需转到api_config.php文件并粘贴到新的键中即可。

票数 2
EN

Stack Overflow用户

发布于 2016-09-26 11:18:37

因为我是个新手,所以不能发表评论。

我将从问题2开始,保持这样的状态是可以的。但是,paypal是支付网关,如Yogesh所说,将其存储在db中是很好的,如果您想提供用户编辑它,使用it.It的检索也会派上用场。

对于js,css链接,您可以将它们放在类似于'includefiles.php‘的视图中,并在加载视图时将其加载到所有页面中。

为了方便地检索数据,可以使用助手函数。

代码语言:javascript
复制
<?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问题中的帮助者的更多信息

这是我的主意。)欢迎你提出建议

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39700952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档