hn-8.x-1.x-dev/src/Plugin/HnPathResolver/NotFoundResolver.php
src/Plugin/HnPathResolver/NotFoundResolver.php
<?php
namespace Drupal\hn\Plugin\HnPathResolver;
use Drupal\Core\Url;
use Drupal\hn\HnPathResolverResponse;
use Drupal\hn\Plugin\HnPathResolverBase;
/**
* This provides a 404 resolver.
*
* @HnPathResolver(
* id = "hn_not_found",
* priority = -100
* )
*/
class NotFoundResolver extends HnPathResolverBase {
/**
* {@inheritdoc}
*/
public function resolve($path) {
$url = Url::fromUri('internal:/' . trim(\Drupal::config('system.site')->get('page.404'), '/'));
$params = $url->getRouteParameters();
if (empty($params)) {
throw new \Exception('The 404 page can\'t be loaded. Please check your config at /admin/config/system/site-information.');
}
$entity_type = key($params);
$entity = \Drupal::entityTypeManager()->getStorage($entity_type)->load($params[$entity_type]);
return new HnPathResolverResponse($entity, 404);
}
}
