Matthew M.

Matthew M.

Object Constructors

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

Start Learning Now

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

Sign up for Educator.com

Membership Overview

  • Unlimited access to our entire library of courses.
  • 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 lesson files for programming and software training practice.
  • Track your course viewing progress.
  • Download lecture slides for taking notes.
  • Learn at your own pace... anytime, anywhere!

Object Constructors

  • A constructor is a special object method that gets called automatically each time a new instance of a class is instantiated.
  • Constructors are used to perform any initialization tasks that need to be done before an object is ready to be used, such as providing default values for all of an object’s properties.
  • In PHP 5, constructors are known as magic methods and must be named __construct(). They are defined within a class definition just like any other object method.
  • Arguments are provided to an object’s constructor method by specifying them between the parentheses following the class name when an object is created using the new keyword:
    $person1 = new Person(‘Joe’, ‘Smith’);
  • A class is not required to have a constructor method.
  • Unlike other programming languages, only one constructor method can be defined per PHP class.
  • Additional Resources:

Object Constructors

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
  • Object Constructors 0:32
    • Introduction to Object Constructors
    • Coding Example: Object Constructors
  • Defining Constructors 3:26
    • Defining Constructors
    • Coding Example: Constructors with No Arguments
  • Constructor Arguments 8:09
    • Constructor Arguments
    • Coding Example: Constructor Arguments
  • Important Notes 16:13
    • Important Notes
  • Homework Challenge 17:35
    • Homework Challenge: 1 - 4
  • Homework Challenge (cont.) 19:13
    • Homework Challenge: 5 - 9
  • Homework Challenge (cont.) 21:40
    • Homework Challenge: 10 and 11

Transcription: Object Constructors

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

In today's lesson, we are going to be covering the topic known as object constructors, which are a special type of object methods.0005

We are going to go over what an object constructor is.0012

We are going to talk about how to define constructors within your class definitions.0016

We are going to talk about how to specify arguments to constructors, and then just go over some important notes,0022

as they relate to using constructors in PHP.0028

In object-oriented programming, a constructor is a special object method that is called every time you create a new instance of an object.0034

For example, if we go back to our typical Person class, every time we create a new instance of the Person class,0045

using this new keyword, a special object method for the Person class, called a constructor, gets executed.0057

And it is done automatically by PHP.0066

It is a special kind of method; you don't actually have to define one, but if you do (which is what we are going to go over in this course),0071

it has to have this special name here: and constructors in PHP 5 (which is what we are working with) are known as magic methods.0076

And that means they have some special meaning in PHP.0087

In this case, it means it is something that PHP knows to call automatically.0089

And any time you see a method with two underscores before the name of it, that is reserved as a magic method.0093

And we will talk more about that in a future lesson--about what magic methods are.0099

For example, let's take a look at Person.php.0104

And we are going to go more into the details in a second.0110

This is an object method that is a constructor for this Person object.0112

It is defined just as you would any other method, except it has to have this special name.0120

It has to have this name: two underscores, followed by the word construct, and then parentheses.0124

And just to show you that inside our constructor, it doesn't do anything: it is a function that can do pretty much anything other functions can do...0129

We are going to echo a statement that says we are inside this Person constructor,0137

so we know that this method is being executed--because we never actually call this construct method directly.0140

So, to let you know what is going on behind the scenes, we are going to demonstrate that.0149

And all we are going to do is: in this simpleConstructor.php script, we are going to just instantiate a new instance of this Person class.0153

Now, because we have defined a constructor for it, PHP is automatically0162

going to run that constructor every time this new keyword defines a new instance of the class.0165

And because that constructor is going to get run, it is going to output the message.0171

If we go and look at this script simpleConstructor.php, we can see that it outputs the message "inside Person constructor."0176

Even though we never actually explicitly called, for example, Person __construct, like we would another object method,0188

it gets done every time this new statement is executed.0198

Constructors can be defined just like any other object method.0208

As we mentioned, they have to have this specific name here to be called automatically.0211

One thing they can't do is return a value; but as far as methods go, they can do the same thing, pretty much, as other object methods and functions can do.0216

