{"id":62,"date":"2024-03-21T12:55:04","date_gmt":"2024-03-21T12:55:04","guid":{"rendered":"https:\/\/cebucodesolutions.com\/blog\/?p=62"},"modified":"2024-03-21T12:55:06","modified_gmt":"2024-03-21T12:55:06","slug":"laravel-11-is-now-released","status":"publish","type":"post","link":"https:\/\/cebucodesolutions.com\/blog\/2024\/03\/21\/laravel-11-is-now-released\/","title":{"rendered":"Laravel 11 is now released!"},"content":{"rendered":"\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/f41juaJMxKE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen title=\"Laravel 11 new features!\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Laravel 11 is now released, including a minimum PHP v8.2, a new \nLaravel Reverb package, streamlined directory structure, and more&#8230;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-laravel-reverb\">#<\/a>Laravel Reverb<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/picperf.io\/https:\/\/picperf.io\/https:\/\/laravelnews.s3.amazonaws.com\/featured-images\/laravel-reverb-featured.png\" alt=\"\"\/><\/figure>\n\n\n\n<p><a href=\"https:\/\/laravel-news.com\/laravel-reverb\">Laravel Reverb<\/a> \nis a new first-party WebSocket server for Laravel applications, bringing\n real-time communication between client and server. Some of the features\n of Reverb include.<\/p>\n\n\n\n<p><strong>Blazing Fast<\/strong><\/p>\n\n\n\n<p>Reverb is fine-tuned for speed. A single server can support thousands\n of connections and piping data without the delay and inefficiency of \nHTTP polling.<\/p>\n\n\n\n<p><strong>Seamless Integration<\/strong><\/p>\n\n\n\n<p>Develop with Laravel&#8217;s broadcasting capabilities. Deploy with Reverb&#8217;s first-party <a href=\"https:\/\/forge.laravel.com\/?utm_campaign=laravel&amp;utm_source=laravelnews\">Laravel Forge<\/a> integration. Monitor with baked-in support for Pulse.<\/p>\n\n\n\n<p><strong>Built for Scale<\/strong><\/p>\n\n\n\n<p>Infinitely increase capacity by utilizing Reverb&#8217;s built-in support \nfor horizontal scaling using Redis, allowing you to manage connections \nand channels across multiple servers.<\/p>\n\n\n\n<p><strong>Pusher<\/strong><\/p>\n\n\n\n<p>Reverb utilizes the Pusher protocol for WebSockets, making it immediately compatible with Laravel broadcasting and Laravel Echo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-streamlined-directory-structure\">#<\/a>Streamlined Directory Structure<\/h2>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/lQSEBvxuXiU?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen title=\"Laravel 11: A new streamlined directory structure!\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>On a fresh install, the file count has dropped by ~ 69 files. Nice.<\/p>\n\n\n\n<p>Check out our post on this complete new <a href=\"https:\/\/laravel-news.com\/laravel-11-directory-structure\">Laravel 11 Directory Structure<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Controllers no longer extend anything by default.<\/li><li>No more middleware directory.<\/li><\/ul>\n\n\n\n<p>Currently, Laravel includes nine middleware and many you would never \ncustomize. However, if you do want to customize them, that is moved to \nthe App\/ServiceProvider. For example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public function boot(): void{    EncryptCookies::except(['some_cookie']);}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-no-more-httpkernel\">#<\/a>No more Http\/Kernel<\/h2>\n\n\n\n<p>Most of the things you used to could do in the Kernel you can now do in the Bootstrap\/App.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>return Application::configure()    ->withProviders ()    -\u203awithRouting(        web: __DIR__.'\/..\/routes\/web.php'        commands: __DIR__.'\/..\/routes\/console.php',    )    ->withMiddleware(function(Middleware Smiddleware) {        $middleware->web(append: LaraconMiddleware::class):    })<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-model-casts-changes\">#<\/a>Model casts changes<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/2WDtpAHRCMA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen title=\"Laravel 11 moves the Model Casts from a property to a method\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Model casts are now defined as a method instead of a property. When \ndefined as a method we can do other things, like call other methods \ndirectly from the casts. Here is an example using a new Laravel 11 <code>AsEnumCollection<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u00a0protected function casts(): array{    return [        'email_verified_at' => 'datetime',        'password' => 'hashed',        'options'=\u203a AsEnumCollection::of(UserOption::class),    ];}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-new-dumpable-trait\">#<\/a>New Dumpable Trait<\/h2>\n\n\n\n<p>This aims to streamline the core of the framework since multiple \nclasses currently have &#8220;dd&#8221; or &#8220;dump&#8221; methods. Plus you can use this <code>Dumpable<\/code> trait in your own classes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Stringable implements JsonSerializable, ArrayAccess{    use Conditionable, Dumpable, Macroable, Tappable;\u00a0    str('foo')->dd();    str('foo')->dump();<\/code><\/pre>\n\n\n\n<p>Read more about the new <a href=\"https:\/\/laravel-news.com\/laravel-11-dumpable-trait\">Dumpable Trait<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-config-changes\">#<\/a>Config Changes<\/h2>\n\n\n\n<p>Laravel has a lot of config files, and Laravel 11 removes these, and all config options cascade down. The <code>.env<\/code> has been expanded to include all the options you&#8217;d want to set.<\/p>\n\n\n\n<p>Read more about the <a href=\"https:\/\/laravel-news.com\/laravel11-streamlined-configs\">config changes<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-new-once-method\">#<\/a>New Once method<\/h2>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/cZEK0O3CGto?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen title=\"Laravel 11: New Once Memoization Helper\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Laravel 11 includes a new <a href=\"https:\/\/laravel-news.com\/once-helper\">once helper method<\/a>\n that ensures you&#8217;ll always get the same value no matter how many times \nyou call an object method. The once function is helpful when you have \nsome code that you want to ensure only ever runs one time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-slimmed-default-migrations\">#<\/a>Slimmed default Migrations<\/h2>\n\n\n\n<p>When you start a new Laravel app, it comes with some default \nmigrations from 2014 and 2019. These now will come with the dates \nremoved and moved into just two files.<\/p>\n\n\n\n<p>Watch our <a href=\"https:\/\/www.instagram.com\/reel\/C2w58cPA2eI\/\">Instagram Reel<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-routes-changes\">#<\/a>Routes changes<\/h2>\n\n\n\n<p>By default, there will be only two route files, console.php and web.php. API routes will now become opt-in via <code>php artisan install:api<\/code>, giving you the API routes file and Laravel Sanctum.<\/p>\n\n\n\n<p>The same with websocket broadcasting, <code>php artisan install:broadcasting<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-new-up-health-route\">#<\/a>New up Health Route<\/h2>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/EmvHPg8JpB4?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen title=\"New Laravel 11 applications will include a new health \/up endpoint. #laravel #laravel11\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Laravel 11 will include a new <code>\/up<\/code> <a href=\"https:\/\/laravel-news.com\/laravel-11-health-endpoint\">health route<\/a> that fires a <code>DiagnosingHealthEvent<\/code> so you can better integrate with up time monitoring.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-appkey-rotation\">#<\/a>APP_KEY Rotation<\/h2>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/0dJMX9RjW9A?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen title=\"Take a look at the new APP_KEY rotation features of Laravel 11\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>In older versions of Laravel, if you changed your <code>APP_KEY<\/code>\n it could lead to broken data in the database. Laravel 11 has a new \ngraceful rotation which will NOT break old encrypted data, using an <code>APP_PREVIOUS_KEYS<\/code> comma-delimited list .env variable. It will auto re-encrypt the data using new key.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-console-kernel-removed\">#<\/a>Console Kernel Removed<\/h2>\n\n\n\n<p>The Console Kernel is being removed, and you&#8217;ll be able to instead define your console commands right in <code>routes\/console.php<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-named-arguments\">#<\/a>Named Arguments<\/h2>\n\n\n\n<p><a href=\"https:\/\/www.php.net\/manual\/en\/functions.arguments.php#functions.named-arguments\">Named arguments<\/a>\n are not covered by Laravel&#8217;s backwards compatibility guidelines. They \nmay choose to rename function arguments when necessary in order to \nimprove the Laravel codebase. When calling Laravel methods using named \narguments should be done cautiously and with the understanding that the \nparameter names may change in the future.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-eager-load-limit\">#<\/a>Eager Load Limit<\/h2>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/n4oiIa6BDqE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen title=\"Laravel 11 will have native support for limiting the number of eagerly loaded results per parent.\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Laravel 11 integrates the code behind the &#8220;eager load limit&#8221; package:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>User::select('id', 'name')->with([    'articles' => fn($query) => $query->limit(5)])->get();<\/code><\/pre>\n\n\n\n<p>Read more about <a href=\"https:\/\/laravel-news.com\/eager-load-limit\">Eager Load Limit<\/a> here.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-new-artisan-commands\">#<\/a>New Artisan Commands<\/h2>\n\n\n\n<p>New Artisan commands have been added to allow the quick creation of classes, enums, interfaces, and traits:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan make:classphp artisan make:enumphp artisan make:interfacephp artisan make:trait<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-new-welcome-page\">#<\/a>New Welcome Page<\/h2>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/ErpVLcxo3cI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen title=\"The history of the Laravel welcome page, including the new one in Laravel 11\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><a href=\"https:\/\/picperf.io\/https:\/\/laravelnews.s3.amazonaws.com\/images\/EHTLs1p9yQmeADY8z3T71KmL7fBtoL41DcQ8Pglv.png\">https:\/\/picperf.io\/https:\/\/laravelnews.s3.amazonaws.com\/images\/EHTLs1p9yQmeADY8z3T71KmL7fBtoL41DcQ8Pglv.png<\/a><\/p>\n\n\n\n<p>Along with major updates to Laravel, we&#8217;ll get a new <a href=\"https:\/\/laravel-news.com\/laravel-welcome-page\">welcome page<\/a> when creating a new Laravel application.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-when-will-laravel-11-be-released\">#<\/a>When will Laravel 11 be released?<\/h2>\n\n\n\n<p>Laravel 11 will be released on March 12, 2024<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-php-82-minimum-support\">#<\/a>PHP 8.2 minimum support<\/h2>\n\n\n\n<p>This was an early decision, but Laravel 11 apps require a minimum of \nPHP 8.2. If you are running an older version of PHP, now is a good time \nto get that upgraded.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-sqlite-3350-required\">#<\/a>SQLite 3.35.0+ required<\/h2>\n\n\n\n<p>If you use a SQLite database, then Laravel 11 will require SQLite 3.35.0 or greater.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-doctrine-dbal-removal\">#<\/a>Doctrine DBAL Removal<\/h2>\n\n\n\n<p>Laravel is no longer dependent on the Doctrine DBAL and registering \ncustom Doctrines types is no longer necessary for the proper creation \nand alteration of various column types that previously required custom \ntypes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-install-laravel-11\">#<\/a>Install Laravel 11<\/h2>\n\n\n\n<p>The easiest way to install Laravel 11 is to first set up the Laravel Installer<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>composer global require laravel\/installer<\/code><\/pre>\n\n\n\n<p>Then run:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>laravel new projectname<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-upgrade-to-laravel-11\">#<\/a>Upgrade to Laravel 11<\/h2>\n\n\n\n<p><a href=\"https:\/\/laravelshift.com\/\">Laravel Shift<\/a> is the easiest way to upgrade but you can also follow the upgrade guide in the Laravel <a href=\"https:\/\/laravel.com\/docs\/master\/upgrade#upgrade-11.0\">docs<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-laravel-support-policy\">#<\/a>Laravel Support Policy<\/h2>\n\n\n\n<p>For all Laravel releases, bug fixes are provided for 18 months and \nsecurity fixes are provided for 2 years. For all additional libraries, \nincluding Lumen, only the latest major release receives bug fixes.<\/p>\n\n\n\n<table class=\"wp-block-table\"><thead><tr><th>Version<\/th><th>PHP (*)<\/th><th>Release<\/th><th>Bug Fixes Until<\/th><th>Security Fixes Until<\/th><\/tr><\/thead><tbody><tr><td><a href=\"https:\/\/laravel-news.com\/laravel-9\">Laravel 9<\/a><\/td><td>8.0 &#8211; 8.2<\/td><td>February 8th, 2022<\/td><td>August 8th, 2023<\/td><td>February 6th, 2024<\/td><\/tr><tr><td><a href=\"https:\/\/laravel-news.com\/laravel-10\">Laravel 10<\/a><\/td><td>8.1 &#8211; 8.3<\/td><td>February 14th, 2023<\/td><td>August 6th, 2024<\/td><td>February 4th, 2025<\/td><\/tr><tr><td><a href=\"https:\/\/laravel-news.com\/laravel-11\">Laravel 11<\/a><\/td><td>8.2 &#8211; 8.3<\/td><td>March 12th, 2024<\/td><td>September 3rd, 2025<\/td><td>March 12th, 2026<\/td><\/tr><tr><td>12<\/td><td>8.2 &#8211; 8.3<\/td><td>Q1 2025<\/td><td>Q3, 2026<\/td><td>Q1, 2027<\/td><\/tr><\/tbody><\/table>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/laravel-news.com\/laravel-11#content-wrapup\">#<\/a>Wrapup<\/h2>\n\n\n\n<p>So far, all these features are considered beta for Laravel 11 and are\n designed to improve your workflow. Things can and probably change, and \nwe will keep this post updated as new features are announced.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Laravel 11 is now released, including a minimum PHP v8.2, a new Laravel Reverb package, streamlined directory structure, and more&#8230; #Laravel Reverb Laravel Reverb is a new first-party WebSocket server for Laravel applications, bringing real-time communication between client and server. Some of the features of Reverb include. Blazing Fast Reverb is fine-tuned for speed. A &hellip; <a href=\"https:\/\/cebucodesolutions.com\/blog\/2024\/03\/21\/laravel-11-is-now-released\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Laravel 11 is now released!&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-62","post","type-post","status-publish","format-standard","hentry","category-updates"],"_links":{"self":[{"href":"https:\/\/cebucodesolutions.com\/blog\/wp-json\/wp\/v2\/posts\/62","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cebucodesolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cebucodesolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cebucodesolutions.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cebucodesolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=62"}],"version-history":[{"count":1,"href":"https:\/\/cebucodesolutions.com\/blog\/wp-json\/wp\/v2\/posts\/62\/revisions"}],"predecessor-version":[{"id":71,"href":"https:\/\/cebucodesolutions.com\/blog\/wp-json\/wp\/v2\/posts\/62\/revisions\/71"}],"wp:attachment":[{"href":"https:\/\/cebucodesolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=62"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cebucodesolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=62"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cebucodesolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=62"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}