Matthew M.

Matthew M.

Advanced Course Development Environment

Slide Duration:

Table of Contents

Section 1: Advanced PHP with MySQL
Course Introduction

13m 36s

Intro
0:00
Advanced PHP w/ MySQL
0:13
Course Introduction
0:14
Course Content
0:59
Web Application: Educator Store
1:45
Web Application: Educator Store
1:46
Object-Oriented Programming
6:09
Object-Oriented Programming Overview
6:10
MySQL
6:50
MySQL Overview
6:51
Example: Command Prompt & MySQL
8:34
What You Will Learn
9:34
What You Will Learn
9:35
Course Prerequisites
11:52
Course Prerequisites
11:53
Advanced Course Development Environment

18m 46s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
Development Environment Setup
1:36
Firefox Web Browser, XAMPP, and PSPad Text Editor
1:37
Course Directory Structure
4:36
Course Directory Structure
4:37
phpDocumentor
7:23
phpDocumentor Overview
7:24
Parsing Source Code
7:44
docs Subdirectory
9:06
Asvanced PHP Course Documentation Example
10:21
Previous Educator PHP Students
14:14
Lib Directory Changes
14:38
Images Directory Changes
14:57
VERSION Constant
15:40
Comments Noting a Specific Version Number
17:04
Homework Challenge
17:30
Homework Challenge
17:31
Introduction to File I/O

35m 37s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
File I/O
1:34
File I/O Overview
1:35
Performing file I/O: 3 Steps
1:52
File Permissions
2:28
Read Permission & Write Permission
2:29
fopen()
4:47
fopen()
4:48
Two Required Parameters
5:01
Successful fopen(): File Handle and Resource
5:21
FALSE and E_WARNING Error
6:00
Example
6:39
File Paths
7:10
File Paths
7:11
File Access Modes
9:18
File Access Modes
9:19
Coding Example: fopen()
10:31
Using Relative and Absolute Path & Non-Existent File
10:32
File Pointers
15:55
File Pointers
15:56
Example File
16:11
Opening a File with fopen() Using 'r' as the Access Mode
16:22
fgets()
17:55
fgets() Overview
17:56
Coding Example: fgets() - Reading a Line at a Time
18:26
feof()
20:10
feof() Overview
20:09
Coding Example: feof()
20:50
fclose()
23:43
fclose() Overview
23:44
Coding Example: fclose()
25:02
Coding Example: Current Stock
26:10
Coding Example: Current Stock
26:11
trim ()
31:39
trim () Overview and Example
31:40
Homework Challenge
33:35
Homework Challenge
33:36
Web Application Development

36m 36s

Intro
0:00
Lesson Overview
0:16
Lesson Overview
0:17
Version 1.0 Changelog
0:31
catalog.php
0:32
Function Library: fileLIB.php
5:00
Version 1.1 Changelog
27:12
createItemDataArray() and createDeptDataArray()
27:13
outputSimpleItemLink() and outputSimpleDeptLink()
32:06
HTTP & the POST Method

34m 36s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
HTTP Model
1:28
HTTP Model
1:29
Client-Server Model 2 Steps Process
2:00
HTTP Messages
2:23
HTTP Messages
2:24
HTTP Requests
3:09
HTTP Requests
3:10
Example: HTTP Request Header
3:17
Coding Example: HTTP Requests
4:29
HTTP Responses
7:15
HTTP Responses
7:16
Example: HTTP Response (Header & Body)
8:00
header()
11:47
header() Overview
11:48
Coding Example: header
14:02
Coding Example: header() Error
14:52
GET Method
18:55
GET Method
18:56
Coding Example: GET Method
20:13
POST Method
21:09
POST Method
21:10
Coding Example: Sample Form Using the POST Method
23:50
Accessing POST Data in PHP
26:38
Accessing POST Data in PHP
26:39
Coding Example: Accessing POST Data via $_POST
28:15
GET vs. POST
29:54
GET vs. POST
29:55
Example: Accessing POST Data via $_POST
31:20
Example: Accessing POST Data via $_POST
31:21
Homework Challenge
33:00
Homework Challenge
33:01
Web Application Development

14m 11s

Intro
0:00
Version 2.0 Changelog
0:09
Updating the Site's Current Form to Use the POST Method
0:10
Creating Admin Website
2:55
Dynamically Generated Department List
12:40
Writing to Files

17m 38s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
Review of File I/O
0:40
Review of File I/O
0:41
fwrite()
1:38
fwrite()
1:39
fputs()
2:20
'r+'
2:31
Coding Example: fwrite()
2:59
fopen() Access Modes
8:41
'a' and 'a+'
8:42
'w' and 'w+'
11:34
Homework Challenge
14:47
Homework Challenge
14:48
Web Application Development

28m 14s

Intro
0:00
Lesson Overview
0:08
Lesson Overview
0:09
Updated Open File Functions
0:19
openItemsDataFile ( ), openDeptsDataFile ( ), and openLastAddedFile ( )
0:20
insertItem()
6:25
insertItem() Overview
6:26
Functions: createItemDataString ( ) and updateLastItemAdded ( )
7:07
addItemToDepartment ()
16:03
addItemToDepartment () Overview
16:04
Functions: createDeptDataString ( ) and updateDepartment ( )
17:55
HTTP POST: File Uploads

22m 51s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
POST Data Encoding
1:13
POST Data Encoding
1:14
When Data is Included in the Body of the HTTP POST Request and is of the Content Type
1:31
When Uploading Files Using HTTP POST
3:17
Uploading Files
6:22
Uploading Files
6:23
If Encoding Type is Not Set to Multipart/Formdata
9:27
$_FILES Superglobal
10:59
$_FILES Superglobal
11:00
Structure of $_FILES
12:15
Structure of $_FILES: Name, Type, tmp_name, Error, and Size
12:16
Coding Example: $_FILES Superglobal
13:34
Moving an Uploaded File
15:39
Introduction to Moving an Uploaded File
15:40
move_uploaded_file ( ): Definition and Example
16:40
Homework Challenge
21:19
Homework Challenge
21:20
Web Application Development