They can accept parameters, and they can perform operations within them.0225

Typically, a constructor is used to perform initialization tasks that need to be done before an object is ready to use.0229

For example, when you have properties defined in a particular object, because that constructor gets called0239

every time a new instance of that object is created, you can use that as an opportunity to set default values for your properties,0245

or to maybe perform some other advanced functionality that you might need to do before a user can really use that object.0255

If we take a look at a new version of Person.php (which, again, just has a firstName and lastName property), here we have defined the constructor.0264

It takes no arguments; and we will talk about ones that can take arguments in a second.0278

And what this object method, this constructor, does, is: it initializes our firstName and lastName variables, just so that they have default values.0283

It is just going to initialize them to the empty string.0292

So, at least that way, if someone calls new Person, and then tries to access these variables,0295

it will at least return a string (in this case, the empty string), because a user of the Person class would be expecting a string to be returned.0301

If you will notice, again, as we have done in our other object methods: to access an object's properties from within an object method,0310

which a constructor is, you use the $this special variable.0317

So, if we go to our script called noArgConstructor, what it does is instantiates a new Person class.0322

And we don't do anything else with that Person; we don't set the values of any variables or anything like that.0331

We are not making any statements like this.0338

All we are doing is instantiating the class; and by default, that is automatically going to call that default constructor.0345

And then, what we are going to do is: down here, we are going to try and output those variables--those object properties, firstName and lastName.0352

Now, because this constructor has been called, they get set with the default variable of the empty string.0361

I just have a little test that we have created down here that tests if this instance of the Person object's firstName is equal to null,0366

which means it hasn't been initialized, because that is a default initialization value for variables in PHP.0380

Then, it is going to return the value of firstName.0387

Now, what it is going to do: this is a ternary operator, and it is going to set this firstName variable equal to that firstName value.0390

So, in this example, firstName has set a variable; it is set to the empty string.0398

It is not a string that has anything, but it is set to a string, so it is not null.0403

And otherwise, this is going to return the string null.0408

When we output firstName, if firstName hasn't been initialized, it is going to output null.0412

If it has been (which we know it has, from our constructor), it is going to output the empty string.0416

And we do the same thing down here for our lastName.0421

If we go and load this script in our browser, noArgConstructor.php, we can see that, when it tried to output firstName and lastName,0423

it output the empty string; and so, that means that the values were not equal to null.0434

Let's say, instead, that in our constructor, we didn't initialize, for example, the lastName variable; let's say we just removed that.0440

So, we only initialized firstName.0448

Because of that, lastName is never going to be initialized; it is not going to be a string; it is going to be set equal to null.0451

When we run our script, we are going to see lastName, and it is going to output the value null.0456

And so, that shows using a constructor to initialize variables.0462

And pretty much, that is what you are always going to want to do with your constructor.0468

You always want to give, for various reasons, default values to all of an object's properties.0471

And the main place you do that is within the constructor.0480

And we are going to see a little bit more about that on our next slide.0484

One thing that we noted is that constructors are methods; in that way, they can take parameters, just like any other object method or function can do.0491

And the way you provide objects to an object's constructor is by specifying them in between the parentheses0500

when you instantiate a new instance of the object.0508

Normally, when we call an object method, and we want to pass it two parameters, we would call the method name, and then pass it the parameters.0514

Because this is done automatically in PHP, what PHP knows to do is that, if you provide any parameters0527

between the parentheses in a statement where you are instantiating a new instance of an object (in this case, the Person object),0534

whatever is in parentheses are going to be passed as parameters to that constructor object.0542

So, you can define constructors that can accept multiple parameters.0546

They are placed in a comma-delimited list, just like any arguments you would supply to any other function or object method.0550

The only difference is just that you are not actually calling the method by its name; you are just using the name of the class.0558

And PHP, again, knows how to automatically pass those variables on to the construct method.0564

One thing that this is typically used for is, for example, our Person object.0571

The Person object has a first name and a last name; what you can do is use a constructor that requires two parameters.0576

And so, whatever values you pass it, it can use to set as the firstName and lastName of that Person, which is what constructors are commonly used for.0583

