SlideShare a Scribd company logo
INTRO TO
SYMFONY
#burningkeyboards
@denis_ristic
INTRO TO SYMFONY
SYMFONY
‣ Symfony is a set of reusable PHP components...
‣ ... and a PHP framework for web projects
‣ Symfony is a set of PHP Components, a Web
Application framework, a Philosophy, and a
Community — all working together in harmony.
‣ https://symfony.com/
2
INTRO TO SYMFONY
SYMFONY
‣ Symfony Framework
‣ The leading PHP framework to create websites and web applications.
Built on top of the Symfony Components.
‣ Symfony Components
‣ A set of decoupled and reusable components on which the best PHP
applications are built, such as Drupal, phpBB, and eZ Publish.
‣ Symfony Community
‣ A huge community of Symfony fans committed to take PHP to the next
level.
‣ Symfony Philosophy
‣ Embracing and promoting professionalism, best practices,
standardization and interoperability of applications.
3
INTRO TO SYMFONY
SYMFONY DOCUMENTATION
‣ https://symfony.com/doc/current/index.html
‣ Symfony Book
‣ https://symfony.com/pdf/Symfony_book_2.8.pdf
‣ Symfony Quick Tour
‣ https://symfony.com/pdf/Symfony_quick_tour_3.4.pdf
‣ Symfony Cookbook
‣ https://symfony.com/pdf/Symfony_cookbook_2.8.pdf
‣ Symfony Getting Started
‣ https://symfony.com/pdf/Symfony_getting_started_3.4.pdf
4
INTRO TO SYMFONY
SYMFONY DEMO APPLICATION
‣ https://github.com/symfony/symfony-demo
‣ The "Symfony Demo Application" is a reference
application created to show how to develop Symfony
applications following the recommended best
practices.
5
INTRO TO SYMFONY
SYMFONY COMPONENTS
‣ Symfony Components are a set of decoupled and
reusable PHP libraries. They are becoming the standard
foundation on which the best PHP applications are built
on. You can use any of these components in your own
applications independently from the Symfony
Framework.
‣ https://symfony.com/components
6
INTRO TO SYMFONY
SYMFONY COMPONENTS
‣ Asset Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript
files and image files.
‣ BrowserKit Simulates the behavior of a web browser.
‣ Cache Implements PSR-6 and PSR-16 caching mechanisms and provides adapters for popular
caching backends (Redis, Memcache, APCu, etc.)
‣ ClassLoader Loads your project classes automatically if they follow some standard PHP conventions.
‣ Config Helps you find, load, combine, autofill and validate configuration values.
‣ Console Eases the creation of beautiful and testable command line interfaces.
‣ CssSelector Converts CSS selectors to XPath expressions.
‣ Debug Provides tools to ease debugging PHP code.
‣ DependencyInjection Allows you to standardize and centralize the way objects are constructed in
your application.
‣ Dotenv Parses .env files to make environment variables stored in them accessible via getenv(),
$_ENV or $_SERVER.
7
INTRO TO SYMFONY
SYMFONY COMPONENTS
‣ DomCrawler Eases DOM navigation for HTML and XML documents.
‣ EventDispatcher Implements the Mediator pattern in a simple and effective way to make
projects truly extensible.
‣ ExpressionLanguage Provides an engine that can compile and evaluate expressions.
‣ Filesystem Provides basic utilities for the filesystem.
‣ Finder Finds files and directories via an intuitive fluent interface.
‣ Form Provides tools to easy creating, processing and reusing HTML forms.
‣ Guard Brings many layers of authentication together, making it much easier to create
complex authentication systems where you have total control.
‣ HttpFoundation Defines an object-oriented layer for the HTTP specification.
‣ HttpKernelProvides the building blocks to create flexible and fast HTTP-based
frameworks.
‣ Icu Contains the data of the ICU library in a specific version. This component is deprecated
since October 2014, use the Intl component instead.
8
INTRO TO SYMFONY
SYMFONY COMPONENTS
‣ Intl Provides fallback code to handle cases when the intl extension is missing.
‣ Ldap Provides an LDAP client for PHP on top of PHP's ldap extension.
‣ Locale Provides fallback code to handle cases when the intl extension is missing. This
component is deprecated since 2.3, use the Intl component instead.
‣ Lock Creates and manages locks, a mechanism to provide exclusive access to a shared
resource.
‣ OptionsResolver Helps you configuring objects with option arrays.
‣ Process Executes commands in sub-processes.
‣ PropertyAccess Provides function to read and write from/to an object or array using a
simple string notation.
‣ PropertyInfo Extracts information about the properties of PHP classes using metadata of
popular sources (Doctrine, PHP Reflection, PHPdoc, etc.)
‣ Routing Maps an HTTP request to a set of configuration variables.
‣ Security Provides an infrastructure for sophisticated authorization systems.
9
INTRO TO SYMFONY
SYMFONY COMPONENTS
‣ Serializer Turns objects into a specific format (XML, JSON, Yaml, ...) and the other way
around.
‣ Stopwatch Provides a way to profile code.
‣ Templating Provides all the tools needed to build any kind of template system.
‣ Translation Provides tools to internationalize your application.
‣ Validator Provides tools to validate classes.
‣ VarDumper Provides mechanisms for walking through any arbitrary PHP variable.
‣ WebLink Implements HTML5 Links, Preload and Resource Hints specifications to advise
clients (browsers) to preload and prefetch documents through HTTP and HTTP/2 pushes.
‣ Workflow Provides tools for managing a workflow or finite state machine.
‣ Yaml Loads and dumps YAML files.
‣ PHPUnit Bridge The PHPUnit Bridge provides utilities to report legacy tests and usage of
deprecated code and a helper for time-sensitive tests.
10
INTRO TO SYMFONY
SYMFONY COMPONENTS
‣ Polyfill APCu Provides apcu_* functions and the APCUIterator class to users of the legacy APC
extension.
‣ Polyfill PHP X.x Provides functions unavailable in releases prior to PHP X.x.
‣ Polyfill Iconv Provides a native PHP implementation of the php.net/iconv functions.
‣ Polyfill Intl Grapheme Provides a partial, native PHP implementation of the Grapheme
functions from the Intl extension.
‣ Polyfill Intl ICU Provides a collection of functions/classes using the symfony/intl package when
the Intl extension is not installed.
‣ Polyfill Intl Normalizer Provides a fallback implementation for the Normalizer class provided
by the Intl extension.
‣ Polyfill Mbstring Provides a partial, native PHP implementation for the Mbstring extension.
‣ Polyfill Util Provides binary-safe string functions, using the mbstring extension when available.
‣ Polyfill Xml Provides a fallback implementation for the following functions in the abscense of
the XML extension.
11
INTRO TO SYMFONY
SYMFONY REQUEST AND RESPONSE WORKFLOW
12
INTRO TO SYMFONY
SYMFONY REQUEST
13
INTRO TO SYMFONY
SYMFONY RESPONSE
14
INTRO TO SYMFONY
SYMFONY APPLICATION FLOW
15
INTRO TO SYMFONY
SYMFONY CONTROLLER
16
INTRO TO SYMFONY
SYMFONY TWIG TEMPLATE
17
INTRO TO SYMFONY
SYMFONY TWIG TEMPLATE NAMING AND LOCATIONS
18
INTRO TO SYMFONY
SYMFONY ENTITY
19
INTRO TO SYMFONY
SYMFONY ENTITY MAPPING WITH DOCTRINE
20
INTRO TO SYMFONY
SYMFONY ENTITY MAPPING WITH DOCTRINE
21
INTRO TO SYMFONY
SYMFONY BUNDLE
22
INTRO TO SYMFONY
SYMFONY BUNDLE DIRECTORY STRUCTURE
23
INTRO TO SYMFONY
SYMFONY DEMO
24
INTRO TO SYMFONY
SYMFONY DEMO
25
INTRO TO SYMFONY
SYMFONY PROFILER
26

