Не удается получить доступ к объекту CI в классе потока, используя pthreads - PullRequest
0 голосов
/ 04 сентября 2018

Не удалось получить экземпляр объекта CI для использования модели в функции run () класса потока.

Тема запускается нормально, но не может вызывать функции модели. Пожалуйста, помогите !!!

class Clinical extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
        $this->load->helper('directory');
    }

    public function index()
    {
        error_reporting(E_ALL);
        ini_set('display_errors', TRUE);
        ini_set('display_startup_errors', TRUE);
        ini_set("max_execution_time", '0');
        ini_set('memory_limit', '1024M');
        $dirList = scandir('../clinicalTrial/');
        $data["dirList"] = $dirList;
        $this->load->view('clinical',$data);
    }

    public function import()
    {
        $folder = $_POST["folder_name"];
        $dir = directory_map('../clinicalTrial/'.$folder);
        $key = $folder;
        $myThreadObj = new ClinicalThread($dir,$key);
        var_dump($myThreadObj->start());
        echo "Import Done";
        exit;
    }
}

class ClinicalThread extends Thread
{
    public $dir = array();
    public $key = "";

    public function __construct($dir,$key)
    {
        $this->dir=$dir;
        $this->key=$key;
    }

    function run()
    {
        $CI = & get_instance();
        echo "";
        print_r($CI);
        exit;
        if(!empty($this->dir))
        {
            foreach($this->dir as $file)
            {
                $CI->ct->extract($this->key,$file);
            }
        }
    }
}

1 Ответ

0 голосов
/ 10 сентября 2018

Вы не можете вызвать функцию Model каркаса внутри потока, так как он не загружает механизм каркаса внутри потока.

Для связи с базой данных используйте прямое соединение с БД внутри потока.

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