Я не знаю, как работает codeigniter, но, возможно, вы могли бы сделать этот метод статичным и использовать его следующим образом:
class Multi_language_model extends MY_Model
{
private static $data = [];
public function get_multi_lang()
{
return [
'menu_delivery' => $this->lang->line('menu_delivery'),
'menu_quotations' => $this->lang->line('menu_quotations'),
'menu_customer_service' => $this->lang->line('menu_customer_service'),
];
}
public static function multi_lang()
{
if (empty(self::$data)) {
self::$data = (new self)->get_multi_lang();
}
return self::$data;
}
}
Затем, когда вам это нужно, вы можете использовать $data = Multi_language_model::multi_lang()
;
Тем не менее, я не вижу ничего плохого в том, чтобы вводить его из контейнера везде, где это необходимо.Это было бы намного проще для создания тестов.
Кстати, вам не нужно перезаписывать конструктор класса, если для расширяющего класса нет пользовательских параметров.Вы можете безопасно удалить:
public function __construct() {
parent::__construct();
}