Course outline for Symfony

Pre-requisites for learning Symfony

  • Participants must have a basic knowledge of PHP

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 20.04/22.04 Desktop Edition (sudo/root access required)
    • Firefox and Chrome Browsers

Duration

  • 2-3 Days

Training Mode

Online training for Symfony

We provide:

  • Instructor led live training
  • Self-paced learning with access to expert coaches
  • 24x7 access to cloud labs with end to end working examples

All jnaapti sessions are 100% hands-on. All our instructors are engineers by heart. Activities are derived from real-life problems faced by our expert faculty. Self-paced hands-on sessions are delivered via Virtual Coach.

Classroom training for Symfony

Classroom sessions are conducted in client locations in:

  • Bengaluru
  • Chennai
  • Hyderabad
  • Mumbai
  • Delhi/Gurgaon/NCR

Note: Classroom training is for corporate clients only

Detailed 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

Projects

  • 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

Forms

  • 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