15m 30s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
Uploading Item Image File
1:22
Uploading Item Image File
1:23
Uploading Item Image File (cont.)
2:43
Altering insertItem ( )
2:44
Helpfer Functions: getFileExtension ( ) and moveUploadedFile ( )
4:30
isValidItem ( )
13:03
Introduction to Object-Oriented Programming

32m 44s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
Object-Oriented Programming
0:56
Introduction to Object-Oriented Programming
0:57
Associative Arrays
5:27
Associative Arrays
5:28
Classes
7:27
Classes Overview
7:28
Defining Classes
8:24
Defining Classes
8:25
Declaring Class Properties
9:25
Coding Example: Classes
10:11
Objects
12:18
Objects Overview
12:19
Classes vs. Objects
12:49
Classes vs. Objects
12:50
Instantiating Classes
14:58
Instantiating Classes
14:59
Coding Example: Instantiate an Item Object
16:30
Object Properties
19:21
Access and Set an Object's Property
19:22
Coding Example: Set & Access the Properties of an Item Object
24:23
Homework Challenge
30:22
Homework Challenge
30:23
Web Application Development

17m 47s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
Version 5.0 Overview
0:50
Version 5.0 Overview and Examples
0:51
Outputting Object Properties
12:38
Outputting Object Properties
12:39
Array Object Properties
14:18
Access and Set Array Value
14:19
Object Methods

39m 57s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Object Methods
0:52
Definition of Object Methods
0:53
Calling Object Methods
3:25
Calling Object Methods
3:26
Coding Example: Simple Object Methods
4:44
Object Methods and Return Values
7:02
$this Variable
10:06
$this Variable: Definition and Example
10:07
$this Variable (cont.)
15:51
$this Variable (cont.)
15:52
Getters & Setters
21:21
Getters & Setters Methods
21:22
Object Methods In Strings
25:46
Object Methods In Strings
25:47
Coding Example: Outputting Method Return Values in Strings
27:41
Using $this to Call Other Methods
28:49
Using $this to Call Other Methods
28:50
Homework Challenge
34:18
Homework Challenge: 1-3
34:19
Homework Challenge (cont.)
36:20
Homework Challenge: 4-6
36:21
Homework Challenge (cont.)
37:52
Homework Challenge: 7-10
37:53
Web Application Development

17m 30s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
Version 6.0 Overview
0:40
Version 6.0 Changes & Examples
0:41
Item Methods
0:53
Item Class Definition: getImageFilename()
0:54
Coding Example: getImageFilename()
1:58
Department Methods
7:33
addItem(), removeItem(), and isItemInDept() Method
7:34
addItemtToDepartment() & buildDeptObject() Functions
11:46
A Default Value Needed to Be Set for $items
16:26
Object Constructors

22m 20s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
Object Constructors
0:32
Introduction to Object Constructors
0:33
Coding Example: Object Constructors
1:43
Defining Constructors
3:26
Defining Constructors
3:27
Coding Example: Constructors with No Arguments
4:24
Constructor Arguments
8:09
Constructor Arguments
8:10
Coding Example: Constructor Arguments
9:49
Important Notes
16:13
Important Notes
16:14
Homework Challenge
17:35
Homework Challenge: 1 - 4
17:36
Homework Challenge (cont.)
19:13
Homework Challenge: 5 - 9
19:14
Homework Challenge (cont.)
21:40
Homework Challenge: 10 and 11
21:41
Web Application Development

16m 19s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
Version 7.0 Overview
0:39
Version 7.0 Overview
0:40
Item Constructor
2:19
Item Constructor
2:20
Department Constructor
7:47
Department Constructor
7:48
Customer Constructor
12:23
Customer Constructor
12:24
More Magic Methods

53m 37s

Intro
0:00
Lesson Overview
0:13
Lesson Overview
0:14
Magic Methods
1:12
Magic Methods
1:13
Destructors
2:45
Destructors Overview
2:46
Coding Example: Calling Destructors
4:30
Coding Example: Object Destructor
9:19
_to String ()
16:12
_to String () Overview
16:13
Coding Example: _to String () Magic Method
18:10
Access Modifiers
21:23
Introduction to Access Modifiers
21:24
Access Modifiers: Public
21:39
Access Modifiers: Private
22:18
Access Modifiers: Protected
22:41
Object Properties and Methods
23:06
Coding Example: Public Access Modifiers
26:48
Coding Example: Private Access Modifiers
28:30
_get()
31:37
_get() Overview
31:38
Coding Example: _get () Magic Method
33:30
_set ()
36:23
_set () & the Magic Method
36:24
Using Getters & Setters
44:37
Coding Example: Using Getters & Setters
44:38
Homework Challenge
50:33
Homework Challenge: 1 - 6
50:34
Homework Challenge (cont.)
51:41
Homework Challenge: 7 - 12
51:42
Web Application Development

31m 12s

Intro
0:00
Version 8.0 Review
0:12
Version 8.0 Review
0:13
private Object Properties
1:15
private Object Properties
1:16
Coding Example
2:54
_toString() Methods
6:51
_toString() Methods
6:52
Coding Example
8:09
DataFile Class
13:27
DataFile Class & I/O Operations
13:28
Using DataFile Class: Instantiate a DataFile, DataFile open () Method, and DataFile close () Method
18:09
Homework Challenge
29:35
Homework Challenge
29:36
Classes vs. Objects

