With your friend Ryan Weaver
Hands on with LiveComponents,
AssetMapper, Stimulus & Turbo
@weaverryan
Slide 2
Slide 2 text
> Member of the Symfony core team
> Husband of the beloved @leannapelham
symfonycasts.com
twitter.com/weaverryan
Howdy there!! I’m Ryan!
> Father to Beckett… he's here!!!
> Author person at SymfonyCasts.com
(and occasional Mickey Mouse)
> Hobbies: thinking about modals
JavaScript's Rounded Corners
__proto__ inheritance
No import/export syntax
HTTP/1.1
No 3rd party package system
avoid OO
10k line
fi
les
CDN's & global variables
combine
fi
les
minimize requests
Slide 9
Slide 9 text
Solution?
Node & npm Webpack
Automate the corner images!
Slide 10
Slide 10 text
Faster Automatic Rounded Images
esbuild
Vite
Slide 11
Slide 11 text
Solution?
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
HTTP/2
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
No content
Slide 16
Slide 16 text
No content
Slide 17
Slide 17 text
Unlearning
Slide 18
Slide 18 text
Combining
fi
les to limit requests
JavaScript build system & rewriting our code
Node, node_modules
Slide 19
Slide 19 text
#NoBuild
Slide 20
Slide 20 text
Asset Mapper
@weaverryan
Slide 21
Slide 21 text
Asset Mapper
2 Features
@weaverryan
Slide 22
Slide 22 text
1) Asset Paths
assets/images/greetings.png
Slide 23
Slide 23 text
2) Importmap
{
"imports": {
"app": "/assets/app-bd158fb0cda965d22ba27e0b1ce53b58.js",
"js-confetti": "/assets/vendor/js-confetti/index-1241…js"
}
}
New in 6.4
3rd party packages downloaded locally
Slide 24
Slide 24 text
// assets/app.js
import JSConfetti from 'js-confetti';
const jsConfetti = new JSConfetti();
jsConfetti.addConfetti();
2) Importmap
Slide 25
Slide 25 text
New in 6.4
CSS Support
import '../styles/app.css';
// assets/app.js
import('../styles/lazy.css');
import 'bootstrap/dist/css/bootstrap.min.css';
Slide 26
Slide 26 text
CSS Support
Slide 27
Slide 27 text
Build it if you need it
✅ Sass symfonycasts/sass-bundle
✅ Tailwind symfonycasts/tailwind-bundle
✅ TypeScript sensiolabs/typescript-bundle
30 Days of LAST Stack
Dec 1 - 31
AJAX SPA
Toast Noti
fi
cations
Modals
Tailwind
Popovers
View Transitions
Data Tables
Reusable Twig Components
Dynamic Forms
https://symfonycasts.com/last-stack
#NoBuild