More Related Content

What's hot

SIL - All you need to know about Swift Intermediate Language
SIL - All you need to know about Swift Intermediate LanguageSIL - All you need to know about Swift Intermediate Language
SIL - All you need to know about Swift Intermediate Language
Bartosz Polaczyk
 
C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...
C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...
C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...
corehard_by
 
Symfony2 components to the rescue of your PHP projects
Symfony2 components to the rescue of your PHP projectsSymfony2 components to the rescue of your PHP projects
Symfony2 components to the rescue of your PHP projects
Xavier Lacot
 
Nice performance using Sf2 cache wrapping Sf1 application
Nice performance using Sf2 cache wrapping Sf1 applicationNice performance using Sf2 cache wrapping Sf1 application
Nice performance using Sf2 cache wrapping Sf1 application
Marc Weistroff
 
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
corehard_by
 
Open POWER Cores and ISA
Open POWER Cores and ISAOpen POWER Cores and ISA
Open POWER Cores and ISA
Ganesan Narayanasamy
 
Augmenting Flow Operations and Feedback on the Model Driven MD_SAL Approach i...
Augmenting Flow Operations and Feedback on the Model Driven MD_SAL Approach i...Augmenting Flow Operations and Feedback on the Model Driven MD_SAL Approach i...
Augmenting Flow Operations and Feedback on the Model Driven MD_SAL Approach i...
Brent Salisbury
 