For example, if we look at our new version of Person.php, we can see that we have an updated constructor0590

that takes two parameters: one called firstName and one called lastName.0599

And then, it sets the value of our object property, firstName, equal to whatever value was passed in by the firstName parameter.0603

And it does the same thing for our lastName property: it sets the lastName property of this instance that this constructor is being called for.0612

And it sets it equal to the value that is passed into the constructor via lastName.0621

For example, now, when we call our constructor for Person, we can pass it two parameters.0628

We can pass it a first name and a last name--in this case, Joe Smith.0634

And now, what we can do is: we are going to output things, the same as we did before.0638

We are going to test if firstName is equal to null and if the lastName property is equal to null.0642

And if not, it is going to store, in the value of firstName and lastName, the values of those firstName and lastName properties, respectively.0646

And if not, it is going to return null.0653

Now, because, when you call this constructor, it is going to set these values for the firstName and lastName properties,0655

when this ternary operation occurs and these echo statements occur,0662

it is going to output that firstName and lastName we provided to the constructor.0668

If we run this script as is, we can see that it outputs that firstName equals Joe and lastName equals Smith.0673

Now, in our previous version of Person, we had a default construction that didn't take any parameters0682

and just set the default values to the empty string.0687

In that example, if we wanted to set the firstName and lastName properties of that Person object,0692

we would have to say like "firstName='Joe'" and we would have to call it in a separate assignment statement.0700

