SlideShare une entreprise Scribd logo
1  sur  78
Télécharger pour lire hors ligne
Fabien Potencier
@fabpot
Haveyouever

usedSymfony?
1.x? 2.x? 3.x? 4.x?
WhatisSymfony4?
Anewdeveloperexperience
Onarocksolidfoundation
Frommicro-styletomonolith
4
inaction…
5
$ symfony new demo
# Want to try Symfony 5.0 (dev version)?
$ symfony new demo --version=dev-master
7
symfony/skeleton
"require": {
"php": "^7.1.3",
"ext-ctype": "*",
"ext-iconv": "*",
"symfony/console": "*",
"symfony/dotenv": "*",
"symfony/flex": "^1.1",
"symfony/framework-bundle": "*",
"symfony/yaml": "*"
},
$ symfony new demo --version=dev-master --debug
Demo
$ symfony new demo --version=dev-master --debug
Demo
$ symfony new demo --version=dev-master --debug
Demo
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install %PUBLIC_DIR%": "symfony-cmd"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
},
$ symfony new demo --version=dev-master --debug
Demo
$ tree -I vendor
$ find . -type f | wc -l
Symfony 4 is lightweight
Only 16 files
vs 31 SE
3300 total
vs 8867 SE
-65%
New directory structure
• Less depth, easier to navigate
• Non-PHP files in their own directories
(assets/, templates/)
• Decoupled from Symfony (assets/, src/,
templates/, public/)
https://github.com/symfony/recipes/

tree/master/

symfony/framework-bundle/4.2
Demo
Recipesrepositories
https://github.com/symfony/recipes

CuratedrecipesbySymfonycoreteam

https://github.com/symfony/recipes-contrib

Opentoallcontributions
370+ recipes
$ composer show | wc -l
Demo
Only 25 deps
vs 38 + 50 = 88 SE
Symfony 2+/3+
Monolog Bundle
SwiftMailer Bundle
Polyfill Util
Polyfill PHP 7.0
Polyfill PHP 5.6
Polyfill Mbstring
Polyfill Intl ICU
Polyfill APCu
PHPUnit Bridge
Debug Bundle
Framework Bundle
Security Bundle
Twig Bundle
WebProfiler Bundle
WebServer BundleDoctrine Bridge
Monolog Bridge
Twig Bridge
Monolog
Doctrine (11)
SecurityChecker
Generator Bundle
ParamHandler
FrameworkExtra Bundle
Distribution Bundle
Asset
BrowserKit
Cache
ClassLoader
Config
Console
CssSelector
Debug
DependencyInjection
DomCrawler
Dotenv
EventDispatcher
ExpressionLanguage
Filesystem
Finder
Form
HttpFoundation
HttpKernel
Inflector
Intl
Ldap
OptionsResolver
Process
PropertyAccess
PropertyInfo
Routing
Security
Serializer
Stopwatch
Templating
Translation
Validator
VarDumper
WebLink
Workflow
Yaml
4 bridges
15 librairies
11 bundles42 components
SwiftMailer
Symfony 4+
Polyfill Mbstring
Framework BundleCache
Config
Debug
DependencyInjection
Dotenv
EventDispatcher
Filesystem
Finder
HttpFoundation
HttpKernel
Routing
Yaml
0 bridges
1 library
1 bundle13 components
Flex
$ symfony server:start -d
$ symfony server:log
Demo
Demo
$ ./bin/console
Demo
15 commands
vs 57 SE
$ git init
$ git add .
$ git commit -a -m"init"
Demo
$ composer req maker
Demo
Aliases
• Shortcuts for common packages (log, behat,
phpunit, …)
• Optimized for Symfony Components (no need
to use the symfony/ prefix, just workflow, dom-crawler, …)
• Opinionated choices (admin, api, orm, mailer, test,
…)
Packs
• Bundle several dependencies into a
consistent set (debug, profiler, api, test, …)
$ composer req debug
Discover Aliases and Packs
https://flex.symfony.com/
$ composer req maker
$ git diff config/bundles.php
Symfony Maker Bundle
$ ./bin/console list make
Symfony Maker Bundle
$ ./bin/console make:controller
Symfony Maker Bundle
$ composer req annot
Symfony Maker Bundle
$ ./bin/console make:controller DefaultController
Symfony Maker Bundle
$ vim src/Controller/DefaultController.php
Symfony Maker Bundle
src/ is about YOUR code
Symfony4helpsyou

growyourapp

