vfsstream: file_get_contents () не удалось открыть поток: сбой вызова stream_open

Я настроил блочное устройство vfsstream и пытаюсь позвонить file_get_contents() в теме.
Однако призыв к vfsStreamWrapper::stream_open не удается, и поэтому поток не может быть открыт.

Вот мой код:

$this->root = vfsStream::setup('root');
$this->root->addChild(new vfsStreamBlock('test_block_device'));
$this->root->addChild(new vfsStreamFile('not_block_device'));
echo file_get_contents('vfs://root/test_block_device/size');

Вот ошибка:

file_get_contents (vfs: // root / test_block_device / size): не удалось открыть поток: сбой вызова «org \ bovigo \ vfs \ vfsStreamWrapper :: stream_open»

Вот самая близкая проблема, которую я нашел на этом

Однако у него была проблема со срывом phpunit, и у меня получилось в середине теста.

1

Решение

Так как я тестирую, мне было все равно, что file_get_contents запускается, только то, что он вернул. Так что, хотя я не выяснил проблему. Я решил свою проблему, переопределив get_file_contents в пространстве имен моего теста, чтобы вернуть то, что я хотел.

Если кто-то найдет ответ на этот вопрос, я с удовольствием проверим его ответ.

0

Другие решения

Из документов кажется, что вам нужно добавить контент на блочное устройство, прежде чем читать с него: https://github.com/mikey179/vfsStream/wiki/BlockDevices

0

По вопросам рекламы [email protected]