Codeigniter 如何设置 API 键和资源 url 以便在应用程序中轻松访问

Codeigniter how to set API keys and Resource urls for easy access in applications

我正在尝试通过将所有配置放在一个位置以便于访问来清理我的网站。

我有许多不同的配置依赖项,例如 PayPal 和 Stripe public/private 和 sandbox/live 键以及许多链接,例如google 重新验证链接。

我不想将这些密钥散布在我的应用程序中,然后如果我想从沙盒转为 live,则需要去寻找它们。

我正在尝试像这样在 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'];

这几乎与将密钥复制到我需要的地方(一两个地方)一样多。那么有没有更简单的方法呢?

问题二:

是否可以像上面的示例那样将我的网址放入配置文件中?或者将我的 URL 定义为常量(在常量文件中)然后简单地将它们作为常量访问而不是写出 $this->config->item('bootstrap_link')

会更好吗

谢谢。

由于我是新手无法发表评论:/ .

我先从问题2说起,这样留着也行。但是 stripe、paypal 是支付网关,如 Yogesh 所说,最好将其存储在数据库中并检索使用 it.It 如果您想提供用户对其进行编辑,它也会派上用场。

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

为了轻松检索数据,您可以使用 helper 函数。

<?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 并照常加载。有关相关助手的更多信息Info about helper

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

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

1 - 在 application/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 api

2 - 在控制器文件中加载您的配置文件并将数据集中到视图中,如下所示...

    $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>

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