Codeigniter, как установить ключи API и URL ресурсов для легкого доступа в приложениях

Я пытаюсь очистить свой сайт, разместив все свои конфигурации в одном месте для быстрого доступа.

У меня много разных конфигурационных зависимостей, например, открытые / закрытые ключи PayPal и Stripe, а также ключи песочницы / live, а также ряд ссылок, например, ссылки Google recaptcha.

Я не хочу распространять эти ключи по моему приложению, а затем мне нужно охотиться за ними, если я хочу перейти из песочницы, чтобы жить, например.

Я пытаюсь определить мои ключи API и наиболее часто используемые ссылки в файле CodeIgniter config.php следующим образом …

$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-адреса в конфигурационный файл, как в моем примере выше? Или было бы лучше определить мои URL-адреса как константы (в файле констант), а затем просто получить к ним доступ как константы, а не записывать $this->config->item('bootstrap_link')

Благодарю.

1

Решение

Как я новичок не могу комментировать: /.

Я начну с вопроса 2. Это нормально, так держать. Но полоса, paypal — это платежные шлюзы, и будет хорошо хранить их в дБ, как сказал Йогеш, и извлекать их для использования. Это также пригодится, если вы захотите предоставить пользователю возможность его редактировать.

Для ссылок 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 и загрузите как обычно. больше информации о помощниках в вопросеИнформация о помощнике

Это моя идея. 🙂 Добро пожаловать с предложениями

1

Другие решения

Изучив документацию по CodeIgniter Config, я нашел следующее решение, по крайней мере, для своих настроек конфигурации API, в приведенном ниже примере я использую API Google recaptcha.

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 и вставьте новые ключи.

1

По вопросам рекламы [email protected]