Trong mô-đun của tôi sử dụng mã dưới đây để nhận bí danh url của url đã cho:
$alias = \Drupal::service('path.alias_manager')->getPathByAlias($_POST['url']);
Nhưng một cái tôi chạy Đánh giá tự động ( http://pareview.sh/ ) trong mô-đun của tôi, tôi nhận được cảnh báo dưới đây:
16 | CẢNH BÁO | \ Nên tránh các cuộc gọi Drupal trong các lớp học, sử dụng tiêm phụ thuộc thay thế
Làm thế nào tôi có thể cập nhật mã trên bằng cách sử dụng tiêm phụ thuộc? Toàn bộ mã lớp của tôi được đưa ra dưới đây.
<?php
namespace Drupal\my_module\Controller;
use Drupal\Core\Controller\ControllerBase;
/**
* MyModule Class defines ajax callback function.
*/
class MyModule extends ControllerBase {
/**
* Callback function for ajax request.
*/
public function getUserContent() {
$alias = \Drupal::service('path.alias_manager')->getPathByAlias($_POST['url']);
$alias = explode('/', $alias);
$my_module_views = views_embed_view('my_module', 'default', $alias[2]);
$my_module= drupal_render($my_module_views);
return array(
'#name' => 'my_module_content',
'#markup' => '<div class="my_module_content">' . $my_module. '</div>',
);
}
}