Software Engineering in PHP  

PHP is today most popular programming language in developing web applications. This course covers all required topics for passing Zend Certified PHP Developer (PHP 5.5) exam and beyond. It provides its participants with the most up-to-date knowledge and practical experience required for developing today software systems in PHP. It includes 140 academic hours organized in four parts, that take place in class, and 560 academic hours (and beyond) that take place at home. The training material (slides, video clips, assignments, solutions and code samples) for the entire course is organized in small online courses on the e-learning platform we use during the course. The course is up-to-date with the latest version of PHP covering the new capabilities that were introduced in PHP 5.3, PHP 5.4, PHP 5.5, PHP 5.6 and PHP7.


Fundamental Topics in Software Development (First Part)
We cover the very basic topics in software development which are necessary in order to learn all other topics the course includes. This part focuses on very basic topics in procedural and object oriented programming. (10 academic hours)

Software Development  in PHP (Second Part)

The part covers nearly all topics the PHP Zend Certified Engineer exam covers and beyond. Taking this certification exam is highly important. Learning towards the exam takes the student into the highest possible levels of understanding. Those who pass this exam enjoy a different status in the industry. Their name is shown in the PHP Yellow Pages.  (105 academic hours)

The Codeigniter PHP Framework (Third Part)

This part covers Code Igniter framework, which is today most popular PHP framework for developing web applications. I chose to focus on this framework for two reasons. The first is its popularity and relevance for the israeli market. The second is its well known simple learning curve. (20 academic hours)

Analysis & Design using UML (Fourth Part)

This part summarizes the course and provides the students with analysis and design capabilities using UML. Based on the technological skills acquired during the course we learn how to analyze and design web and mobile hybrid applications and how to use UML, SOAML and SysML doing that process. (5 academic hours)


Meeting

Topic

Online Course

1

The Internet

Procedural Programming

HTML

Introduction to The Internet
Internet History, The Web, HTTP Protocol, Web Services, Websites


Introduction to Procedural Programming
Simple Variables, Input & Output, If Statement, While Loop

XHTML Fundamentals
Introduction, Headings, Images, Links, Tables, Lists

2

Procedural Programming





Object Oriented Programming

Introduction to Procedural Programming
Arrays, Functions

XHTML Fundamentals
Forms


Introduction to Object Oriented Programming
Objects & Classes, Class Members, Inheritance

3

PHP

PHP Fundamentals
Introduction to PHP, PHP Basics, Functions

4

PHP

PHP Fundamentals
Arrays

(Quiz in ‘PHP Basics’)
(Quiz in ‘Functions’)

5

PHP

PHP Fundamentals
Strings
Regular Expressions
Web Forms

(Quiz in ‘Arrays’)

6

PHP

PHP Open Source Projects
Introduction
Architecture
Installation
Administration

Introduction to Procedural Programming

Recursive Function

PHP Fundamentals
Functions

(Quiz in ‘Strings & Patterns’)

7

PHP



PHP Fundamentals
HTTP Headers
Sessions Management
Object Oriented Programming  

(Quiz in ‘Object Oriented Programming’ 1st)

8

PHP

PHP Fundamentals
Object Oriented Programming

(Quiz in
‘Object Oriented Programming’ 2nd)

תרגיל מתגלגל

9

PHP

PHP Fundamentals
Object Oriented Programming
Extensions
Configuration

(Quiz in ‘Object Oriented Programming’ 3rd)  

10

PHP

PHP Fundamentals
Object Oriented Programming
Performance
Closure

(Quiz in ‘Object Oriented Programming’ 4th)
(Quiz in Extensions)
(Quiz in Configuration)

11

PHP

PHP Fundamentals
Exceptions Handling
Database Connectivity

(Quiz in Closure)

12

PHP

PHP Fundamentals
Accessing Files

Reflection Capabilities

13

PHP

