Published using Google Docs
php_2014_07
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. 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.


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

2/7/2014

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
you can find the relevant stuff in php at:
http://www.abelski.com/courses/php/phpbasics.pdf 
http://www.phpbook.co.il 

XHTML Fundamentals
Headings, Images, Links, Tables, Lists

1. towards next meeting please install the required software:
a. xampp (for mac i recommend mamp)  
www.xampp.org  www.mamp.info 
b. phpstorm (pls install the trial version… i will provide you with a license).

c. u can also install and use the php development tools, aka “pdt”, which is actually the Eclipse IDE with the php plugin installed. u can find it at http://www.zend.com/en/community/pdt.

you can find video clips (in hebrew) that will assist u at www.phpbook.co.il.

2. towards next meeting please make sure the xdebug debugger is enabled in your phpstorm installation. please follow my video clip at http://www.lifemichael.com/en/2014/07/using-phpstorm-mamp-xdebug-pro/ 

3. towards next meeting please make sure you watch the video clip about tips for learning programming at
http://youtu.be/N1XHWcFBa0E.

4. please watch all relevant video clips from www.phpbook.co.il (e.g. video clip that explains the if statment… video clip that explains the while loop… etc.)

5. please complete all assignments (and donot forget to submit!) in the ‘introduction to procedural programming’ course… in the following topics:
Simple Variables, Input & Output, If Statement, While Loop. for each assignment please try to write the code in php.  if you feel that drawing a flowing chart is redundant for you please submit your solution in php. if you have a very strong background in writing code please feel free to skip the assignments that repeat themselves  (just make sure to list those assignments in your email).

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

html5 jump start

https://www.youtube.com/watch?v=i_GUkjBiUWw

javascript jump start

https://www.youtube.com/watch?v=VYLL5xWc1Jc 

frameworks in javascript

https://www.youtube.com/watch?v=N7IvFtYJr4Y

7. towards next meeting please prepare yourself:
a. please watch the first 4 video clips and the 7th one in the topic
תיכנות מונחה עצמים

at www.phpbook.co.il.
b. u can also get ready for the forms topic by watching the 1st video clip in topic

טפסים

at www.phpbook.co.il.


2

9/7/2014

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 the assignments in topics ‘Arrays’ and ‘Functions’. please try to solve coding in PHP (when possible).

2. towards next meeting please go over the relevant slides and video clips.

3. towards next meeting please watch at www.phpbook.co.il the video clips in topics:
הבסיס
פונקציות

4. in ‘forms’ topic (inside the ‘xhtml fundamentals’ course) please complete the bmiform assignment.

3

16/7/2014

PHP

PHP Fundamentals
Introduction to PHP, PHP Basics, Functions

1. towards next meeting please complete all assignments in topics covered in class (level 1 & 2 only).

2. towards next meeting please watch the video clips about arrays… both the ones at
www.phpbook.co.il and the ones in the php fundamentals course at

4

PHP

PHP Fundamentals
Arrays

1.  towards next meeting please complete all assignments (level 1 & 2 only) in the arrays topic.

2. towards next meeting please go over the slides and the video clips (both in abelski and in phpbook.co.il) of the strings,regular expressions and web forms topics. please start with those at www.phpbook.co.il.

3. please watch the videos about oop in php at http://www.phpbook.co.il/wordpress/?p=144 
http://www.phpbook.co.il/wordpress/?p=79 
http://www.phpbook.co.il/wordpress/?p=140 
http://www.phpbook.co.il/wordpress/?p=138

http://www.phpbook.co.il/wordpress/?p=135 

http://www.phpbook.co.il/wordpress/?p=208 

5

30/7/2014

PHP

PHP Fundamentals
Strings
Regular Expressions
Web Forms

1. towards next meeting please complete all assignments (levels 1,2) in topics strings, regular expressions and web forms.

2. if the course is going ok (so far) then (and only then!!!) please get ready for the recursive functions topic next meeting. if the course is a bit difficult please don’t get into this topic. it isn’t an important one. u can get ready for the recursive functions topic by watching the video clips (about recursive functions) at
www.phpbook.co.il and at www.csharpbook.co.il.

3. you can get ready for the open source projects topic watching the clip at https://www.youtube.com/watch?v=hnYHG1HYvJs 

4. you can get ready for the wordpress part next meeting by watching the video clips at http://www.phpbook.co.il/wordpress/2012/11/%D7%94%D7%AA%D7%A7%D7%A0%D7%94-%D7%A9%D7%9C-%D7%95%D7%95%D7%A8%D7%93%D7%A4%D7%A8%D7%A1/ 