37m 49s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
Class vs. Object Review
0:58
Class vs. Object Review
0:59
Static Properties
2:42
Static Properties
2:43
Scope Resolution Operator (::)
5:26
Scope Resolution Operator (::) & Static Property
5:27
Coding Example: Accessing a Static Property Using the Scope Resolution Operator
7:57
Coding Example: Accessing a Static Property in a Class Definition
10:33
Coding Example: Using a Static Property as an Instance Counter
14:18
Static Methods
18:51
Static Methods Overview
18:52
Coding Example: Static Methods
21:39
Classes vs. Objects
26:28
Classes vs. Objects: Diagrams
26:29
Class Constants
30:24
Class Constants Definition
30:25
Coding Example: Using Class Constants
31:55
Homework Challenge
34:01
Homework Challenge: 1 - 5
34:02
Homework Challenge (cont.)
35:25
Homework Challenge: 6 - 10
35:26
Web Application Development

21m 7s

Intro
0:00
Version 9.0 Overview
0:12
Version 9.0 Changes & Examples
0:13
Output Class
1:08
Output Class & Static Methods
1:09
outputHtmlSelector ( ) Method
2:43
outputItemSelector ( ) Method
4:53
outputDeptSelector ( ) Method
6:42
buildObject() Methods
11:54
buildObject() Methods & Examples
11:55
Exceptions

22m 43s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
try Blocks
0:44
try Blocks Definition
0:45
catch Blocks
2:03
catch Blocks: Definition and Syntax
2:04
Coding Example: try/catch Blocks
3:48
When an Exception Object is Caught & Error Handling
5:59
Exception Class
7:02
Exception Class
7:03
Coding Example: Using try/catch to Catch an Exception Thrown from a Method
8:04
Re-Throwing Exceptions
16:39
Re-Throwing Exceptions
16:40
Coding Example: Re-throwing an Exception
17:21
Homework Challenge
20:40
Homework Challenge: 1 - 5
20:41
Homework Challenge (cont.)
22:17
Homework Challenge: 6
22:18
Web Application Development

22m

Intro
0:00
Version 10.0 Overview
0:11
Updating addItem.php, addItemToDept.php, and error.php
0:12
Updating DataFile Class: open ( ) Method & try/catch blocks
7:45
Version 10.1 Overview
13:37
Version 10.1 Changes & Examples
13:38
Updating DataFile Class: close ( ) Method & logWarning ( )
20:17
Cookies

39m 47s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
What is a Cookie?
1:15
Definition of Cookie
1:16
HTTP - A Stateless Protocol
2:17
HTTP - A Stateless Protocol
2:18
Purpose of Cookies
4:10
Set - Cookie Header
6:21
Introduction to Set - Cookie Header
6:22
Coding Example: Set - Cookie Header
7:38
Cookie Header
9:45
Introduction to Cookie Header
9:46
Example: Cookie Header
10:27
setcookie()
12:33
Introduction to setcookie()
12:34
Example: Using setcookie
13:54
Cookies Attributes
15:48
Cookies Attributes Overview
15:49
Common Cookies Attributes: Domain
16:24
Common Cookies Attributes: Path
17:04
Common Cookies Attributes: Expires
19:34
Coding Example: Setting Cookie Attributes
20:58
$_COOKIE Superglobal
27:03
$_COOKIE Superglobal
27:04
Coding Example: Accessing Cookies from PHP Using $_COOKIE
29:45
Security Implications
34:44
Security Implications
34:45
Homework Challenge
36:10
Homework Challenge: 1 - 4
36:11
Homework Challenge (cont.)
37:47
Homework Challenge: 5 - 7
37:48
Web Application Development

39m 11s

Intro
0:00
Lesson Overview
0:17
Lesson Overview
0:18
instanceof Operator
1:34
instanceof Operator
1:35
Objects with Object Properties
2:53
Objects with Object Properties
2:54
Version 11.0 Overview
6:41
Version 11.0 Changes: Cart and CartItem Classes
6:42
Version 11.0 Coding Example
10:40
Version 11.1 Overview
31:03
Version 11.1 Changes & Examples
31:04
Introduction to Sessions

46m 8s

Intro
0:00
Lesson Overview
0:08
Lesson Overview
0:09
What is a Session?
0:53
What is a Session?
0:54
Client-Side Sessions
3:51
Client-Side Sessions
3:52
Server-Side Sessions
5:04
Server-Side Sessions
5:05
Session IDs
6:26
Session IDs
6:27
The SID is Used by the Server to:
7:08
A Client Passes an SID to the Server with Each HTTP Request Via:
8:15
Sessions in PHP
12:19
Sessions in PHP
12:20
session_start()
14:40
session_start() Overview
14:41
Coding Example: Using session_start () to Continue a Session
18:03
$_SESSION Superglobal
22:06
$_SESSION Superglobal Overview
22:07
Coding Example: Setting a Session Variable via $_SESSION
25:22
Accessing Session Data
28:08
Accessing Session Data
28:09
Deleting Session Data
31:43
Deleting Session Data
31:44
Coding Example: Deleting Session Data
32:16
Configuring PHP Sessions
36:14
session.cookie_lifetime, session.cookie_domain, and session.cookie_path
36:15
Coding Example: Configuring PHP Sessions
37:28
Configuring PHP Sessions (cont.)
40:56
session.use_cookies, session.use_trans_sid, and session.use_only_cookies
40:57
Coding Example: Configuring PHP Sessions
42:25
Homework Challenge
42:55
Homework Challenge: 1 - 5
42:56
Homework Challenge (cont.)
44:10
Homework Challenge: 6 - 10
44:11
Homework Challenge (cont.)
45:27
Homework Challenge: 11 - 13
45:28
Web Application Development

11m

Intro
0:00
Version 12.0 Overview
0:12
Version 12.0 Changes Part I: Updating 'viewCart.php' & 'checkout.php'
0:13
Version 12.0 Changes Part II
5:03
Destroying Sessions