What's hot (7)

SIL - All you need to know about Swift Intermediate Language
SIL - All you need to know about Swift Intermediate LanguageSIL - All you need to know about Swift Intermediate Language
SIL - All you need to know about Swift Intermediate Language
 
C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...
C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...
C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...
 
Symfony2 components to the rescue of your PHP projects
Symfony2 components to the rescue of your PHP projectsSymfony2 components to the rescue of your PHP projects
Symfony2 components to the rescue of your PHP projects
 
Nice performance using Sf2 cache wrapping Sf1 application
Nice performance using Sf2 cache wrapping Sf1 applicationNice performance using Sf2 cache wrapping Sf1 application
Nice performance using Sf2 cache wrapping Sf1 application
 
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
 
Open POWER Cores and ISA
Open POWER Cores and ISAOpen POWER Cores and ISA
Open POWER Cores and ISA
 
Augmenting Flow Operations and Feedback on the Model Driven MD_SAL Approach i...
Augmenting Flow Operations and Feedback on the Model Driven MD_SAL Approach i...Augmenting Flow Operations and Feedback on the Model Driven MD_SAL Approach i...
Augmenting Flow Operations and Feedback on the Model Driven MD_SAL Approach i...
 

Similar to 25 Intro to Symfony #burningkeyboards

Lamp Zend Security
Lamp Zend SecurityLamp Zend Security
Lamp Zend Security
Ram Srivastava
 
Php Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant KillerPhp Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant Killer
Jackson F. de A. Mafra
 
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.3Fabien Potencier
 
PHP Conference - Phalcon hands-on
PHP Conference - Phalcon hands-onPHP Conference - Phalcon hands-on
PHP Conference - Phalcon hands-on
Jackson F. de A. Mafra
 
Phalcon - Giant Killer
Phalcon - Giant KillerPhalcon - Giant Killer
Phalcon - Giant Killer
Jackson F. de A. Mafra
 
Introducing symfony
Introducing symfonyIntroducing symfony
Introducing symfony
Wildan Maulana
 
Unleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ PlatformUnleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ Platform
Sébastien Morel
 
Symfony 3.4
Symfony 3.4Symfony 3.4
Symfony 3.4
Srikanth Mattihalli
 
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)
Matthias Noback
 
Top10 php framwork used by php developer
Top10 php framwork used by php developerTop10 php framwork used by php developer
Top10 php framwork used by php developer
Vikash Jangid
 
How Symfony Changed My Life
How Symfony Changed My LifeHow Symfony Changed My Life
How Symfony Changed My Life
Matthias Noback
 
PHP Frameworks and Symfony
PHP Frameworks and SymfonyPHP Frameworks and Symfony
PHP Frameworks and Symfony
Glenn Guden
 
Phalcon 2 - PHP Brazil Conference
Phalcon 2 - PHP Brazil ConferencePhalcon 2 - PHP Brazil Conference
Phalcon 2 - PHP Brazil Conference
Jackson F. de A. Mafra
 
Symfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentSymfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web development
ifour_bhavesh
 
PHPCR e API Platform: cosa significa davvero sviluppare un CMF con Symfony
PHPCR e API Platform: cosa significa davvero sviluppare un CMF con SymfonyPHPCR e API Platform: cosa significa davvero sviluppare un CMF con Symfony
PHPCR e API Platform: cosa significa davvero sviluppare un CMF con Symfony
Innoteam Srl
 
How PHP works
How PHP works How PHP works
The distinct advantages of using PHP-Symfony Framework
The distinct advantages of using PHP-Symfony FrameworkThe distinct advantages of using PHP-Symfony Framework
The distinct advantages of using PHP-Symfony Framework
Mindfire LLC
 