6

6/8/2014

PHP

PHP Open Source Projects
Introduction
Architecture
Installation
Administration

Introduction to Procedural Programming

Recursive Function

PHP Fundamentals
Functions

1. towards next meetign please read the texts and watch the video clips at www.phpbook.co.il in the following topics:
Http Headers
Sessions Management
Object Oriented Programming

2. please set up your own professional blog using the wordpress open source project. you can do it for free at
www.wordpress.com.

7

13/8/2014

PHP



PHP Fundamentals
HTTP Headers
Sessions Management

Object Oriented Programming  

1. towards next meeting please go over the object oriented programming slides + video clips. please also go over the texts + video clips about oop at www.phpbook.co.il.

2. please complete all assignmetns level 1+2 in topic http headers.

3. in oop please complete the assignemtns: ‘simple circle’ and ‘simple rectangle’.

4. in sessions management topic please complet the simple registration session assignment.

8

20/8/2014

PHP

PHP Fundamentals
Object Oriented Programming
if you are short in time you can avoid the traits topic. it won’t stop you in the course.



תרגיל מתגלגל

1. please complete all assignments in topic object oriented programming - level 1 + 2 (excluding assignments about traits).

2. please go over the texts and video clips about traits… in abelski… and in phpbook.co.il.

9

27/8/2014

PHP

PHP Fundamentals
Object Oriented Programming
Extensions
Configuration

1. towards next meeting please go over all slides and watch all video clips about traits.

2. towards next meeting please complete all assignments in object oriented programming level 3 (except for those that deal with traits).

3. in coupons platform on going project please complete phases 1 (only those things you can implement.. the rest will be completed at a later stage of our course) and 2.

10

3/9/2014

PHP

PHP Fundamentals
Object Oriented Programming
Performance
Closure


1. towrads next meeting please get ready for the database connectivity topic:
a. get ready with sql (in class we will do it very quick and very shallow) by watching the video clips at
http://www.abelski.com/moodle/course/view.php?id=127 (starting with the creating new table video clip).
b. make sure you are familiar with phpmyadmin by watching the video clip at
https://www.youtube.com/watch?v=cIzYMJGCYP0

c. please watch the video clip that explains (in general) how to code in php a program that connects mysql. the video is available at https://www.youtube.com/watch?v=okugtD_icXU.

2. please complete and submit the assignments level 3 in the following topics:
introduction to php

php basics

functions

11

10/9/2014

PHP

PHP Fundamentals
Exceptions Handling
Database Connectivity
knowing how to work with mysqli would be sufficient for the rest of the course. you can skip pdo for now if you are short in time.


1. towards next meeting pelase complete all assignemtns in topic exceptions (except for numeric base translation).

2. complete phase 3 (please implement  getCoupons and getCoupon methods only!) in the coupons platform on going project.

comments:

a. if u get into difficulties with creating db table in phpmyadmin check www.phpbook.co.il for the phpmyadmin video clip

3. those who have difficulties in the course please skip the reflection topic next meeting (we don’t have it in the certification and it isn’t a popular topic during our work in php)

12

17/9/2014

PHP

PHP Fundamentals
Accessing Files

Reflection Capabilities

Database Connectivity (Join Statements, Transactions, Indices,MySQLi Prepared Statemetns, from page45 to the end of the slides)

  1. please complete the assignments (level 1,2) in topics accessing files and reflection.
  2. please complete phase #4 in the coupons on going project. please complete phase #3. don’t forget to complete the web form that allows the admin to add new coupons.
  3. please start preparing yourself to the zend certification by doing the questions you can find at http://www.abelski.com/moodle/course/view.php?id=32.

13

1/10/2014

please note that the following meetings won’t take place:
8/10/2014
15/10/2014
22/10/2014

PHP

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

PHP Fundamentals
Namesapces
Networking
Web Forms (uploading file)

Database Connectivity (from page50)

תרגיל מתגלגל

  1. please compelte phase #5 and phase #5.5 in the coupons platform on going project.
  2. please get ready for the quizzes in the following topics:
    (Quiz in ‘PHP Basics’)
    (Quiz in ‘Functions’)
    (Quiz in ‘Arrays’)
    (Quiz in ‘Object Oriented Programming 1st’)
    (Quiz in ‘Strings & Patterns’)
    you can get ready for these 5 quizzes by doing the preparation questions you can find at
    http://www.abelski.com/moodle/course/view.php?id=32 
  3. please complete the assignments in the following topics (in php fundamentals):
    namepsaces
    networking
  4. please develop a new implementation for ICouponsDAO (define a new class that implements the interface), that uses PDO.

