Класс PHP Pthreads «Пример» не найден - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь выполнить функцию внутри потока, хотя я получаю сообщение об ошибке «Класс« Пример »не найден», где пример - это некоторый пользовательский класс, написанный.При выполнении функции normal (не в потоке) все работает нормально.

Мое предположение:

внутри функции, которую я вызываю "call_user_func_array", которая выполняет другую функцию, в которой используется пользовательский классin. Может ли быть так, что поток не может получить доступ к этой «внешней» информации.

Если да, какие-либо рекомендации по устранению проблемы?

<?php
$task = new class extends Thread {
    public $code;
    public $data;

    public function run() {
        $sample_class = new \SirJoe\Sample_Class();
        $this->data = (array) get_all_data($sample_class, $this->code);
    }
};
$task->code = $media->getCode();
$task->start();
$task->join();



function get_all_data($sample_class, $code) {
    // key of end cursor

    $data = call_user_func_array(
        array($sample_class, 'getMediaLikesByCode'), 
        array($code)
    );

    return $data;
}

внутри Sample_Class:

public function getMediaLikesByCode($code, $maxId = null) {
    $likeArray(fetchLikes($code, $maxId));

    $like = Like::create($likeArray['node']);

    return $data;
}

Класс Likes:

<?php

namespace SirJoe\Model;


class Like extends AbstractModel
{
    /**
     * @var
     */
    protected $id;

    /**
     * @var Account
     */
    protected $username;

    /**
     * @return mixed
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @return mixed
     */
    public function getUserName()
    {
        return $this->username;
    }

    /**
     * @param $value
     * @param $prop
     */
    protected function initPropertiesCustom($value, $prop)
    {
        switch ($prop) {
            case 'id':
                $this->id = $value;
                break;
            case 'username':
                $this->username = $value;
                break;
        }
    }

}

Неизученная ошибка: класс 'SirJoe \ Model \ Like' не найден в lorem-ipsum.php: 999

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