29m 59s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Destroying Sessions
1:02
Destroying Sessions
1:03
session_destroy()
2:10
session_destroy() Overview
2:11
Coding Example: Setting a Session Variable and Destroying a Session
3:18
Deleting Session Cookies
8:38
Deleting Session Cookies
8:39
Coding example: Deleting Session Cookies
9:17
Review of Steps
21:07
Review of Steps
21:08
Garbage Collection
21:50
Garbage Collection Overview
21:51
Coding Example: Garbage Collection
24:30
Homework Challenge
26:28
Homework Challenge: 1 - 4
26:29
Homework Challenge (cont.)
28:16
Homework Challenge: 5 - 9
28:17
Web Application Development

19m 14s

Intro
0:00
Lesson Overview
0:13
Lesson Overview
0:14
_autoload()
0:46
Introduction to _autoload ()
0:47
Version 13.0 Overview
4:06
_autoload () and SessionManager Class
4:07
Updating 'viewCart.php' & 'checkout.php'
11:16
Introduction to Databases

21m 24s

Intro
0:00
Lesson Overview
0:16
Lesson Overview
0:17
Flat Files
1:09
Flat Files: Definition and Example
1:10
Problems Associated with Using Flat Files as a Database
2:15
Relational Databases
3:29
Relational Databases
3:30
Relational Database Management System (RDBMS)
3:50
Tables
7:43
Tables
7:44
Columns
9:24
Columns
9:25
What is SQL?
10:45
Introduction to Structured Query Language
10:46
Standard Data Types of SQL
12:23
Primary Keys
13:19
Primary Keys
13:20
Primary Key Examples
16:36
Primary Key Examples
16:37
Introduction to MySQL

28m 11s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
What is MySQL?
1:33
MySQL
1:34
MySQL Monitor
5:16
MySQL Monitor Overview
5:17
XAMPP & MySQL
5:58
In the MySQL Command: hostname, username and -p
7:05
Connecting to a MySQl Server
9:52
Connecting to a MySQl Server
9:53
Using MySQl Monitor
13:48
Using MySQl Monitor
13:49
GRANT Command
15:10
GRANT SQL Command
15:11
Privileges & Objects
18:18
Username, Hostname, and Password
19:37
Specifying Objects
20:05
Creating a PHP User Account
21:41
Creating a PHP User Account Overview
21:42
Meaning of all & *.*
23:35
Example: Creating a PHP User Account
23:48
Required Homework
26:27
Required Homework: 1 - 5
26:28
Required Homework (cont.)
27:28
Required Homework: 6
27:29
Creating Databases & Tables

23m 1s

Intro
0:00
Lesson Overview
0:08
Lesson Overview
0:09
Creating a Database
1:40
Introduction to Creating a Database
1:41
Example: Creating a Database
3:33
CREATE TABLE Command
6:43
CREATE TABLE Command
6:44
Data Types
7:39
Numeric Data Types: INT, INT UNSIGNED, and DECIMAL
7:40
String Data Types: CHAR (M), VARCHAR (M), and TEXT
9:23
Colum Attributes
11:00
PRIMARY KEY Attribute
11:01
AUTO INCREMENT Attribute
11:35
Items Table
13:07
Items Table
13:08
Useful Commands
17:04
SHOW TABLES Command & DESCRIBE Utility Statement
17:05
Example: Creating an Items Table
17:58
Required Homework
20:51
Required Homework: 1 - 6
20:52
Required Homework (cont.)
21:55
Required Homework: 7 - 9
21:56
SQL Command: INSERT

27m 11s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
INSERT Command
1:20
SQL INSERT Command
1:21
Specifying Values
3:16
Columns with Numeric Data Types
3:17
Columns with String Data Types
3:34
Columns with AUTO INCREMENT
4:07
Inserting Items
5:21
Inserting Items
5:22
Example: Inserting Items
7:03
SQL Text Files
14:04
SQL Monitor Client
14:05
MySQL Monitor & the < Operator
15:15
Example
17:35
Required Homework
22:32
Required Homework: 1 - 6
22:33
Required Homework (cont.)
24:19
Required Homework: 7 - 10
24:20
SQL Command: SELECT

24m 57s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
SELECT Command
0:42
SELECT Command: Definition and Syntax
0:43
Results of a SELECT Query
1:53
To Specify the Retrieval of All Columns from a Table
3:06
Example: SELECT Command
4:18
WHERE Clause
7:11
WHERE Clause
7:12
A SELECT Query with WHERE Clause has the Following Syntax
8:10
A Where Condition can Contain both Logical and Comparison Operators
9:44
Literal Values
13:24
Literal Values
13:25
Example: Literal Values
14:18
ORDER BY Clause
15:31
ORDER BY Clause & SELECT Query
15:32
Ascending and Descending Order
17:30
An ORDER BY Clause can Specify Multiple Columns to Order the Rows by
18:01
Example: SELECT Query with WHERE and ORDER BY Clause
20:32
Homework Challenge
21:59
Homework Challenge
22:00
Homework Challenge (cont.)
23:54
Homework Challenge
23:55
Using PHP from MySQL

32m 43s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
PHP/MySQL Architecture
0:56
PHP/MySQL Architecture
0:57
MySQLi Extension
3:05
MySQLi Extension
3:06
Steps to Using MySQL from PHP
5:53
Four Steps to Using MySQL from PHP
5:54
Step # 3
7:18
Connecting to a Database
8:12
To Connect to a MySQL Database
8:13
To Test for Connection Errors
10:20
Running an SQL Statement
11:54
Running an SQL Statement
11:55
Example
13:30
Processing the Results
15:58
For non-SELECT Queries
15:59
MySQLi Object Property: affected_rows
16:19
For INSERT Statements on Tables with an AUTO_INCREMENT Column
18:07
Closing the Connection
19:45
Closing the Connection
19:46
Coding Example
21:24
Coding Example: Using MySQL from PHP
21:25
Homework Challenge
29:00
Homework Challenge: 1 - 4
29:01
Homework Challenge (cont.)
31:10
Homework Challenge: 5 - 9
31:11
Web Application Development