14

29/10/2014

PHP

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

תרגיל מתגלגל

  1. please complete the following assignments:
    a. curency exchange rates
       you can find the rates at
       http://www.boi.org.il/currency.xml
    b. classroom xml document
    c. library xml document
  2. please complete phase #6 in the coupons ongoing project.

15

5/11/2014

PHP

PHP Web Services
Web Distributed Data Exchange (WDDX)
Representational State Transfer (REST)
Java Script Objects Notation (JSON)

תרגיל מתגלגל



PHP Design Patterns
Introduction
Structural Patterns
Behavioral Patterns

  1. in coupons platform ongoing project please complete phase #7.
  2. please complete the supermarket restful web service assignment.

16

12/11/2014

PHP

PHP Design Patterns
Creational Patterns


MongoDB Basics
Introduction

Jump Start
Mongo Shell
Data Types

CRUD Operations

Querying

Compose.io
MongoDB PHP

  1. please complete phase #7.4 in the onoing coupons platform project.

17

19/11/2014

PHP

PHP Fundamentals 
The Standard PHP Library


(Quiz in ‘PHP Basics’)
(Quiz in ‘Functions’)
(Quiz in ‘Arrays’)
(Quiz in ‘Object Oriented Programming 1st’)

(Quiz in ‘Strings & Patterns’)

1. you should complete all assignments in the ‘standard php library’ topic.

18

26/11/2014

PHP


Log4PHP

PHP Web Services
Simple Object Access Protocol (SOAP)

Log4PHP
Introduction
Basics

1. please complete the assignments in topic SOAP.

2. please complete phase #8 in the coupons platform on going project.

3. please open an account on facebook and please install their developer application (required for developing php applications that use facebook) following the clip at
http://www.phpbook.co.il/wordpress/?p=433 make sure you follow the video clip and pass the verification phase (through SMS or credit card).

19

3/12/2014

WordPress

WordPress Plugins Development
Introduction
Basics

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

20

10/12/2014

PHP

Zend Certification

PHPCloud



Git

PHPUnit
Introduction
Simple Tests
Tests Structure

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

  1. please complete phase #9 in the on-going couplns platform project.
  2. please complete phase #9.6 (for now, please just create a local repository for the coupons platform on going project).

21

17/12/2014

Slim Framework

Slim Framework Fundamentals
Introduction
Basics
Routing

Environment

Request

Response

Logging

Debugging

Configuration

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

22

24/12/2014


ORM in PHP

RedBeanPHP Basics
Introduction
Jump Start

Debugging

Freezing

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

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

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

23

31/12/2014

the meeting on 7/1/2014 won’t take place!

Codeigniter

CodeIgniter Fundamentals
Introduction
MVC Architecture

Jump Start
Models

1. please complete phase #20 (#a, #b) in the coupons platform on going project.

24

14/1/2014

Codeigniter

CodeIgniter Fundamentals
Routing
Profiling
User Agent
Libraries
Date

Helpers

Benchmarking

1. please complete the task from last week.

2. please add to the bottom of each one of the pages information about the following:
a. total execution time
b. total memory consumption

3. please create two user friendly routings the administrator will be able to use in order to get the list of all coupons.

25

21/1/2014

Codeigniter

CodeIgniter Fundamentals
HTMLTables
Image Manipulation
URL

Captcha

Caching
Errors

1. please create a simple controller with a simple action that displays a table with all coupons and their images. make sure you are using the URL helper in order to get a web application we can easily move to another domain.

26

28/1/2014


Codeigniter

CodeIgniter Fundamentals
Calendar
Unit Testing
Zip Encoding
Files
Directories
Texts

Configuration
File Uploading

1. develop a simple mvc web application (using code igniter) that allows the user to upload a new coupon (uploading the image file together with the coupon details). Make sure you execute the code sample first (you can follow the video clip).

27

4/2/2014

meeting on 11/2/2014 won’t take place!

Codeigniter

CodeIgniter Fundamentals
Email
Input
Drivers
Forms
Security

28

18/2/2014

Codeigniter


UML Analysis & Design

CodeIgniter Fundamentals
Session

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.

November 10th, 2014

The slides were updated with PHP 5.6 new features.