High quality ap is with api platform
High quality ap is with api platformHigh quality ap is with api platform
High quality ap is with api platform
Nelson Kopliku
 
Php extensions workshop
Php extensions workshopPhp extensions workshop
Php extensions workshopjulien pauli
 

Similar to 25 Intro to Symfony #burningkeyboards (20)

Lamp Zend Security
Lamp Zend SecurityLamp Zend Security
Lamp Zend Security
 
Php Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant KillerPhp Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant Killer
 
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
 
PHP Conference - Phalcon hands-on
PHP Conference - Phalcon hands-onPHP Conference - Phalcon hands-on
PHP Conference - Phalcon hands-on
 
Phalcon - Giant Killer
Phalcon - Giant KillerPhalcon - Giant Killer
Phalcon - Giant Killer
 
Introducing symfony
Introducing symfonyIntroducing symfony
Introducing symfony
 
Unleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ PlatformUnleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ Platform
 
Symfony 3.4
Symfony 3.4Symfony 3.4
Symfony 3.4
 
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)
 
Top10 php framwork used by php developer
Top10 php framwork used by php developerTop10 php framwork used by php developer
Top10 php framwork used by php developer
 
How Symfony Changed My Life
How Symfony Changed My LifeHow Symfony Changed My Life
How Symfony Changed My Life
 
PHP Frameworks and Symfony
PHP Frameworks and SymfonyPHP Frameworks and Symfony
PHP Frameworks and Symfony
 
Phalcon 2 - PHP Brazil Conference
Phalcon 2 - PHP Brazil ConferencePhalcon 2 - PHP Brazil Conference
Phalcon 2 - PHP Brazil Conference
 
Symfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentSymfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web development
 
PHPCR e API Platform: cosa significa davvero sviluppare un CMF con Symfony
PHPCR e API Platform: cosa significa davvero sviluppare un CMF con SymfonyPHPCR e API Platform: cosa significa davvero sviluppare un CMF con Symfony
PHPCR e API Platform: cosa significa davvero sviluppare un CMF con Symfony
 
How PHP works
How PHP works How PHP works
How PHP works
 
The distinct advantages of using PHP-Symfony Framework
The distinct advantages of using PHP-Symfony FrameworkThe distinct advantages of using PHP-Symfony Framework
The distinct advantages of using PHP-Symfony Framework
 
Phpyahoo
PhpyahooPhpyahoo
Phpyahoo
 
High quality ap is with api platform
High quality ap is with api platformHigh quality ap is with api platform
High quality ap is with api platform
 
Php extensions workshop
Php extensions workshopPhp extensions workshop
Php extensions workshop
 

More from Denis Ristic

Magento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRMagento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HR
Denis Ristic
 
Continuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVzContinuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVz
Denis Ristic
 
24 Scrum #burningkeyboards
24 Scrum #burningkeyboards24 Scrum #burningkeyboards
24 Scrum #burningkeyboards
Denis Ristic
 
23 LAMP Stack #burningkeyboards
23 LAMP Stack #burningkeyboards23 LAMP Stack #burningkeyboards
23 LAMP Stack #burningkeyboards
Denis Ristic
 
22 REST & JSON API Design #burningkeyboards
22 REST & JSON API Design #burningkeyboards22 REST & JSON API Design #burningkeyboards
22 REST & JSON API Design #burningkeyboards
Denis Ristic
 
21 HTTP Protocol #burningkeyboards
21 HTTP Protocol #burningkeyboards21 HTTP Protocol #burningkeyboards
21 HTTP Protocol #burningkeyboards
Denis Ristic
 
20 PHP Static Analysis and Documentation Generators #burningkeyboards
20 PHP Static Analysis and Documentation Generators #burningkeyboards20 PHP Static Analysis and Documentation Generators #burningkeyboards
20 PHP Static Analysis and Documentation Generators #burningkeyboards
Denis Ristic
 
19 GitFlow #burningkeyboards
19 GitFlow #burningkeyboards19 GitFlow #burningkeyboards
19 GitFlow #burningkeyboards
Denis Ristic
 
18 Git #burningkeyboards
18 Git #burningkeyboards18 Git #burningkeyboards
18 Git #burningkeyboards
Denis Ristic
 
17 Linux Basics #burningkeyboards
17 Linux Basics #burningkeyboards17 Linux Basics #burningkeyboards
17 Linux Basics #burningkeyboards
Denis Ristic
 