30m 30s

Intro
0:00
Lesson Overview
0:14
Lesson Overview
0:15
sprintf()
1:28
sprintf() Overview
1:29
Example
1:56
INSERT Statements with sprintf()
5:15
INSERT Statements with sprintf()
5:16
Version 14.0 Overview
10:00
Version 14.0 Changes & Examples Part 1
10:01
Version 14.0 Changes & Examples Part 2
21:58
SELECT QUERIES from PHP

24m 22s

Intro
0:00
Lesson Overview
0:14
Lesson Overview
0:15
SELECT Queries
1:21
SELECT Queries
1:22
MySQLi_Result Class
3:17
MySQLi_Result Class: num_rows
3:18
MySQLi_Result Class: fetch_assoc ( ) and fetch_object ( )
3:59
fetch_assoc()
5:17
fetch_assoc() Overview
5:18
Coding Example: Using fetch_assoc()
9:00
stdClass Objects
12:46
stdClass Objects
12:47
fetch_object()
14:19
fetch_object() Overview
14:20
Coding Example: Using fetch_object()
16:45
Freeing Result Set Memory
18:42
Freeing Result Set Memory
18:43
Coding Example: Using free ( )
20:01
Homework Challenge
22:07
Homework Challenge: 1 - 5
22:08
Web Application Development

17m 6s

Intro
0:00
Version 15.0 Overview
0:13
Version 15.0 Changes & Examples Part 1
0:14
Version 15.0 Changes & Examples Part 2
8:43
Linking Tables

24m 32s

Intro
0:00
Lesson Overview
0:16
Lesson Overview
0:17
A Departments Table
1:08
Departments Table
1:09
How Could We Model This in a Table: Option 1
1:26
How Could We Model This in a Table: Option 2
3:12
Database Normalization
4:37
Database Normalization
4:38
Foreign Keys
8:47
Foreign Keys
8:48
Linking Table
11:26
Linking Table
11:27
Multiple Column Primary Keys
15:30
Multiple Column Primary Keys
15:31
Example
18:51
Required Homework
22:34
Required Homework: 1 - 3
22:35
Required Homework (cont.)
24:10
Required Homework: 4
24:11
Web Application Development

24m

Intro
0:00
Version 16.0 Overview
0:11
Version 16.0 Changes
0:12
Version 16.0 Coding Examples
4:12
Version 16.0 (cont.)
18:30
Version 16.0 Changes & Examples Part 2
18:31
SQL Command: DELETE

10m 33s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
DELETE Statement
0:30
DELETE Statement & Its WHERE Clause
0:31
Delete All Rows From a Table
2:57
Using DELETE from PHP
4:04
Using DELETE from PHP Overview
4:05
Coding Example: Using DELETE from PHP
6:37
Homework Challenge
8:53
Homework Challenge: 1 - 4
8:54
Web Application Development

16m 2s

Intro
0:00
Version 17.0 Overview
0:11
Version 17.0 Changes
0:12
Version 17.0 Coding Example
2:51
Transactions
12:50
Database Transaction
12:51
Steps in Using Transactions
14:00
SQL Command: UPDATE

32m 14s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
UPDATE Statement
0:54
UPDATE Statement & Its WHERE Clause
0:55
Example: UPDATE Statement
3:32
Using UPDATE from PHP
5:21
Using UPDATE from PHP Overview
5:22
Coding Example: Using UPDATE from PHP
6:53
htmlspecialchars()
9:04
htmlspecialchars()
9:05
Encoding Special Characters
9:23
Coding Example: htmlspecialchars()
13:41
addslashes()
20:40
addslashes()
20:41
Coding Example: addslashes()
22:52
Homework Challenge
27:55
Homework Challenge: 1 - 2
27:56
Homework Challenge (cont.)
30:14
Homework Challenge: 3 - 5
30:15
Homework Challenge (cont.)
30:41
Homework Challenge: 6 - 9
30:42
Web Application Development

12m 33s

Intro
0:00
Version 18.0 Overview
0:12
Version 18.0 Changes
0:13
Version 18.0 Coding Example
1:24
SQL: Joins

42m 16s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
DATETIME Data Type
1:52
DATETIME Data Type
1:53
Modeling Orders
5:12
Modeling Orders
5:13
Customers Table
10:46
Customers Table
10:47
Example
16:18
Example: Order Table in MySQL
16:19
Joins
22:26
Joins Overview
22:27
Inner Join
23:09
Example: Joins
24:11
Join Conditions
28:14
Join Conditions
28:15
Example
28:32
Join Queries
30:00
Example: Join Conditions in MySQL
30:36
Implicit Joins
34:42
Implicit Joins
34:43
Example: Implicit Joins
35:57
Aliases
37:28
Introduction to Aliases
37:29
Example: Aliases
38:55
Required Homework
40:32
Problem 1
40:33
Problem 2
41:01
Problem 3
41:17
Web Application Development

29m 34s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Inserting Orders
0:44
Inserting Orders
0:45
Version 19.0 Overview
3:45
Version 19.0 Changes & Example Part 1
3:46
Version 19.0 Changes & Example Part 2
13:18
Version 19.1 Overview
21:10
Version 19.1 Changes
21:11
Version 19.1 Coding Example
22:18
User Authentication

