Laravel SSR  

Do server-side rendering wherever you want with template engines

 WHY SSR   for ML

SEO Friendly

First Meaningful Screen

Rendering Engine 

SSR in PHP 

Rendering Engine  

SSR in PHP 

V8js  

V8js 

PHP-v8js is a php extension embeds the Google V8 Javascript Engine

Rendering Engine  

SSR in PHP  

 Node.js 

Node.js

JavaScript runtime built on V8 JavaScript engine

Bridge

between bridge and process

Bridge 

between bridge and process 

  sy mfony/process  

1. CREATE TEMPLATE FILE 

2. INSERT SCRIPTS 

3. RUN PROCESS 

4. GET OUTPOUT

Bridge 

between bridge and process 

NODE.JS  

1. RUN VIEW SERVER BUNDLE

2. DISPATCH (CONSOLE.LOG)

Bridge 

between bridge and process   

 composer require spatie/server-side-rendering  

spatie/server-side-rendering

1. for Vue SSR bundle json 

composer require guansunyata/server-side-rendering  

2. more config

Patched

API

entrance of a SSR root instance

It could be a whole SSR single-page application, a little SSR content embedded in other html, or any kind of mix-up things. 

foo.blade.php 

by app service provider 

https://github.com/spatie/laravel-server-side-rendering 

https://github.com/guAnsunyata/laravel-server-side-rendering

 composer require spatie/laravel-server-side-rendering  

spatie/laravel-server-side-rendering 

1. for Vue SSR bundle json 

composer require guansunyata/laravel-server-side-rendering  

2. more config

Patched

API

entrance of a SSR root instance

Source Code Structure

script for server and client side

Source Code Structure

script for server and client side 

https://ssr.vuejs.org/guide/structure.html#introducing-a-build-step

DX additional effort 

Foundation

 Node.js   

From a building tool to a service.

  

DX additional effort 

Foundation

 Webpack.ssr.mix.js  

create each instance a server side bundle.

no common chunk. no other plugins.  

run additional script and generate files in storage/ssr

 

DX additional effort 

For each SSR instance

entry.server/clinet.js  

concern app initialization diff from server side and client side.

   

e.g. data source & router state

  

DX additional effort 

Foundation

Vue SSR plugins  

for vue component style & client manifest which helps generating critical css ... 

   

Patched

Data Fetching

server side and client side

AsyncData 

component async data source

MatchedComponent

run all asyncData function to fetch data for every router matched components 

Data Fetching

server side and client side

Earlier in Context 

by single page api / fetch once

Data Fetching

server side and client side

Universal Vue Component

get vue component ssr ready

Node.js Caching

micro cache

By Route

LRU for 3 sec ...

By Data Source

LRU for 10 min ...

DEMO CODE   

Include every important part for SSR   

Pros 

SEO 

Fast first content for UX

PROBLEM 

Performance / Monitor 

Complexity

END 

LARAVEL
SSR

SSR in Laravel

By guansunyata

SSR in Laravel

  • 1,189