16 MySQL Optimization #burningkeyboards
16 MySQL Optimization #burningkeyboards16 MySQL Optimization #burningkeyboards
16 MySQL Optimization #burningkeyboards
Denis Ristic
 
15 MySQL Basics #burningkeyboards
15 MySQL Basics #burningkeyboards15 MySQL Basics #burningkeyboards
15 MySQL Basics #burningkeyboards
Denis Ristic
 
14 Dependency Injection #burningkeyboards
14 Dependency Injection #burningkeyboards14 Dependency Injection #burningkeyboards
14 Dependency Injection #burningkeyboards
Denis Ristic
 
13 PHPUnit #burningkeyboards
13 PHPUnit #burningkeyboards13 PHPUnit #burningkeyboards
13 PHPUnit #burningkeyboards
Denis Ristic
 
12 Composer #burningkeyboards
12 Composer #burningkeyboards12 Composer #burningkeyboards
12 Composer #burningkeyboards
Denis Ristic
 
11 PHP Security #burningkeyboards
11 PHP Security #burningkeyboards11 PHP Security #burningkeyboards
11 PHP Security #burningkeyboards
Denis Ristic
 
10 PHP Design Patterns #burningkeyboards
10 PHP Design Patterns #burningkeyboards10 PHP Design Patterns #burningkeyboards
10 PHP Design Patterns #burningkeyboards
Denis Ristic
 
09 Object Oriented Programming in PHP #burningkeyboards
09 Object Oriented Programming in PHP #burningkeyboards09 Object Oriented Programming in PHP #burningkeyboards
09 Object Oriented Programming in PHP #burningkeyboards
Denis Ristic
 
08 Advanced PHP #burningkeyboards
08 Advanced PHP #burningkeyboards08 Advanced PHP #burningkeyboards
08 Advanced PHP #burningkeyboards
Denis Ristic
 
07 Introduction to PHP #burningkeyboards
07 Introduction to PHP #burningkeyboards07 Introduction to PHP #burningkeyboards
07 Introduction to PHP #burningkeyboards
Denis Ristic
 

More from Denis Ristic (20)

Magento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRMagento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HR
 
Continuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVzContinuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVz
 
24 Scrum #burningkeyboards
24 Scrum #burningkeyboards24 Scrum #burningkeyboards
24 Scrum #burningkeyboards
 
23 LAMP Stack #burningkeyboards
23 LAMP Stack #burningkeyboards23 LAMP Stack #burningkeyboards
23 LAMP Stack #burningkeyboards
 
22 REST & JSON API Design #burningkeyboards
22 REST & JSON API Design #burningkeyboards22 REST & JSON API Design #burningkeyboards
22 REST & JSON API Design #burningkeyboards
 
21 HTTP Protocol #burningkeyboards
21 HTTP Protocol #burningkeyboards21 HTTP Protocol #burningkeyboards
21 HTTP Protocol #burningkeyboards
 
20 PHP Static Analysis and Documentation Generators #burningkeyboards
20 PHP Static Analysis and Documentation Generators #burningkeyboards20 PHP Static Analysis and Documentation Generators #burningkeyboards
20 PHP Static Analysis and Documentation Generators #burningkeyboards
 
19 GitFlow #burningkeyboards
19 GitFlow #burningkeyboards19 GitFlow #burningkeyboards
19 GitFlow #burningkeyboards
 
18 Git #burningkeyboards
18 Git #burningkeyboards18 Git #burningkeyboards
18 Git #burningkeyboards
 
17 Linux Basics #burningkeyboards
17 Linux Basics #burningkeyboards17 Linux Basics #burningkeyboards
17 Linux Basics #burningkeyboards
 
16 MySQL Optimization #burningkeyboards
16 MySQL Optimization #burningkeyboards16 MySQL Optimization #burningkeyboards
16 MySQL Optimization #burningkeyboards
 
15 MySQL Basics #burningkeyboards
15 MySQL Basics #burningkeyboards15 MySQL Basics #burningkeyboards
15 MySQL Basics #burningkeyboards
 
14 Dependency Injection #burningkeyboards
14 Dependency Injection #burningkeyboards14 Dependency Injection #burningkeyboards
14 Dependency Injection #burningkeyboards
 
13 PHPUnit #burningkeyboards
13 PHPUnit #burningkeyboards13 PHPUnit #burningkeyboards
13 PHPUnit #burningkeyboards
 
