Как использовать сторонний класс с Codeigniter - PullRequest
0 голосов
/ 29 августа 2018

Так что, должно быть, у меня пердит мозг, и мне нужна рука. Я пытаюсь использовать BoxPacker в своем проекте Codeigniter, чтобы выяснить, сколько предметов я могу уместить в некоторых коробках. Я установил BoxPacker в папку «application / third_party / boxpacker». Но теперь, как мне на самом деле использовать это?

По какой-то причине мой мозг говорит мне, что я должен создать свою собственную библиотеку для взаимодействия со сторонним программированием, но тогда у меня просто еще один мозг пердит, и я понятия не имею, как его реализовать. Это была длинная неделя, так что я довольно сгорел и ищу руку.

EDIT: Итак, я создал библиотеку с именем BoxPacker.php со следующим кодом: `

class BoxPacker
{
    function __construct()
    {
        require_once APPPATH."third_party/boxpacker/vendor/autoload.php";
    }
}

В моем контроллере я тогда звоню:

$this->load->library('BoxPacker'); $packer = new BoxPacker();

Но когда я пытаюсь использовать функции из кода третьей части, как показано ниже, я получаю следующую ошибку Exception: Call to undefined method BoxPacker::addBox():

$packer->addBox(new TestBox('Le petite box', 300, 300, 10, 10, 296, 296, 8, 1000));

1 Ответ

0 голосов
/ 29 августа 2018

Помимо установки сторонней библиотеки в каталоге application/third_party, вы должны создать новую библиотеку в application/libraries, которая требует стороннего кода и расширяет его следующим образом:

Применение / библиотеки / Yourlib.php:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    // include the 3rd party class
    require_once APPPATH."/third_party/class_name/filename.php";

    // Extend the class so you inherit all functions, etc.
    class NewClass extends ThirdPartyClass {
        public function __construct() {
            parent::__construct();
        }
        // library functions
        public function something(){
            ...code...
       }

Затем на вашем контроллере вы должны загрузить новую библиотеку:

$this->load->library('yourlib');

После этого вы можете $this->yourlib как обычно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...