withease
$ composer req twig
Adding Twig
Neverdefine

yourserviceagain*
AddingaTwigExtension
Where do I store
the Twig extension
class?
Which file do I
need to change to
register it?
Which tag do I need
to use?
How do I declare a
tag in YAML?
Which interface/class
do I need to implement/
extend? It’s too complex. What
about doing it the dirty
way and do it in the
controller instead?
hmm, ok
$ ./bin/console make:twig-extension
Adding a Twig Extension
Add your logic in the
generated class…
DONE!
Full Automation works for…
• Twig extensions
• Event listeners
• Doctrine repositories
• Commands
• Voters
• Registration form system
• …
Beyond “Hello World”
• Defining some models via Doctrine
• Adding an API for my model
• Managing data with an admin
$ composer req orm admin api
Full stack really quick
$ composer req orm admin api
Full stack really quick
$ ./bin/console make:entity Product --api-resource
Full stack really quick
$ vim config/packages/easy_admin.yaml
Full stack really quick
$ vim .env
DATABASE_URL="sqlite:///%kernel.project_dir%/var/
data.db"
$ ./bin/console doctrine:database:create
$ ./bin/console doctrine:schema:update --force
Full stack really quick
Itworks!
One line config change
One annotation added
Typical features
to the next level
I want to send emails

