Как исправить ошибку php "не удается передать параметр 1 по ссылке"?
Я знаю, что на stackoverflow было много подобных проблем с этой ошибкой, но никто не решает мою проблему. У меня есть функция в high_contrast.module
файл модуля:
function high_contrast_install() {
$background = \Drupal::config('high_contrast.settings')->get('colors_background');
$text = \Drupal::config('high_contrast.settings')->get('colors_text');
$hyperlinks = \Drupal::config('high_contrast.settings')->get('colors_hyperlinks');
\Drupal::service('file_system')->prepareDirectory(HIGH_CONTRAST_CSS_FOLDER, FileSystemInterface::CREATE_DIRECTORY); // LINE 17!!!
$css = _high_contrast_build_css();
file_save_data($css, HIGH_CONTRAST_CSS_LOCATION, FileSystemInterface::EXISTS_REPLACE);
}
и когда я хочу установить модуль, у меня есть ошибка en:
Error: Cannot pass parameter 1 by reference in high_contrast_install() (line 17 of modules\high_contrast\high_contrast.install).
Как я могу это исправить? :(
Строка 17 заключается в том, что один:
\Drupal::service('file_system')->prepareDirectory(HIGH_CONTRAST_CSS_FOLDER, FileSystemInterface::CREATE_DIRECTORY);
У вопроса есть решение - Посмотреть?

Источник

Источник

Источник
Ответы - Как исправить ошибку php "не удается передать параметр 1 по ссылке"? / How to fix php error "Cannot pass parameter 1 by reference"?
Является ответом!

13.11.2019 12:33:54
Как следует из ошибки, FileSystem::prepareDirectory
принимает свой первый аргумент по ссылке :
public function prepareDirectory(&$directory, $options = self::MODIFY_PERMISSIONS) {
# $directory being assigned new value
}
Поэтому PHP выдает ошибку, если вы передаете ему константу :
Константа-это идентификатор (имя) для простого значения. В качестве имени предполагает, что значение не может измениться во время выполнения скрипта
Перед вызовом функции необходимо присвоить переменной постоянное значение :
$dir = HIGH_CONTRAST_CSS_FOLDER;
\Drupal::service('file_system')->prepareDirectory($dir, FileSystemInterface::CREATE_DIRECTORY);
Помочь в развитии проекта: