Published using Google Docs
php_2015_04
Updated automatically every 5 minutes

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 and PHP 5.6.


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

Date

Topic

Online Course

Comments

1

30/4

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

1. please watch the video clips that explain the various tags in html. you can find them at http://www.htmlbook.co.il. please make an effort to watch all video clip till meeting #16. (low priority).

2. please install the required software towards next meeting (as detailed in our google group).

3. towards next meeting please complete the following assignments (and please submit them at haim.michael.homework@gmail.com):

a. in ‘introduction to procedural programming’ please complete all level 1,2 and 3 assignments. if you feel that drawing a flowing chart is a waste of time please write code in PHP instead. if you do create diagrams please make an effort to write code in PHP (in addition to the diagrams).

b. in ‘xhtml fundamentals’ please submit the assignments in those topics listed for the first meeting.

4. towards next meeting please watch the following video clips:

a. functions
http://www.phpbook.co.il/wordpress/?p=152 

b. arrays
http://www.phpbook.co.il/wordpress/?p=150 

c. oop
http://www.phpbook.co.il/wordpress/?p=144 
http://www.phpbook.co.il/wordpress/?p=79 
http://www.phpbook.co.il/wordpress/?p=140 

2

7/5

Procedural Programming






Object Oriented Programming

Introduction to Procedural Programming
Arrays, Functions

XHTML Fundamentals
Forms


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

1. please complete (and submit at haim.michael.homework@gmail.com) all assignments (level 1,2 and 3) in the ‘Arrays’ and ‘Functions’ topics in ‘Introduction to Procedural Programming’. If you feel more comfortable to write code (instead of drawing diagrams) please go for it!

2. in ‘XTHML Fundamentals’ in topic ‘Forms’ please complete ‘BMI Form’ the assignment.

3. In ‘PHP Fundamentals’ course, in topic ‘Object Oriented Programming’ please complete the following assignments:
Simple Circle
Simple Cat Class
Simple Person Class
Simple Dog Class
Simple Student Class
Simple Overriding
Bank Account

4. towards next meeting please watch the video clips (in phpbook.co.il) in the following topics:
הקדמה
הבסיס
פונקציות

5. towards next meeting please go over the slides (from PHP Fundamentals course in abelski) in the following topics:
PHP Basics
Functions

3

14/5

please note that next two meetings we don’t meet

the next meeting on 4/6/2015

PHP

PHP Fundamentals
Introduction to PHP, PHP Basics, Functions

1. please complete complete all assignments in topics 1,2,3 (level 1,2 only).

2. please get ready towards next meeting quiz about ‘PHP Basics’ topic. you can use the ‘zce certification preparation’ course at
http://www.abelski.com/moodle/course/view.php?id=32.

3. please get ready towards next meeting Arrays topic. please watch the video clips published in this topic at
www.phpbook.co.il. in addition, please make an effort to go over the relevant slides.

4

4/6/2015

please note that on 11/6/2015 the meeting won’t take place

PHP

PHP Fundamentals
Arrays

(Quiz in ‘PHP Basics’)

1. towards next meeting please get ready to two quizzes. one about ‘functions’. the other about ‘php basics’. you can use the ‘zce certification preparation’ course at http://www.abelski.com/moodle/course/view.php?id=32.

2. please get ready towards the ‘regular expression’ topic by watching the video clips in regular expressions in the ‘php fundamentals’ course at abelski.lifemichael.com. in addition, please watch the video in hebrew at
http://www.phpbook.co.il/wordpress/?p=187.

3. please complete all assignments (level 1,2) in arrays topic.

5

18/6/2015

PHP

PHP Fundamentals
Strings
Regular Expressions
Web Forms


(Quiz in ‘Functions’)

  1. towards the recursive functions topic next meeting please watch the video clips about recursive functions in www.phpbook.co.il and in www.csharpbook.co.il.
  2. please complete all assignments (level 1,2) in the topics we covered in class.

6

25/6/2015

PHP

PHP Open Source Projects
Introduction
Architecture
Installation
Administration

(Quiz in ‘Arrays’)

  1. towards next meeting please set up a wordpress based blog.

7

2/7/2015

PHP



PHP Fundamentals
HTTP Headers
Sessions Management
Object Oriented Programming

(Quiz in ‘Strings & Patterns’)

  1. please complete all assignments in headers topic.
  2. please complete the following assignments in topic ‘session management’:
    one pho document registration form
    simple registration form
    user counter
  3. please watch all video clips about oop in php at http://www.phpbook.co.il 

8

9/7/2015

till 22:30

PHP

Introduction to Procedural Programming

Recursive Function

PHP Fundamentals
Functions


PHP Fundamentals
Object Oriented Programming
(till static
members)

(Quiz in ‘PHP Basics’)

תרגיל מתגלגל

  1. in object oriented programming topic please complete the following assignments:
    Simple Rectangle
    Simple Circle
    Bank Account
    Cube
    Person Exercise
    Student Exercise
    The __toString Assignment
    Simple Overriding
  2. in functions topic please complete the following assignments:
    Hanoi Towers

9

16/7/2015

PHP

PHP Fundamentals
Object Oriented Programming


(Quiz in ‘Object Oriented Programming’ 1st)

  1. towards next meeting please complete all assignments (level 1,2 and 3) in object oriented programming.
  2. please complete phase #2 in the coupons ongoing project.

10

23/7/2015

PHP

PHP Fundamentals
Object Oriented Programming
Performance
Extensions

(Quiz in ‘Object Oriented Programming’ 2nd)


please complete phase #1 in the coupons platform on-going project.

11

30/7/2015