PHP Security
Common Practices
Website Security
Database Security
Session Security
Filesystem Security
Shared Hosting

PHP Fundamentals
Namesapces
Networking
Web Forms (uploading file)

(Quiz in Performance)

(Quiz in ‘Exceptions’)

תרגיל מתגלגל

14

PHP

PHP Web Services
PHP & XML
Simple API for XML (SAX)
Document Object Model (DOM)
Web Distributed Data Exchange (WDDX)
Representational State Transfer (REST)
Java Script Objects Notation (JSON)

(Quiz in
‘Stream Network Programming’)
(Quiz in ‘Namespaces’)


תרגיל מתגלגל

15

PHP

PHP Design Patterns
Introduction
Structural Patterns
Behavioral Patterns
Creational Design Patterns

(Quiz in ‘Object Oriented Programming’)

16

PHP

MongoDB
Introduction
Jump Start
MongoDB Shell
Data Types
Crud Operations
Querying

Indexing
Compose.io
MongoDB PHP

17

PHP

PHP Fundamentals 
The Standard PHP Library

18

PHP

PHP Web Services
Simple Object Access Protocol (SOAP)

Database Connectivity (Prepared Statements, PDO, Join Statements)

(Quiz in ‘PHP Standard Library’)

19

PHP

Log4PHP

Zend Certification

PHPCloud



Git

PHPUnit
Introduction
Simple Tests
Tests Structure

Log4PHP
Introduction
Basics

Zend Certified PHP Engineer
Introduction
PHP Basics
Functions
Arrays
Object Oriented Programming
Security

XML & Web Services
Strings & Patterns
Database & SQL
Web Features
Stream Network Programming
PHP 4/5 Differences
Design & Theory
Namespaces

PHPCloud Basics
Introduction
Jump Start


Introduction to Git
Introduction
GitHub Jump Start

תרגיל מתגלגל

Final Project

(Quiz in ‘Databases and SQL’)

(Quiz in ‘Design Patterns’)
(Quiz in  ‘Web Services’)

20

Facebook

Facebook PHP SDK
Introduction to Facebook
The Facebook Platform
Facebook Application Anatomy
Facebook Query Language (FQL)

21

WordPress

WordPress Plugins Development
Introduction
Basics

22

Slim Framework

Slim Framework Fundamentals
Introduction
Basics
Routing

Environment

Request

Response

Logging

Debugging

Configurationv

23

ORM in PHP

RedBeanPHP Basics
Introduction
Jump Start

Debugging

Freezing

24

Codeigniter

CodeIgniter Fundamentals
Introduction
MVC Architecture

Jump Start
Models
Routing
Libraries
Helpers
Drivers

25

Codeigniter

CodeIgniter Fundamentals
Errors
Profiling
Benchmarking
Session
User Agent
Forms
Captcha
URL
Date
Image Manipulation

26

Codeigniter

CodeIgniter Fundamentals
Calendar
Unit Testing
Caching
Zip Encoding
File Uploading
Files
HTMLTables
Directories
Configuration

27

Codeigniter

CodeIgniter Fundamentals
Email
Security
Input
Texts

28

UML Analysis & Design

UML Fundamentals
Use Case Diagram
Class Diagram
Activity Diagram
Package Diagram

SOAML Fundamentals
Introduction
Basics

SysML Fundamentals
Introduction
Basics



November 6th, 2013
The Slim Framework topic was extended with 7 new topics: Environment, Request, Response, Logging, Debugging and Configuration.

December 12th, 2013

More topics were added to CodeIgniter meetings. We now cover 30 different topics in CodeIgniter.

September 2th, 2014
The topic ‘MongoDB’ was added. The hours allocation for design patterns was shrinked in order to allow us having 1 full meeting dedicated for learning how to work with the MongoDB no-sql database both from the terminal and from code written in PHP.

October 20th, 2014
The course was updated to cover all new features that were added in PHP 5.6.