26m 13s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
User Authentication
1:31
User Authentication
1:32
Authentication with Sessions
2:34
Authentication with Sessions
2:35
Four Steps in Authentication via Sessions
2:50
Using Sessions to Restrict Access
3:58
Using Sessions to Restrict Access
3:59
Coding Example: Restricted Access Area
4:47
Authentication Methods
5:54
Authentication Methods Overview
5:55
Coding Example: Authentication Methods
7:31
Logging Out
9:57
Logging Out
9:58
Coding Example: Log Out
10:47
Users Table
13:50
Users Table
13:51
Example: Creating a Users Table
15:08
Password Hashing
17:30
Password Hashing
17:31
PHP and MySQL Built-in Hash Functions: sha1 ( ) and md5 ( )
18:43
Coding Example: Password Hashing
19:27
Required Homework
24:41
Required Homework: 1 - 4
24:42
Web Application Development

14m 36s

Intro
0:00
Version 20.0 Overview
0:13
Version 20.0 Changes & Examples Part 1
0:14
Version 20.0 Changes & Examples Part 2
5:05
Version 20.0 Changes & Examples Part 3
7:29
Version 20.0 (cont.)
8:31
Version 20.0 Changes & Examples Part 4
8:32
Loading...
This is a quick preview of the lesson. For full access, please Log In or Sign up.
For more information, please see full course syllabus of Advanced PHP
Bookmark & Share Embed

Share this knowledge with your friends!

Copy & Paste this embed code into your website’s HTML

Please ensure that your website editor is in text mode when you paste the code.
(In Wordpress, the mode button is on the top right corner.)
  ×
  • - Allow users to view the embedded video in full-size.
Since this lesson is not free, only the preview will appear on your website.
  • Discussion

  • Study Guides

  • Download Lecture Slides

  • Table of Contents

  • Transcription

  • Related Services

Lecture Comments (1)

0 answers

Post by Shachar A on December 18, 2013

how can I download phpDocumentor? I went to the site but it is compilicated , farther more , I have php 3.3 and I want to update, is there a simple way to do it?

Advanced Course Development Environment

  • This course will use the same local development environment setup as the 'Introduction to PHP' course at educator.com. Lecture #3 and lecture #28 in the introductory course contain the information on how to configure your development environment.
  • Course software download links:
  • The code for the course is divided into three directories: 'homework_solutions', 'lecture_examples, & 'web_app'.
  • The 'web_app' directory contains a file called 'changelog.html' that outlines all of the changes made to the Educator Store web application from version to version.
  • Documentation for each version of the web application will be generated using the phpDocumentor software package. The generated documentation for a particular version of the application can be found in the docs subdirectory of that version's main directory.
  • More information about using phpDocumentor can be found at the project's homepage at:
  • For previous Educator PHP students, the following updates were made to the final version of the introductory course's web application:
    • The lib directory was moved into the includes directory.
    • The images directory was moved back into each version’s directory.
    • The VERSION constant has been removed from ‘config.php’, and each web application version’s URIs are now dynamically generated in 'config.php'.

Advanced Course Development Environment

Lecture Slides are screen-captured images of important points in the lecture. Students can download and print out these lecture slide images to do practice problems as well as take notes while watching the lecture.

  • Intro 0:00
  • Lesson Overview 0:11
    • Lesson Overview
  • Development Environment Setup 1:36
    • Firefox Web Browser, XAMPP, and PSPad Text Editor
  • Course Directory Structure 4:36
    • Course Directory Structure
  • phpDocumentor 7:23
    • phpDocumentor Overview
    • Parsing Source Code
    • docs Subdirectory
    • Asvanced PHP Course Documentation Example
  • Previous Educator PHP Students 14:14
    • Lib Directory Changes
    • Images Directory Changes
    • VERSION Constant
    • Comments Noting a Specific Version Number
  • Homework Challenge 17:30
    • Homework Challenge

Transcription: Advanced Course Development Environment

Hello again, and welcome back to Educator.com's Advanced PHP with MySQL course.0000

In today's lesson, we are going to be discussing the details of the advanced course's development environment.0005

Specifically, we are going to be going over what the setup of our development environment for this course is going to be.0013

And then, we are going to go over what directory structure the files we are going to be using in this course are going to follow--0019

for example, how the web application directories are going to be organized;0027

how the lecture examples and homework solution directories are going to be organized.0032

We are also going to talk about some software written in PHP called PHP Documentor,0036

which is something that we are going to be using in this course to document0042

all of the web application function files and class files that we are going to be developing.0046

And we are going to explain a little bit about what that is and what that documentation looks like.0052

We are also going to have a quick note for previous Educator.com PHP students who have taken the introductory course,0058

to just mention some slight changes that have been made to the Educator Store web application0064

from the end of the introductory lesson and to the beginning of this advanced lesson.0070

And then, we are going to introduce our first homework challenge for this course.0074

