Course Outline

About Symfony


  • Participants must have a basic knowledge of PHP


  • 2-3 Days

Lab Setup

  • Hardware Configuration - Participants must have access to a system with the following hardware configuration
    • 2GB of free RAM, 20GB of free disk space and full network connectivity
  • Software Configuration
    • Ubuntu 16.04 Desktop Edition (sudo/root access required)
    • Firefox and Chrome Browsers
    • Firebug

Course Outline for Symfony

Introduction to Web Application Programming (Concept)
  • Static v/s Dynamic applications
  • Client/server computing
  • TCP/IP protocol
  • Application layer protocol — HTTP
  • HTTP Request and Response
  • Asynchronous requests with XMLHttp
  • 3 tier architectures
  • Client side applications and frameworks — HTML/JS/CSS
  • Server side languages and frameworks
  • Overview of Model/View/Controller (MVC )
  • Tooling
  • Using tooling to inspect page content (HTML/JS/CSS)
  • Using tooling to inspect request and response headers
  • Using tooling to inspect traffic flow
  • Analysis of a few popular client/server applications
  • Examples of MVC frameworks
Introduction to Symfony
  • Why Symfony?
  • Use of MVC in Symfony
Installing Symfony
  • Installing Symfony
  • Installing a database
  • Verifying the setup
  • Creating a project
  • Understanding the Symfony project structure
Working with Models and Databases (Concept)
  • Datastore design considerations
  • Relational v/s NoSQL stores
  • Understanding database abstraction layers (DAL)
  • Entities, Relationships
  • Tables, Fields, Keys, Indexes
  • Object Relational Mapping (ORM) and ORM issues
Symfony ORM with Doctrine
  • Generating model mappings
  • Generating bundle
  • Generating entities
  • Working with one-to-many mappings
  • Working with many-to-many mappings
  • Generating a CRUD form
  • Symfony forms
Working with Controllers, Views and Templates (Concept)
  • Data formats
  • XML and JSON
  • MVC v/s MVP v/s MTV
  • Thin clients v/s Thick clients
  • Serializing and Deserializing of objects
  • Conversion between PHP objects and Javascript objects
  • Need for templates
  • Anti-patterns in MVC design
Routing basics
  • Route parameters
  • Requirements and placeholders
  • Redirects
  • Returning Raw and JSON responses
  • Visualizing routes
  • Generating URLs
Views and templates
  • Templating with Twig
  • Template tags
  • Template inheritance
Error pages
  • Raising 404
  • Writing a 404 (page not found) view
  • Overriding default error templates
Symfony Commands
  • Symfony commands
  • Creating your own commands

The classroom training will be provided in Bangalore (Bengaluru), Chennai, Hyderabad or Mumbai and will be conducted in the client's premises. All the necessary hardware/software infrastructure must be provided by the client.