Class not found

Аватар пользователя viper_f viper_f 20 апреля в 19:56

Хотел добавить свой пункт меню в меню аккаунт пользователя

Код в 'stroyka.theme':

use Drupal\Core;

function stroyka_preprocess_menu(&$variables) {
if($variables['menu_name']=='account'){
$variables['items']['form.registration']=array(
'title' => "Регистрация",
'url' => Url::fromRoute('registration')
);
}

Выдает это:

The website encountered an unexpected error. Please try again later.
Error: Class 'Url' not found in stroyka_preprocess_menu() (line 94 of themes\stroyka\stroyka.theme).

Перерыл инет, решения не добился.
кеш чистил, даже сервер перезапускал.
$settings['class_loader_auto_detect'] = FALSE; - раскоментил.

Нужны еще идеи.

0 Thanks

Комментарии

Аватар пользователя Orion76 Orion76 22 апреля в 5:58
1

Если часто приходится работать с программным кодом Drupal, удобнее использовать IDE (редактор кода) - PHPStorm с соответствующими плагинами (phplint, Drupal support, Twig support,YAML и т.п.)

Данный редактор указывает на подобные "ошибки" ещё в процессе работы над кодом.
Плюс, предоставляет инструменты автоматизации некоторых задач, та же автоматическая вставка "импорта" (use) по горячей клавише.

Аватар пользователя viper_f viper_f 24 апреля в 0:18

спасибо помогло.
хотя я несколько озадачен
классом находиться по адрес Drupal\Core\Url.php
тоесть когда прописываешь use нужно указывать и имя файла без расширения?

Аватар пользователя viper_f viper_f 24 апреля в 0:21

на drupal.org
Class
Url
Defines an object that holds information about a URL.
Namespace
Drupal\Core
думал так и надо указывать