]> BookStack Code Mirror - bookstack/blob - app/References/ModelResolvers/PagePermalinkModelResolver.php
Added more complexity in an attempt to make ldap host failover fit
[bookstack] / app / References / ModelResolvers / PagePermalinkModelResolver.php
1 <?php
2
3 namespace BookStack\References\ModelResolvers;
4
5 use BookStack\Entities\Models\Page;
6 use BookStack\Model;
7
8 class PagePermalinkModelResolver implements CrossLinkModelResolver
9 {
10     public function resolve(string $link): ?Model
11     {
12         $pattern = '/^' . preg_quote(url('/link'), '/') . '\/(\d+)/';
13         $matches = [];
14         $match = preg_match($pattern, $link, $matches);
15         if (!$match) {
16             return null;
17         }
18
19         $id = intval($matches[1]);
20         /** @var ?Page $model */
21         $model = Page::query()->find($id, ['id']);
22
23         return $model;
24     }
25 }