Course Outline


Participant Profile

Developers who are new to PHP but have knowledge of client/server computing concepts and relational databases

Duration

4 days

System requirements

A system with Linux Operating System (either Ubuntu or Fedora is preferred)

Course Outline

Introduction to Web Application Programming
  • 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
PHP – Getting Started
  • Installing PHP
  • Configuring Apache2 for PHP
  • A simple Hello World page
PHP – Language Basics
  • Basic syntax
  • PHP Tags
  • Interspersing PHP with HTML
  • Comments
PHP – Types
  • Booleans, Integers, Floating point numbers, Strings
  • Arrays
  • Resources
  • NULL
  • Type conversion/juggling
PHP – Variables
  • Naming rules and conventions
  • Predefined variables
  • Variable scopes
  • Variable variables
  • Constants
  • Predefined constants
PHP – More Language Features
  • Expressions
  • Operators
    • Operator precedence
    • Arithmetic, Assignment, Bitwise, Comparison, Error Control, Execution, Increment/Decrement, Logical, String, Array and Type Operators
  • Control Structures
    • if, else, elseif
    • while, do-while
    • for, foreach
    • break, continue
    • switch, declare, return
    • require, include, require_once, include_once
    • goto
PHP – Functions
  • User defined functions
  • Function arguments
    • Pass by value/pass by reference
    • Variable length argument lists
  • Returning values
    • Returning an array of values
    • Returning a reference
  • Variable functions
  • Callbacks
  • Anonymous functions
  • Built-in functions
  • Full function reference
PHP – Classes and Objects
  • Creating a class and an object
  • Class constants
  • Constructors and Destructors
  • Visibility
    • public, private and protected
    • Method and Property Visibility
    • Visibility from other objects
  • Inheritance
  • Scope resolution operator
  • Static properties and methods
  • Abstract classes
  • Interfaces and Interface Inheritance
  • Traits
  • Overloading
PHP – More Objects
  • Object Iteration
  • Magic Methods
  • Final Keyword
  • Object Cloning
  • Comparing Objects
  • Type Hinting
  • Late Static Bindings
  • Objects and references
  • Object Serialization
  • Converting a scalar to object
PHP – Exception Handling
  • Catching and Throwing Exceptions
  • try/catch/finally
  • Creating your own Exceptions
PHP – Namespaces
  • Overview of namespaces
  • Defining namespaces
  • Defining multiple namespaces
  • Using namespaces
  • Name resolution rules
PHP - Misc
  • Predefined Variables
  • Generators
  • References
  • Handling Security Issues
MVC and MVC Frameworks
  • Introduction to Model View Controller (MVC)
  • Separating the MVC concerns in plain vanilla PHP
  • Introduction to MVC frameworks
  • What to expect from a MVC framework
  • How to choose a good MVC framework
PHP – MVC Frameworks
  • Comparison of PHP MVC Frameworks
  • Case studies
    • Drupal
    • Joomla/Wordpress
    • CodeIgniter

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.