PHP

PHP Fundamentals
Exceptions Handling
Database Connectivity (till prepared statement)

Configuration


Programming’ 3rd)  
(Quiz in ‘Object Oriented

1. towards next meeting please complete the assignments in topic exceptions handling.

2. in the on going project (coupons platform) please complete phase #3 and phase #3.2.

12

6/8/2015

PHP

PHP Fundamentals
Database Connectivity (from prepared statements)


Accessing Files

Reflection Capabilities

(Quiz in ‘Object Oriented

Programming’ 4th)

 

1. towards next meeting please complete all assignments in topics reflectionand files.

2. in addition, please complete phase #4 in the coupons on going project.

3. optional: improve the DAO code by using PDO.

13

13/8/2015

PHP

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

PHP Fundamentals
Namesapces


תרגיל מתגלגל

1. please complete phases #5 and #5.5 in the coupons platform ongoing project.
2. towards next meeting please get ready with xml by watching the video at
https://www.youtube.com/watch?v=XtxDW7PXSN0 

14

20/8/2015

PHP

XML Fundamentals
Introduction
Syntax
Validation


PHP Web Services
PHP & XML
Simple API for XML (SAX)
Document Object Model (DOM)

Web Distributed Data Exchange (WDDX)
Java Script Objects Notation (JSON)

(Quiz in ‘Exceptions’)

תרגיל מתגלגל

1. please complete the assignments in those topics we covered in class.

2. please complete phase 6 in the coupons on going project.

3. please complete the israeli weather website tiny project.

15

27/8/2015

PHP

PHP Design Patterns
Introduction
Structural Patterns
Behavioral Patterns
Creational Design Patterns

1. complete phase #7 in coupons platform on going project.

16

3/9/2015

on
10/9/2015
we won’t have a meeting

PHP

PHP Fundamentals 
The Standard PHP Library
Networking

PHP Web Services
Simple Object Access Protocol (SOAP)

1. Start learning towards the PHP certification exam!

2. Please complete the simple assignment ‘Currency Exchange Rate Assignment’ in SOAP web services topic. (now!!)

3. Please complete all assignments in Standard PHP Library topic.

4. In Networking topic please complete the ‘Simple Networking Assignment’.

17

17/9/2015

next meeting on 8/10/2015

PHP

MongoDB
Introduction
Jump Start
MongoDB Shell
Data Types
Crud Operations
Querying

Indexing
Compose.io
MongoDB PHP

1. please complete phase #7.4 in the coupons on going project.

18

8/10/2015

PHP

PHPUnit
Introduction
Simple Tests
Tests Structure


Introduction to Git

Introduction
GitHub Jump Start


PHP Fundamentals
Closure

PHP Web Services
Representational State Transfer (REST)
The cURL Command Line Tool

  1. please choose one of the classes in the coupons on going project and develop unit tests for it (using phpunit).

19

22/10/2015

Log4PHP

Zend Certification

RedBeanPHP Basics






PHPCloud



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  

RedBeanPHP Basics
Introduction
Jump Start

Debugging

Freezing

PHPCloud Basics
Introduction
Jump Start


(Quiz in Extensions)

(Quiz in ‘PHP Standard Library’)
(Quiz in ‘Object Oriented Programming’)

תרגיל מתגלגל

Final Project


1. please complete in coupons on going project phase #8 (log4php).

2. please complete in coupons on going project phase #19.8 (redbeanphp).

20

29/10/2015

Wordpress



Facebook

WordPress Plugins Development
Introduction
Basics


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

  1. Towards next meeting please install WAMP (for those who have windows).. the version you can find at https://bitnami.com/stack/wamp/installer 
  2. Please complete phase #18 in the coupons ongoing project.

21

5/11/2015

PHP7

PHP 7 Basics
Introduction
Performance
Features
Changes

22

12/11/2015

Slim Framework

Slim Framework Fundamentals
Introduction
Basics
Routing

Environment

Request

Response

Logging

Debugging

Configuration

(Quiz in ‘Design Patterns’)
(Quiz in Configuration)

1. towards next meeting please complete phase#19.7 in the coupon ongoing project.

23

19/11/2015

PHP7

T.B.A



  1. towards next meeting please open an account in openshift and deploy your first php web applications. please follow the instructions in the video clips you can find at http://www.phpbook.co.il/wordpress/?p=698.
  2. towards next meeting please deploy your first hello world web application using code igniter. please go over the slides ‘introduction’ and ‘jump start’ and deploy the basic sample by following the video clips in those two topics.

24

26/11/2015

Codeigniter

CodeIgniter Fundamentals
Introduction
MVC Architecture

Jump Start
Models *

  1. towards next meeting please complete phase #20 in the on going project.

25

3/12/2015

Codeigniter

CodeIgniter Fundamentals
Routing
Libraries
Helpers
Profiling
Benchmarking

 -

26

10/12/2015

Codeigniter

CodeIgniter Fundamentals
User Agent
Date
URL
Drivers
Image Manipulation
Calendar
Session

(Quiz in ‘Databases and SQL’)
(Quiz in ‘Stream Network Programming’)

-

27

17/12/2015

Codeigniter

CodeIgniter Fundamentals
Errors
Unit Testing

Caching
Files
HTMLTables
Texts
Captcha
Email
Directories
Configuration


(Quiz in  ‘Web Services’)
(Quiz in ‘Namespaces’)
(Quiz in Closure)

(Quiz in Performance)

-

28

24/12/2015

Codeigniter







UML Analysis & Design

CodeIgniter Fundamentals
Forms
Security
Input
File Uploading
Zip Encoding


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.