And homework challenges (for those students new to Educator.com, are challenges that are provided at the end of many different lessons0078

to give you extra activity to work on, so that you can reinforce and learn some of the concepts that we went over in a particular lesson.0088

The development environment setup we are going to be using for this course is the same that we used in the Introduction to PHP course.0098

And that is comprised of a couple different pieces of software--specifically the Firefox web browser (that is the web browser0106

we are going to be using for our development).0113

We are also going to be using the XAMPP for Windows software distribution.0115

And for those of you new to Educator, the XAMPP software distribution is a software package that bundles PHP along with0120

the Apache web server, and makes the installation and configuration of those two easy.0128

And in addition, it also provides the MySQL database.0133

And because in this advanced course, we are going to be dealing with the MySQL database,0136

we are going to take advantage of that piece of software that is added to the distribution, as well.0140

Additionally, we are going to be editing our text files and doing our code development in the PSPAD text editor for Windows.0145

If we go and look at our web browser, you can see that Mozilla is the maker of the Firefox web browser,0153

so this is the page that you will go to to download the Firefox software.0162

And all of these links are available in the introductory lesson.0166

This website, called apachefriends.org, is the maker of the XAMPP for Windows software distribution.0172

And this website tells a little bit about the different versions of the software (for example, Apache, PHP, and MySQL)0178

that are included in the distribution we are going to be using.0184

And then, pspad.com is where you can download the text editor that we are going to be using.0187

Additionally, we are also going to be using the Firebug add-on to Firefox, which is a web development tool0195

that you can add on to Firefox to help you when working with web applications and diagnosing different problems.0203

And if I click on this (it's already installed) little bug down here at the bottom of the screen, you can see the Firebug add-on pop up.0209

We will be working with that in this course--specifically when we are learning about HTTP and how that works.0216

In lecture 3 of the introductory course, that contains all of the instructions0228

for setting up the development environment we are going to be using in this course.0231

So, for those of you that are new to Educator.com, I encourage you to go check out lecture 3 to find out how to set up the environment.0234

It walks through all of the different steps to get things up and running.0241

And what that is going to allow you to do is to hopefully be able to mimic the things that we do here in the lectures on your own home computer.0246

Additionally, there is lecture 28, titled Sending Email using PHP, that is part of that introductory course.0254

And that also makes some configuration changes to the development environment that allow you to send email from your PHP code.0261

And we use that in our Educator Store web application.0270

As far as the course goes, the course examples (the web application, the lecture examples,0278

and the homework solutions) are all going to be combined into a particular directory structure.0288

And when you go to the Advanced PHP course's website, you will be able to download a ZIP file0293

that contains all of the homework examples, lecture examples, and versions of the web application.0298

What I am going to do now is just go over the structure of that ZIP file and how these files are going to be structured0305

within our web tree, or the document root of our Apache server.0313

The first thing is: we are going to be creating a file called advanced_php in the document root of Apache.0317

If we go to that, I have already gone in and unzipped this file that you are going to be able to get on the website.0325

And if you look in XAMPP, if you go to the XAMPP installation directory, there is an htdocs folder,0332

which is the document root of the Apache web server, bundled with XAMPP.0342

And we have an advanced_php folder.0346

Now, within that folder, there are going to be three different folders: one that is homework_solutions,0349

which has a folder for each lecture that has a homework challenge and provides a solution for it.0354

There is also a lecture_examples folder, which provides copies of all the examples that we run as we go through the lectures in the course.0361

And probably most interesting is the web_app folder: and what that does is contains all of the different versions of the Educator Store0371

web application that we are going to be developing and building on as we go throughout this advanced course.0377

For each version of the web app, there will be a separate folder that is going to contain all of the files for that particular version of the web application.0383

Here, you can see, we have version 0.0; and what that is: that is the baseline web app that we are going to start from.0390

Because we had already been developing this web app in the introductory course, we are going to baseline the app with version 0.0.0397

We are going to say, "This is where we are going to start from, and this is the version that we are going to add onto as we add new concepts in this course."0404

Additionally, there is also going to be a file called change_log.html within this web app folder.0413

What that is going to do is be an HTML file you can view in your browser that is going to allow you to see all of the different changes0419

that were made when going from one version to the next.0426

So, it will help you when looking at the different versions of the web app.0429

Rather than just looking at the source code to see the changes, you will be able to go to change_log.html and see any specific changes that were made.0433

As mentioned, what we are going to be using for this course, or at least the code that we are going to be including in the ZIP file0446

that you can download for this course, is going to be documented using a tool known as PHP Documentor.0453

And what it is: it is a tool that is used to automatically generate code documentation.0460

The way it works is: it parses source code files and looks for particular things known as tags and formatting structures that you add as a programmer.0465

And then, from those, you can generate documentation.0475

And if you take a look at, for example, outputLIB.php, which is our output function library,0479

and we look at the outputHtmlTag function, we can see that the documentation for this particular function has some strange tags in it.0487

And what they are, are ways to describe to the PHP Documentor tool information about the particular function.0499

For example, the @param tag is used to describe to the PHP Documentor all of the different parameters that a particular function takes.0506

The @return tag is used to describe the data type of the return value and what the return value represents.0516

There are a bunch of different other tags that we can use.0526

For example, here, this is an in-line source tag, which outputs in the documentation all of the source code for a particular function.0529

What happens is: PHP Documentor goes through and parses over all of these source code files and generates documentation.0539

Now, for this course, we are not going to be teaching how to use the PHP Documentor software.0549

But it is an extremely useful tool for generating documentation, and it is going to make it easier for me to explain0556

the different concepts that we will be learning throughout the course, and to look at the different source code,0563

because it formats source code in a nice, pretty format, and it is going to make it easier to describe things.0567

It is something that Educator will be doing on the back end; and with each version of the web application that we create,0574

and that we are going to include in the ZIP file you can download, there is going to be documentation generated for that particular version.0583

And it is going to be contained in the docs folder for each version of the web application folder.0590

For example, if we go to the advanced_php folder, and go to the web app directory, and we look at (for example) version 0.0,0598

we will see that there is a docs folder.0606

And it has an index.html file, which you can browse to, that is going to show documentation for all of the different functions,0608

and when we learn about objects and classes, all of the classes that are used in that particular version of the web application.0615

If we go...I'm going to go and show you what the documentation looks like.0622

For example, if we go to version 0.0 (and this is just browsing to this file in our web browser), and we go to docs, it automatically loads index.html.0628

And what you can see is: it has a rather nicely-formatted website, and it provides information0639

about all the functions that we use in this version 0.0 of the web app.0646

For example, you can categorize the functions into different groups.0652

For example, I have categorized all of the output functions that are contained in outputLIB.php into an output category.0656

And it lists here all of the different functions that are defined in this outputLIB.php.0663

So, for example, if we click on the link outputHtmlTag, we can see the documentation that PHP Documentor has created for this particular function.0669

And what it did was: it went through and parsed this source code file that we have (and we talked about the different0680

tags that it looked for) and generates this documentation.0685

We can see, it has a statement about what the function does.0690

It returns a well-formed HTML tag, including any provided tag attributes and/or tag body.0693

It provides a little additional information that we can include to describe what the function does.0700

Here, we can see, it outputs the source code of that particular function.0705

And this is going to be useful to us, because when we are going over and explaining how the different versions of the web app work,0709

we are typically going to be using the documentation to look at the source code, because, as you can see,0715

it formats the code in a rather nice way; it does syntax highlighting, so that you can see things and make things clearer.0723

Additionally, it also has links to different functions.0732

For example, the one thing that the code automatically does is: if you use, for example, the is_string function0737

within one of your methods, you can click on it, and it will automatically link to that function's reference at php.net.0745

For example, if I click on is_string, it (and this is a little bit) goes to the php.net website and shows you the documentation for is_string.0752

And that is really quite a useful feature.0763

The other thing that it will allow you to do is (for example): down here, in the outputImg function,0766

when we look at the source code for it, we can see that it also calls the outputHtmlTag.0770

And if you will notice, outputHtmlTag is actually a link, and if we click on it, it goes and links to the outputHtmlTag's documentation.0777

So, it really is a convenient way to browse the documentation for different functions.0784

It enables you to figure out how the different functions work together, and how they are connected.0789

One other thing to note is that, if you want to look at the source code for a particular file...for example, if we want to look0796

at the source code for all of the output functions in outputLIB.php, if we click on outputLIB.php, it brings us to this page.0802

We can click on the link on the top that says Source Code for this File, and what it does is contains all of the source code that is contained in that file.0812

And this, again, shows it formatted in a nice way.0820

You can see here the different PHP Documentor tags, but you can also see all of the code that you have written.0823

We are going to be using that to look through the code as we work throughout the course.0829

If you want to find out more information about using PHP Documentor, and if you want to use that in your own code0834

(and I highly recommend it--it is a very useful tool), you can find information about that at phpdoc.org.0839

And one of the ways you can learn about how to use it is seeing the different tags that we used within our source code files for the course.0846

Now, I just wanted to briefly mention a couple of things for those students that are previous Educator PHP students that have taken the introductory course.0856

In addition to adding these PHP Documentor tags to all of our source code files, that allow us to create this documentation,0865

there have been a couple of other changes that have been made to the final version of that introductory web app.0874

A couple of things to note are that the LIB directory, where we contain our function libraries, has been moved to the Includes directory...0879

Before, LIB and Includes were two separate directories in the root directory of the web app version.0888

Now, the LIB directory is contained in the Includes directory.0894

Additionally, we have also moved the Images directory back into each version of the web app.0898

For example, each version of the web app...if we go to version 1.0, it has its own Images directory.0904

If we go to version 1.1, it has its own Images directory.0912

We had, in the introductory course, moved that out of that directory to demonstrate working with constants0918

and being able to change the location of an image directory and have your application still work.0924

But we did that to emphasize a point, but now we are going to use the Images directory in a more real-world application,0931

where it would actually be in the root directory of the web application.0937

Additionally, in our configuration file, config.php, we have gotten rid of the version constant.0941

And what we have done now is generated all of the URI's and paths that we use in our config file (for example) to load libraries and to load include files.0947

We are going to generate the URI's dynamically.0961

So, if we look at the old version of config.php, we can see we had a version constant.0964

And for each version of the web app, we would have to come in and update this version number.0971

And as you can see here, we used this constant to define the path to our particular version of the web application.0976

Now, what we have done is removed that constant and generated this root URI, which is the path we use to define (for example)0986

where our images are located in IMAGE_DIR, as well as where our Includes directory and our LIB directory are, and so forth.0998

We generate that dynamically, and we do that using the magic constant __FILE__, and then also using our SERVER ['DOCUMENT_ROOT'].1006

So, there is a little bit of code here at the beginning that will automatically generate that.1013

What that is going to do is: now, every time we update the version of the web application, we don't have to go and update that version constant anymore.1016

And finally, another thing that we have done is just updated some of the comments.1025

There were some comments that noted specific version numbers in the introductory course.1030

For example, there might be a comment that said, "This function was added in version 16.0."1034

Well, 16.0 is not relevant in this advanced course; it's version 16.0 in the introductory course.1038

So, we have gone ahead and removed those version numbers from our comments.1045

For the homework challenge for today, I would just like you to look through the web application source code1053

to make sure you understand how our web application is functioning.1058

You can go through version 0.0, play around with the code, and play around with the website to see how it works.1061

Additionally, I think it would be a good idea if you looked through the documentation that has been generated1069

by PHP Documentor for version 0.0, which is our baseline version for this course,1074

so you can get a feel for what the documentation looks like and how to use it, and how you can link, for example, from function to function:1081

how you can click on a link to go to the php.net website.1088

And it will just give you some experience, getting familiar with what that documentation looks like,1091

because we are going to be looking at that documentation a lot throughout the course.1095

Finally, for students that are new to Educator.com, I would like you to go ahead and (if you need to)1100

review lecture 3 and lecture 28 from the introductory course, to find out what you need to do1106

to get your development environment set up on your computer,1113

so that you can mimic the things that we do here in the lectures on your home computer.1116

That ends today's lesson; thank you for watching Educator.com, and I look forward to seeing you next time.1122

Educator®

Please sign in to participate in this lecture discussion.

Resetting Your Password?
OR

Start Learning Now

Our free lessons will get you started (Adobe Flash® required).
Get immediate access to our entire library.

Membership Overview

  • Available 24/7. Unlimited Access to Our Entire Library.
  • Search and jump to exactly what you want to learn.
  • *Ask questions and get answers from the community and our teachers!
  • Practice questions with step-by-step solutions.
  • Download lecture slides for taking notes.
  • Track your course viewing progress.
  • Accessible anytime, anywhere with our Android and iOS apps.