Я пытаюсь выполнить функцию внутри потока, хотя я получаю сообщение об ошибке «Класс« Пример »не найден», где пример - это некоторый пользовательский класс, написанный.При выполнении функции 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