from my controller
$ composer req symfony/mailer
Symfony Maker Bundle
use SymfonyComponentMailerMailerInterface;
public function index(MailerInterface $mailer)
{
$mailer->send(
(new Email())
->from('fabien@symfony.com')
->to('fabien@symfony.com')
->subject('Some subject')
->text('Some text...')
);
MAILER_DSN=smtp://localhost
I want to send rich emails

from my controller
Symfony Maker Bundle
use SymfonyComponentMailerMailerInterface;
public function index(MailerInterface $mailer)
{
$mailer->send(
(new TemplatedEmail())
->from('fabien@symfony.com')
->to('fabien@symfony.com')
->subject('Some subject')
->htmlTemplate('@emails/welcome.html.twig')
->context([
'city' => 'Tunis'
])
);
MAILER_DSN=smtp://localhost
I want to send rich and responsive emails

from my controller
$ composer req twig/inky-extension
Symfony Maker Bundle
MAILER_DSN=smtp://localhost
{% apply inky|inline_css(source("@zurb/stylesheets/main.css")) %}
<container>
<row class="header">
<columns>
<spacer size="16"></spacer>
<h4 class="text-center">Symfony Connect</h4>
</columns>
</row>
<row>
<columns>
<spacer size="32"></spacer>
<center><img width="100px" src="{{ email.image("@images/symfony.png") }}"></center>
<spacer size="16"></spacer>
<h1 class="text-center">Forgot Your Password?</h1>
<spacer size="16"></spacer>
<p class="text-center">It happens. Click the link below to reset it.</p>
<button class="large expand" href="#">Reset Password</button>
<hr/>
<p><small><center><a href="#">unsubscribe here</a>.</small></center></p>
</columns>
</row>
</container>
{% endapply %}
I want to send rich and responsive emails

from my controller

via my provider's API
$ composer req symfony/mailgun-mailer
MAILER_DSN=http://key:domain@mailgun
Symfony Maker Bundle
AmazonSES
GoogleGmail
Mandrill
Mailgun
Postmark
Sendgrid
I want to send rich and responsive emails

from my controller

via my provider's API

asynchronously
$ composer req messenger
framework:
messenger:
transports:
email: "doctrine://default"
routing:
SymfonyComponentMailerMessengerSendEmailMessage: email
$ ./bin/console messenger:consume
Symfony Maker Bundle
I want to send rich and responsive emails

from my controller

via my provider's API

asynchronously with AMQP
$ composer req messenger
framework:
messenger:
transports:
email: "amqp://guest:guest@localhost:5672/%2f/messages"
routing:
SymfonyComponentMailerMessengerSendEmailMessage: email
$ ./bin/console messenger:consume
Symfony Maker Bundle
Symfony 4 recap
• Auto-configuration for any Composer package
• A Maker bundle to simplify creating files
• No boilerplate code, just business logic
• Controllers and commands as services
• From micro to monolith
• Meta-packages doing a lot for you out of the box
Productivity
boost!
Better DX
Why?
Featureful and the most downloaded
The most advanced API solution
https://api-platform.com/
The most advanced e-commerce solution
Many admin-gen solutions
https://github.com/EasyCorp/EasyAdminBundle
The foundation of the PHP ecosystem
$ composer require symfony/console
Truly independent components
(new ConsoleApplication('echo', '1.0.0'))
->register('echo')
->addArgument('foo', ConsoleInputInputArgument::OPTIONAL, 'The directory')
->addOption('bar', null, ConsoleInputInputOption::VALUE_REQUIRED)
->setCode(function(ConsoleInputInputInterface $input,
ConsoleOutputOutputInterface $output) {
// output arguments and options
})
->getApplication()
->setDefaultCommand('echo', true) // Single command application
->run();
• CssSelector
• Debug
• Dotenv
• Finder
• Mailer
• Mime
• sMessenger
• Polyfill : APCu, ctype, iconv, intl, mbstring, PHP, …
• Process
• VarDumper
• VarExporter
• Yaml
• …
Truly independent components
Predictable releases and support
https://symfony.com/releases
•Every month: a patch release
•Every 6 month: a minor release
•Every 2 years: a major release
•On the go: security releases
Predictable releases and support
Release
end of
support
+8 months +14 months +36 months +48 months
end of security
support
end of security
support
end of
support
Standard Releases
(3.3, 4.0)
LTS Releases
(2.8, 3.4)
Predictable releases and support
3.4
LTS
4.2
Stable
https://symfony.com/releases
Stability and predictability
• Strict semantic versioning
• Deprecation/BC policy
• Responsible security issue management
https://symfony.com/bc
https://symfony.com/security
The fastest framework around
x2
x3
x4
http://www.phpbenchmarks.com/
Scale from micro to monolith
13 files
15 dependencies
start with
…and grow as you see fit
via automation
Community oriented
• Code of conduct

https://symfony.com/conduct
• Enforced by the CARE team

https://symfony.com/care
• Respectful Review Comments

https://symfony.com/doc/current/contributing/community/review-comments.html
Diversity initiative

https://symfony.com/diversity
https://symfony.com/4
Thank you!

Contenu connexe

Tendances

Let's creating your own PHP (tejimaya version)
Let's creating your own PHP (tejimaya version)Let's creating your own PHP (tejimaya version)
Let's creating your own PHP (tejimaya version)
Kousuke Ebihara
 
Symfony2 Introduction Presentation
Symfony2 Introduction PresentationSymfony2 Introduction Presentation
Symfony2 Introduction Presentation
Nerd Tzanetopoulos
 

Tendances (20)

XNA L01–Introduction
XNA L01–IntroductionXNA L01–Introduction
XNA L01–Introduction
 
Let's creating your own PHP (tejimaya version)
Let's creating your own PHP (tejimaya version)Let's creating your own PHP (tejimaya version)
Let's creating your own PHP (tejimaya version)
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php Presentation
 
How to Submit a plugin to WordPress.org Repository
How to Submit a plugin to WordPress.org RepositoryHow to Submit a plugin to WordPress.org Repository
How to Submit a plugin to WordPress.org Repository
 
.net Core 3.0 ve C# 8.0
.net Core 3.0 ve C# 8.0.net Core 3.0 ve C# 8.0
.net Core 3.0 ve C# 8.0
 
Building and deploying PHP applications with Phing
Building and deploying PHP applications with PhingBuilding and deploying PHP applications with Phing
Building and deploying PHP applications with Phing
 
PHP in one presentation
PHP in one presentationPHP in one presentation
PHP in one presentation
 
Php presentation
Php presentationPhp presentation
Php presentation
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
 
PHP
PHPPHP
PHP
 
Software Design
Software DesignSoftware Design
Software Design
 
Symfony2 Introduction Presentation
Symfony2 Introduction PresentationSymfony2 Introduction Presentation
Symfony2 Introduction Presentation
 
Mini-Training: TypeScript
Mini-Training: TypeScriptMini-Training: TypeScript
Mini-Training: TypeScript
 
Phalcon overview
Phalcon overviewPhalcon overview
Phalcon overview
 
Mini .net conf 2020
Mini .net conf 2020Mini .net conf 2020
Mini .net conf 2020
 
PHP Tutorials
PHP TutorialsPHP Tutorials
PHP Tutorials
 
PHP Presentation
PHP PresentationPHP Presentation
PHP Presentation
 
Last train to php 7
Last train to php 7Last train to php 7
Last train to php 7
 
What's New in ASP.NET Core 2.0
What's New in ASP.NET Core 2.0What's New in ASP.NET Core 2.0
What's New in ASP.NET Core 2.0
 
Php Presentation
Php PresentationPhp Presentation
Php Presentation
 

Similaire à Fabien Potencier "Symfony 4 in action"

Symfony Components 2.0 on PHP 5.3
Symfony Components 2.0 on PHP 5.3Symfony Components 2.0 on PHP 5.3
Symfony Components 2.0 on PHP 5.3
Fabien Potencier
 
Symfony2 San Francisco Meetup 2009
Symfony2 San Francisco Meetup 2009Symfony2 San Francisco Meetup 2009
Symfony2 San Francisco Meetup 2009
Fabien Potencier
 

Similaire à Fabien Potencier "Symfony 4 in action" (20)

Symfony 4: A new way to develop applications #phpsrb
 Symfony 4: A new way to develop applications #phpsrb Symfony 4: A new way to develop applications #phpsrb
Symfony 4: A new way to develop applications #phpsrb
 
Symfony 4: A new way to develop applications #ipc19
Symfony 4: A new way to develop applications #ipc19Symfony 4: A new way to develop applications #ipc19
Symfony 4: A new way to develop applications #ipc19
 
Hands-on with the Symfony2 Framework
Hands-on with the Symfony2 FrameworkHands-on with the Symfony2 Framework
Hands-on with the Symfony2 Framework
 
симфони это не страшно
симфони   это не страшносимфони   это не страшно
симфони это не страшно
 
Symfony Components 2.0 on PHP 5.3
Symfony Components 2.0 on PHP 5.3Symfony Components 2.0 on PHP 5.3
Symfony Components 2.0 on PHP 5.3
 
Drupal symfony
Drupal symfonyDrupal symfony
Drupal symfony
 
Symfony 2.0 on PHP 5.3
Symfony 2.0 on PHP 5.3Symfony 2.0 on PHP 5.3
Symfony 2.0 on PHP 5.3
 
Nashville Php Symfony Presentation
Nashville Php Symfony PresentationNashville Php Symfony Presentation
Nashville Php Symfony Presentation
 
Running Symfony
Running SymfonyRunning Symfony
Running Symfony
 
Symfony 4 & Flex news
Symfony 4 & Flex newsSymfony 4 & Flex news
Symfony 4 & Flex news
 
Unit testing symfony plugins with php unit
Unit testing symfony plugins with php unitUnit testing symfony plugins with php unit
Unit testing symfony plugins with php unit
 
Simplify your professional web development with symfony
Simplify your professional web development with symfonySimplify your professional web development with symfony
Simplify your professional web development with symfony
 
Symfony2 San Francisco Meetup 2009
Symfony2 San Francisco Meetup 2009Symfony2 San Francisco Meetup 2009
Symfony2 San Francisco Meetup 2009
 
Symfony finally swiped right on envvars
Symfony finally swiped right on envvarsSymfony finally swiped right on envvars
Symfony finally swiped right on envvars
 
What is new in Symfony 3,3, 3,4, 4.0, 4,1 + Flex
What is new in Symfony 3,3, 3,4, 4.0, 4,1 + FlexWhat is new in Symfony 3,3, 3,4, 4.0, 4,1 + Flex
What is new in Symfony 3,3, 3,4, 4.0, 4,1 + Flex
 
Composer
ComposerComposer
Composer
 
How Symfony changed my life (#SfPot, Paris, 19th November 2015)
How Symfony changed my life (#SfPot, Paris, 19th November 2015)How Symfony changed my life (#SfPot, Paris, 19th November 2015)
How Symfony changed my life (#SfPot, Paris, 19th November 2015)
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
 
How Symfony Changed My Life
How Symfony Changed My LifeHow Symfony Changed My Life
How Symfony Changed My Life
 
Progressively enhance your Symfony 4 app using Vue, API Platform, Mercure and...
Progressively enhance your Symfony 4 app using Vue, API Platform, Mercure and...Progressively enhance your Symfony 4 app using Vue, API Platform, Mercure and...
Progressively enhance your Symfony 4 app using Vue, API Platform, Mercure and...
 

Plus de Fwdays

Plus de Fwdays (20)

"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y..."How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
 
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
 
"Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl..."Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl...
 
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T..."How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
 
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ..."The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
 
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu..."[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
 
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care..."[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
 
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"..."4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
 
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast..."Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...
 
"Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others..."Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others...
 
"Mission (im) possible: How to get an offer in 2024?", Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?", Oleksandra Myronova
 
"Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv..."Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv...
 
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin..."How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Dernier (20)

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 

Fabien Potencier "Symfony 4 in action"