Как получить доступ к статической переменной, объявленной в контроллере из библиотеки в Codeigniter?

Я хочу получить доступ к статической переменной, объявленной в Codeigniter Controller, и хочу использовать ее в библиотеке. Вот код

Расположение контроллера & Название:

Название : Console

Место нахождения : ./application/controllers/Console.php

Расположение библиотеки & Название:

Название : Api

Место нахождения : ./applications/libraries/Api.php


Console.php

class Console extends CI_Controller {

public static $access_agents = [
'2017_app_v1.0',
'2017_api_v1.0'
];

public static $developer_secret = [
'HTTP_X_DEVELOPER_SECRET' => 'XYZ'
];

}

Api.php

class Api
{

public static $CI;

public function __construct()
{
self::$CI = & get_instance();
}

public static function print_services_list($list)
{
if(self::get_custom_header(##### CALL_STATIC_VARIABLE_HERE ######))
$array = [
'status' => '200',
'message' => 'OK',
'text' => "List of APIs under this Interface gateway.",
'data' => $list
];
self::print_json_array($array);
}
}

Как я уже описал, я хочу получить доступ к статической переменной, объявленной в Console Class, сюда, где я использовал ##### CALL_STATIC_VARIABLE_HERE ######

Я пробовал такие вещи: (Я знал, что это не сработает, вероятно, и я был прав)

Console::$developer_secretНЕ РАБОТАЕТ

self::$CI->Console::$developer_secretНЕ РАБОТАЕТ

self::$CI->Console->$developer_secretНЕ РАБОТАЕТ

-1

Решение

Почему бы вам не поместить эти переменные в файл конфигурации?

Создать файл PHP в application/config папка. Назовите это как хотите. Затем поместите ваши переменные в файл, как показано ниже.

<?php
$config['static_var']['your-static-variable-name'] = 'Whatever value you want to initialize'

Если вы хотите добавить другую переменную

<?php
$config['static_var']['your-another-static-variable-name'] = 'Whatever value you want to initialize'

После сохранения файла загрузите файл конфигурации в свою библиотеку.

class Api
{
protected $CI;
protected $my_var;
protected $my_another_var;

public function __construct()
{
$this->CI =& get_instance();
$this->CI->load->config('your config file name');
$this->my_var = $this->CI->config->item('your-static-variable-name','static_var');
$this->my_another_var = $this->CI->config->item('your-another-static-variable-name','static_var');
}
}

Сейчас использую $myvar где угодно. Надеюсь, это поможет вам.

0

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

Других решений пока нет …

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