So now, when we go and run this version of (actually, let's do a different name, 'Joe Jones,' so we can see there is a difference)...0720

and we go back to our last script, the noArgConstructor, we can see that now it outputs Joe and Jones.0731

But we had to go and use these two separate assignment statements.0738

What this new constructor that accepts parameters does is: it allows us to create a Person and set the names of some of its properties,0743

without having to call separate assignment statements; that is one of the nice things that you can use a constructor for.0754

And then, one of the key things with constructors is that, if a constructor does take, for example, two parameters0762

(our Person object, in this case--the constructor takes two parameters), you have to pass it all of those parameters.0770

So, let's say we leave out one of them, and we run our script.0777

We are going to get an error from PHP, saying there is a missing argument for our constructor method.0783

It is saying that you have to provide argument values for all of the parameters of a particular function.0798

Now, as mentioned, a key thing that a constructor does is set default values for properties.0812

In this case, our constructor requires two parameters; so, our firstName and lastName always get set, every time that constructor is called.0821

In our last example, where we didn't accept any parameters, this one causes problems if you don't properly initialize things.0829

Let's say we had a new property to this Person class called arr1, which is going to represent an array.0839

And let's say that, in our constructor, we don't initialize it.0849

We'll go ahead and initialize firstName and lastName, as before.0856

And when we go ahead and run this noArgConstructor script, it is going to run (let's get rid of these) fine, and it works as functions.0862

However, because users of our Person class will know that it contains an array as one of its properties, maybe they will try to access that array.0879

For example, maybe they will run a test that tests for a particular value in that array.0893

For example, they will call in the Person object; they will access that property, arr1.0900

And they are going to say, using the in_array function, for example, "Is the string 1 within that array property of the Person object?"0907

Now, because that hasn't been initialized, this is going to cause an error.0924

So, if we go ahead and try to load this now, it's going to say, "Warning: in_array() expects parameter 2 to be array."0928

This is an example of some of the problems that come up when you don't initialize the properties of your class.0935

The way you would handle this would be to go ahead, in our Person class, in the constructor,0943

which is the place to do this, and say arr1 equals empty array.0949

So now, it is definitely an array; it is an empty array, but at least it won't cause problems when other code tries to access it as an array.0956

Now, when we run our script, it is not going to throw any problems, because it is actually an array data type.0964

A couple of things to note: as you have seen in our web application example, a class is not required to have a constructor method.0974

We haven't actually had that, for example, in our Item and Department objects within our web application.0981

However, if it is provided, PHP will automatically run it for you.0988

As mentioned (to mention it again), it is good practice to make sure that all of an object's properties are initialized.0992

And you can do that in the constructor method.0998

And then, one thing to note, for those of you that have used other programming languages, is:1001

unlike other programming languages, in PHP, you can only have one constructor defined per class.1005

A lot of other languages allow what is known as constructor overloading, where you can have different constructors for an object that take different parameters.1009

And depending on how many parameters, for example, you put in parentheses when you are declaring an instance of an object,1017

the other programming languages, will call different constructors, based on how many parameters are provided.1033

So, you can maybe have two constructors: maybe one of them takes one parameter, and one of them takes two.1040

Well, on PHP, that is not allowed; so for those of you that are familiar with that in other languages, that is not something that you can do in PHP.1047

For the homework challenge, what I am going to have you do is update something that you did in our last homework, which is our HttpRequest class.1056

The first thing I am going to have you do is create a new property for the class called method.1065

And method is going to be an integer that can have a value of 0 or 1, to represent whether this HttpRequest is a GET request or a POST request.1070

If the value is 0, it is a GET request; if the value is 1, it is a POST request.1079

Then, what I want you to do is alter the getRequest method so that, when it outputs that first line of HttpRequest1086

(for example, GET /index.html, HTTP /1.1), it is going to test the value of this method property.1092

And if it is a 0, it is going to use the GET method; it is going to output GET /index.html.1101

If it is a 1, it is going to use the POST method; it is going to say POST /index.html.1105

Update the getRequest method.1111

Then, I want you to add a constructor (and that is what we are going to take from this lesson today) that takes two parameters.1114

The first one is going to be the uri property.1120

As you remember from our HttpRequest class that you were to design in the last homework,1124

the HttpRequest object has a uri property that represents the URI for this HTTP request.1130

So, you are going to pass in a string; the constructor is going to take a string that is going to set the uri property.1139

It is also going to take an integer, a 0 or a 1, that is going to allow you to set the method property.1143

When we create this HttpRequest, we can set its method and its uri, all by calling the constructor.1149

Make sure, also, that your constructor initializes the headers property.1156

You are probably going to want to do it to an empty array, because headers, as you remember, is an array.1163

That is what we are using it as within our HttpRequest class.1168

And the constructor is a place where we initialize object variables, so we are going to give it the default value, typically, of an empty array.1175

So, make sure you do that for headers.1182

And then, I want you to go ahead and create an instance of this new updated HttpRequest class,1184

where you supply it both some random URI (like /index.html), and then a 1 that is going to set the method property to the POST method.1190

Go ahead and add a Host header to the object, using the addHeader method.1203

And then, call getRequest on that object, and output its output between pre tags.1208

And then, verify that your output has the format here.1214

If it is implemented correctly, you should see that POST is output as the method of this request,1217

because we passed it a 1 when we created the instance; and also, that it has a Host header on it, as well.1224

And the value of that can be whatever you pass to it.1233

But the main portion for this lesson is about the POST.1235

Then, what I want you to do is alter the constructor so that, if a value is provided for method...1239

because it is a parameter required for that constructor, I can provide a method with a value that is a string 'A.'1245

Well, that is not a 0 or a 1, so that is not useful to us.1252

So, in the constructor, if the value provided for the method property is not a 0 or a 1, then it is going default1255

and set the value method equal to 1, which, in this case--the default would be the GET method.1264

So, this is an example of how you can also use your constructor to make sure that your objects start off in a well-known state.1270

You can perform some error checking; so, instead of being able to set...1277

all of your functions (for example) in your HttpRequest object are going to be expecting a 0 or a 1 as a value for method.1282

Well, by using the constructor to ensure that method only gets set to a 0 or a 1,1290

you are going to make sure that those other functions are going to work as expected.1297

Then, to test out that this new constructor that tests method to make sure it is a valid value works,1302

go ahead and create another instance of the class, but this time providing the integer 5 as the method argument.1310

And then, verify that now, when you output the request using the getRequest method,1317

it actually has the GET method listed in the request.1322

And that is because your constructor should, by default, if a 0 or 1 is not provided, default method to 0, which corresponds to the GET method.1326

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

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.