12 Composer #burningkeyboards
12 Composer #burningkeyboards12 Composer #burningkeyboards
12 Composer #burningkeyboards
 
11 PHP Security #burningkeyboards
11 PHP Security #burningkeyboards11 PHP Security #burningkeyboards
11 PHP Security #burningkeyboards
 
10 PHP Design Patterns #burningkeyboards
10 PHP Design Patterns #burningkeyboards10 PHP Design Patterns #burningkeyboards
10 PHP Design Patterns #burningkeyboards
 
09 Object Oriented Programming in PHP #burningkeyboards
09 Object Oriented Programming in PHP #burningkeyboards09 Object Oriented Programming in PHP #burningkeyboards
09 Object Oriented Programming in PHP #burningkeyboards
 
08 Advanced PHP #burningkeyboards
08 Advanced PHP #burningkeyboards08 Advanced PHP #burningkeyboards
08 Advanced PHP #burningkeyboards
 
07 Introduction to PHP #burningkeyboards
07 Introduction to PHP #burningkeyboards07 Introduction to PHP #burningkeyboards
07 Introduction to PHP #burningkeyboards
 

Recently uploaded

Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 

Recently uploaded (20)

Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 

25 Intro to Symfony #burningkeyboards

  • 2. INTRO TO SYMFONY SYMFONY ‣ Symfony is a set of reusable PHP components... ‣ ... and a PHP framework for web projects ‣ Symfony is a set of PHP Components, a Web Application framework, a Philosophy, and a Community — all working together in harmony. ‣ https://symfony.com/ 2
  • 3. INTRO TO SYMFONY SYMFONY ‣ Symfony Framework ‣ The leading PHP framework to create websites and web applications. Built on top of the Symfony Components. ‣ Symfony Components ‣ A set of decoupled and reusable components on which the best PHP applications are built, such as Drupal, phpBB, and eZ Publish. ‣ Symfony Community ‣ A huge community of Symfony fans committed to take PHP to the next level. ‣ Symfony Philosophy ‣ Embracing and promoting professionalism, best practices, standardization and interoperability of applications. 3
  • 4. INTRO TO SYMFONY SYMFONY DOCUMENTATION ‣ https://symfony.com/doc/current/index.html ‣ Symfony Book ‣ https://symfony.com/pdf/Symfony_book_2.8.pdf ‣ Symfony Quick Tour ‣ https://symfony.com/pdf/Symfony_quick_tour_3.4.pdf ‣ Symfony Cookbook ‣ https://symfony.com/pdf/Symfony_cookbook_2.8.pdf ‣ Symfony Getting Started ‣ https://symfony.com/pdf/Symfony_getting_started_3.4.pdf 4
  • 5. INTRO TO SYMFONY SYMFONY DEMO APPLICATION ‣ https://github.com/symfony/symfony-demo ‣ The "Symfony Demo Application" is a reference application created to show how to develop Symfony applications following the recommended best practices. 5
  • 6. INTRO TO SYMFONY SYMFONY COMPONENTS ‣ Symfony Components are a set of decoupled and reusable PHP libraries. They are becoming the standard foundation on which the best PHP applications are built on. You can use any of these components in your own applications independently from the Symfony Framework. ‣ https://symfony.com/components 6
  • 7. INTRO TO SYMFONY SYMFONY COMPONENTS ‣ Asset Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files. ‣ BrowserKit Simulates the behavior of a web browser. ‣ Cache Implements PSR-6 and PSR-16 caching mechanisms and provides adapters for popular caching backends (Redis, Memcache, APCu, etc.) ‣ ClassLoader Loads your project classes automatically if they follow some standard PHP conventions. ‣ Config Helps you find, load, combine, autofill and validate configuration values. ‣ Console Eases the creation of beautiful and testable command line interfaces. ‣ CssSelector Converts CSS selectors to XPath expressions. ‣ Debug Provides tools to ease debugging PHP code. ‣ DependencyInjection Allows you to standardize and centralize the way objects are constructed in your application. ‣ Dotenv Parses .env files to make environment variables stored in them accessible via getenv(), $_ENV or $_SERVER. 7
  • 8. INTRO TO SYMFONY SYMFONY COMPONENTS ‣ DomCrawler Eases DOM navigation for HTML and XML documents. ‣ EventDispatcher Implements the Mediator pattern in a simple and effective way to make projects truly extensible. ‣ ExpressionLanguage Provides an engine that can compile and evaluate expressions. ‣ Filesystem Provides basic utilities for the filesystem. ‣ Finder Finds files and directories via an intuitive fluent interface. ‣ Form Provides tools to easy creating, processing and reusing HTML forms. ‣ Guard Brings many layers of authentication together, making it much easier to create complex authentication systems where you have total control. ‣ HttpFoundation Defines an object-oriented layer for the HTTP specification. ‣ HttpKernelProvides the building blocks to create flexible and fast HTTP-based frameworks. ‣ Icu Contains the data of the ICU library in a specific version. This component is deprecated since October 2014, use the Intl component instead. 8
  • 9. INTRO TO SYMFONY SYMFONY COMPONENTS ‣ Intl Provides fallback code to handle cases when the intl extension is missing. ‣ Ldap Provides an LDAP client for PHP on top of PHP's ldap extension. ‣ Locale Provides fallback code to handle cases when the intl extension is missing. This component is deprecated since 2.3, use the Intl component instead. ‣ Lock Creates and manages locks, a mechanism to provide exclusive access to a shared resource. ‣ OptionsResolver Helps you configuring objects with option arrays. ‣ Process Executes commands in sub-processes. ‣ PropertyAccess Provides function to read and write from/to an object or array using a simple string notation. ‣ PropertyInfo Extracts information about the properties of PHP classes using metadata of popular sources (Doctrine, PHP Reflection, PHPdoc, etc.) ‣ Routing Maps an HTTP request to a set of configuration variables. ‣ Security Provides an infrastructure for sophisticated authorization systems. 9
  • 10. INTRO TO SYMFONY SYMFONY COMPONENTS ‣ Serializer Turns objects into a specific format (XML, JSON, Yaml, ...) and the other way around. ‣ Stopwatch Provides a way to profile code. ‣ Templating Provides all the tools needed to build any kind of template system. ‣ Translation Provides tools to internationalize your application. ‣ Validator Provides tools to validate classes. ‣ VarDumper Provides mechanisms for walking through any arbitrary PHP variable. ‣ WebLink Implements HTML5 Links, Preload and Resource Hints specifications to advise clients (browsers) to preload and prefetch documents through HTTP and HTTP/2 pushes. ‣ Workflow Provides tools for managing a workflow or finite state machine. ‣ Yaml Loads and dumps YAML files. ‣ PHPUnit Bridge The PHPUnit Bridge provides utilities to report legacy tests and usage of deprecated code and a helper for time-sensitive tests. 10
  • 11. INTRO TO SYMFONY SYMFONY COMPONENTS ‣ Polyfill APCu Provides apcu_* functions and the APCUIterator class to users of the legacy APC extension. ‣ Polyfill PHP X.x Provides functions unavailable in releases prior to PHP X.x. ‣ Polyfill Iconv Provides a native PHP implementation of the php.net/iconv functions. ‣ Polyfill Intl Grapheme Provides a partial, native PHP implementation of the Grapheme functions from the Intl extension. ‣ Polyfill Intl ICU Provides a collection of functions/classes using the symfony/intl package when the Intl extension is not installed. ‣ Polyfill Intl Normalizer Provides a fallback implementation for the Normalizer class provided by the Intl extension. ‣ Polyfill Mbstring Provides a partial, native PHP implementation for the Mbstring extension. ‣ Polyfill Util Provides binary-safe string functions, using the mbstring extension when available. ‣ Polyfill Xml Provides a fallback implementation for the following functions in the abscense of the XML extension. 11
  • 12. INTRO TO SYMFONY SYMFONY REQUEST AND RESPONSE WORKFLOW 12
  • 15. INTRO TO SYMFONY SYMFONY APPLICATION FLOW 15
  • 16. INTRO TO SYMFONY SYMFONY CONTROLLER 16
  • 17. INTRO TO SYMFONY SYMFONY TWIG TEMPLATE 17
  • 18. INTRO TO SYMFONY SYMFONY TWIG TEMPLATE NAMING AND LOCATIONS 18
  • 20. INTRO TO SYMFONY SYMFONY ENTITY MAPPING WITH DOCTRINE 20
  • 21. INTRO TO SYMFONY SYMFONY ENTITY MAPPING WITH DOCTRINE 21
  • 23. INTRO TO SYMFONY SYMFONY BUNDLE DIRECTORY STRUCTURE 23