Не могу загрузить пользовательскую библиотеку в Codeigniter 3 на рабочем сервере

Я просмотрел все существующие вопросы по этой проблеме, но так и не нашел ответа. Я работаю над сервером CentOS 7.

Вот моя пользовательская библиотека, которую я помещаю в приложения/библиотеки.

Simas_Bridge.php

class Simas_Bridge
{
  private $CI;
  private $client;
  public function __construct()
  {
    $this->CI = &get_instance();
    $this->CI->load->helper(['file']);
    $this->client = new \GuzzleHttp\Client();
  }
  public function get_dokumen_drh($nip = null)
  {
     ///.... Some Code
  }
}

и я вызываю библиотеку из своего контроллера вот так

Форма.php

class Form extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
        $this->load->library('simas_bridge');
    }

    public function uploadFile(){
        $this->simas_bridge->get_dokumen_drh('xxxxxxx'); >>>> The Error happens here!!!
    }
}

Я попытался изменить способ вызова библиотеки на $this->load->library('Simas_Bridge') и вызвать метод с помощью $this->Simas_Bridge->get_dokumen_drh(). Попробуйте изменить разрешение на 750 для файла Simas_Bridge.php на сервере. Это все еще не работает. Всегда получайте эту ошибку

Unable to load the requested class: Simas_Bridge

Что может быть не так?

Документы проверить пробовали? codeigniter.com/userguide3/general/… — в частности «Имена классов и имена файлов должны совпадать».

Don't Panic 17.08.2024 08:49

@Don'tPanic, я попробовал это с SimasBridge, все равно получил ту же ошибку

Anang Hariyanto N 18.08.2024 07:42

Как вы пытались загрузить его, когда исправили имя? Вы также пытались использовать соглашение, указанное в документации, без заглавной буквы «B»? И когда ты это сделал, как ты пытался его загрузить? Существует всего несколько соглашений, и если вы действительно следовали им всем (одновременно) и это не работает, у вас есть еще одна проблема, вызванная чем-то, чего вы нам не показали.

Don't Panic 18.08.2024 08:32

Вот моя пользовательская библиотека, которую я поместил в приложение/библиотеки SimasBridge.php SimasBridge !=Simas_Bridge

Vickel 19.08.2024 00:36

@Vickel, извини, у меня опечатка, сначала я попробовал с Simas_Bridge, но не получилось, после этого я попробовал с SimasBridge, и он тоже не работает, попробую Simasbridge rn

Anang Hariyanto N 19.08.2024 04:45
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
5
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте следовать соглашению об именах, предложенному Codeigniter, в их документации они предлагают следующее:

  • Имена файлов должны быть написаны с заглавной буквы. Например: Myclass.php
  • Объявления классов должны быть написаны с заглавной буквы. Например: класс Myclass
  • Имена классов и имена файлов должны совпадать.

Итак, исходя из этого, вам следует сделать следующее:

  1. переименуйте ваш файл из Simas_Bridge.php в Simasbridge.php
  2. Изменение объявления класса на класс Simasbridge
  3. затем вызовите класс, используя $this->load->library('simasbridge');

для более подробной информации перейдите по этой ссылке Официальная документация Codeigniter 3

Уже пробовал этот подход, все равно не сработало. И тоже получил ту же ошибку.

Anang Hariyanto N 17.08.2024 05:21

это странно, попробуйте сменить владельца файла Simasbridge, а затем проверьте еще раз.

Zainal Abidin 17.08.2024 06:24

что мне следует изменить в собственности? на данный момент это <user>:apache с разрешением 750

Anang Hariyanto N 18.08.2024 07:41

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

Anang Hariyanto N 19.08.2024 10:29

могу я узнать, что ты делаешь? Итак, если другой пользователь обнаружит ту же проблему, он сможет прочитать этот пост? :)

Zainal Abidin 19.08.2024 13:51

точно так же, как вы рекомендуете, я сначала переименовываю файл обратно в Simas_Bridge.php, а класс в Simas_Bridge и называю его как simas_bridge, а затем я повторяю то, что вы мне говорите, как сказано в документации, я переименовываю файл в Simasbridge.php , переименуйте класс в Simasbridge и вызовите его в моей конструкции контроллера с помощью $this->load->library('simasbridge')

Anang Hariyanto N 19.08.2024 15:41

окей, рад это слышать :)

Zainal Abidin 19.08.2024 16:45

Другие вопросы по теме