Функция php yaml_emit_file()
не работает. Я установил и включил php_yaml.dll
в моем php.ini
файл перезапустил сервер, но все же, когда я использую эту функцию, я получаю эту ошибку (когда я запускаю composer):
Call to undefined function RS\composer\yaml_emit_file()
Хорошо, так немного о фоне:
PHP версия 7.1.7 & Композитор версия 1.5.1
Я использую эту функцию в файле ScriptHandler.php, который вызывается, когда Composer
это запустить. В этом сценарии у меня есть функция buildModuleList
который называется на post-update-cmd
событие Composer
, Все остальное в коде работает нормально.
Я сомневаюсь, что, возможно, я использую эту функцию в неправильном контексте или что-то в этом роде.
Вот фрагмент кода, где я использую yaml_emit_file()
(Предоставляя это только для справки, скажите мне, если я использую это неправильно!):
if (!$fs->exists($moduleListFile)) {
$fs->touch($root.'/profiles/thunder/modulelist.yml');
$fs->chmod($root . '/profiles/thunder/modulelist.yml', 0666);
if(!empty($moduleList)){
$createyml= yaml_emit_file($moduleListFile, $moduleList);
if (!$createyml){
$io->writeError('<error>Cannot create modulelist.yml</error>');
}
}
$io->write('Success: Created new modulelist.yml', $newline= TRUE);
}
else{
$fs->file_put_contents($moduleListFile, $installedPackage, FILE_APPEND);
$io->write('Success: Module entry in modulelist.yml', $newline= TRUE);
}
Задача ещё не решена.
Других решений пока нет …