Home Page Icon
Home Page
Table of Contents for
cover
Close
cover
by M A Hossain Tonu, Bart McLeod, Mark McCollum, Vijay Joshi, Markus Gray, David Ca
The PHP Workshop
Preface
About the Book
About the Chapters
Conventions
Before You Begin
Installing PHP 7.3 (Ubuntu)
Installing PHP 7.3 (Windows)
Installing MySQL 5.7 (Ubuntu)
Accessing MySQL as Root (Using sudo)
Creating a Test User
Granting all Privileges on a Test User
Installing MySQL Workbench
Installing MySQL 5.7 (Windows)
Installing Composer
Installing the Insomnia REST Client
Installing the Code Bundle
1. Introducing PHP
Introduction
Getting Started with PHP Web Development
Built-in Templating Engine
PHP in the Interactive Shell
Exercise 1.1: Printing Hello World to the Standard Output
Exercise 1.2: Printing Hello World by Executing a PHP File
Assigning and Using Variables
Creating and Assigning Variables to Print Simple Messages on the Web Browser
Exercise 1.3: Using Input Variables to Print Simple Strings
Exercise 1.4: Using the Built-in Server to Print a String
HyperText Markup Language
Cascading Style Sheets
Exercise 1.5: Creating a Login Form Page Using Bootstrap
Exercise 1.6: Printing PHP Code Output between HTML Tags
Using the Server Variable
Exercise 1.7: Displaying Server Information
Other Predefined Variables
Assignment by Value and by Reference
Exercise 1.8: Assigning a Variable by Reference and Changing its Value
Using isset to Check for Variable Declaration
Exercise 1.9: Using isset to Check whether a Variable Has Been Set
Activity 1.1: Displaying Query Strings in the Browser
Summary
2. Types and Operators
Introduction
What are Data Types?
Integers
Strings
Single and Double-Quoted Strings
Heredoc and Nowdoc Syntaxes
Floats
Boolean
Exercise 2.1: Using Simple Data Types
Arrays
Indexed and Associative Arrays
Adding and Removing Items from an Array
Exercise 2.2: Creating a Multidimensional Array
Scalar Types
Type Conversion
Exercise 2.3: Converting a Boolean to an Integer
Exercise 2.4: Converting an Integer to a String
Exercise 2.5: Converting Centimeters to Meters
Operators and Expressions
Arithmetic Operators
String Operators
Bitwise Operators
Assignment Operators
Comparison Operators
Increment/Decrement Operators
Logical Operators
Array Operators
Conditional Assignment Operators
Activity 2.1: Printing the BMI of a User
Summary
3. Control Statements
Introduction
Boolean Expressions
Boolean Constants
Logical Operators
The not Operator
The and Operator
The or Operator
The xor Operator
Short-Circuit Evaluation and Operator Precedence
The Precedence of Logical Operators
|| versus or
&& versus and
Comparison Operators
Branching
The if Statement
The if…else Statement
Exercise 3.1: Creating a Basic Script to Implement the if...else Test Case
Exercise 3.2: Implementing the Nested if...else Structure
The Ternary Operator
The if…elseif…else Statement
Exercise 3.3: Creating a Script Using the if... elseif... else Statement
The switch Case
Exercise 3.4: Creating a Script to Implement a Switch Case
Looping
Bounded Loops versus Unbounded Loops
The while Loop
Exercise 3.5: Printing the Numbers 1 to 10 Using a while Loop
The do…while Loop
Exercise 3.6: Converting a while Loop to a do...while Loop
The for Loop
Exercise 3.7: Using a for Loop to Print the Days of the Week
The foreach Loop
Exercise 3.8: Using a foreach Loop to Print the Days of the Week
Nesting Loops
Exercise 3.9: Using Nested foreach Loops
The break Statement
Exercise 3.10: Using a break Statement to Terminate a Loop's Execution
The continue Statement
Exercise 3.11: Using continue to Skip an Item in a List
Alternative Control Syntaxes
Using System Variables
Activity 3.1: Creating a Movie Listing Script to Print Movies per Director
Tips for Control Structures
Summary
4. Functions
Introduction
What is a Callable?
Exercise 4.1: Using Built-in Functions
Types of Callables
Language Constructs
Introduction to Built-In Functions
Finding Built-In Functions
Parameters and Return Values
Passing Parameters by Reference
Passing Scalar Variables by Reference
Optional Parameters
Exercise 4.2: Working with print_r()
A Varying Number of Parameters
Flag Parameters
Exercise 4.3: Using Built-In Functions with Arrays
Introduction to User-Defined Functions
Naming Functions
Documenting Your Functions
Namespaced Functions
Pure Functions
Scope
The $GLOBALS Superglobal Array
Exercise 4.4: Using the $GLOBALS array
The Single Responsibility Principle
The function Keyword
Identifier
Type Hints
The Spread Operator (…) with Type Hints
Parameters in User-Defined Functions
Return Types in User-Defined Functions
Signature
Returning a Value
Parameters and Arguments
Optional Parameters
Parameters Passed by Reference to Our Function
Default Values for Parameters
Exercise 4.5: Writing a Function that Adds Two Numbers
Variable Functions
Anonymous Functions
Using a Variable from Outside of Scope Inside an Anonymous Function
Exercise 4.6: Working with Anonymous Functions
Exercise 4.7: Creating Variable Functions
Exercise 4.8: Playing with Functions
Activity 4.1: Creating a Calculator
Summary
5. Object-Oriented Programming
Introduction
The Object-Oriented Approach
OOP Concepts
Classes
Instantiating a Class
Class Attributes
Class Constants
The $this Variable
Class Methods
Exercise 5.1: Using the Getter and Setter Methods
Constructor
Destructor
Exercise 5.2: Instantiating the Class and Printing the Details
Inheritance
Exercise 5.3: Implementing Inheritance
Access Modifiers
Exercise 5.4: Applying Access Modifiers
Static Fields and Methods
parent:: and self::
Exercise 5.5: Applying a Static Member
Class Abstraction
Exercise 5.6: Implementing an Abstract Class
Interfaces
Exercise 5.7: Implementing an Interface
Abstract Classes versus Interfaces
Class Type Hinting Plays a Role in Dependency Injection
Overriding
Attribute Overriding
Method Overriding
Exercise 5.8: Overriding an Inherited Method
Overloading
Attribute Overloading
Method Overloading
Exercise 5.9: Implementing Attribute and Method Overloading
Final Classes and Methods
Exercise 5.10: Implementing a Final Class and Methods
Traits
Exercise 5.11: Implementing Trait
Class Autoloading
Namespaces
Exercise 5.12: Implementing Namespaces
Activity 5.1: Building a Student and Professor Object Relationship
Summary
6. Using HTTP
Introduction
The Request-Response Cycle of a Web Application
A Typical HTTP Request
A Typical HTTP Response
Request Methods
GET HTTP Requests
POST HTTP Requests
Query Strings
PHP Superglobals
$_SERVER
Exercise 6.1: Dumping the $_SERVER Data
$_COOKIE
Exercise 6.2: Setting and Reading a Cookie
$_SESSION
Exercise 6.3: Writing and Reading Data from a Session
$_GET
Exercise 6.4: Using Query Strings in Web Pages
$_POST
Exercise 6.5: Sending and Reading POST Data
$_FILES
Exercise 6.6: Uploading a File and Validating its Type
Securing Input and Output Data
Best Practices
Sanitizing and Validating the User Input
Exercise 6.7: Sanitizing and Validating the User Input
Escaping the Output
Cross-Site Scripting (XSS)
Exercise 6.8: Securing against XSS
Cross-Site Request Forgery (CSRF)
Exercise 6.9: Securing against CSRF
Building an Application (Bootstrapping the Examples)
web/
src/
components/
handlers/
templates/
Exercise 6.10: Building an Application: The Home Page
Exercise 6.11: Building an Application: The Profile Page and the Login Form
Activity 6.1: Creating a Support Contact Form
Summary
7. Data Persistence
Introduction
File I/O Handling
Reading Files with PHP
A Simple File Read
Exercise 7.1: A Simple File Read (All at Once)
Reading Files with the fread Function
Exercise 7.2: Reading Files with the fread Function
Benchmark File Reading
Exercise 7.3: Benchmark File Reading
Reading Files Line by Line
Exercise 7.4: Reading Files Line by Line
Reading CSV Files
Exercise 7.5: Reading CSV Files
Downloading a File with PHP
Exercise 7.6: Downloading a File
Writing a File with PHP
Exercise 7.7: Writing to Files
Exercise 7.8: Appending Content in Files
Other Filesystem Functions
Deleting a File with PHP
Exercise 7.9: Deleting a File with PHP
Moving Files with PHP
Exercise 7.10: Creating Directories and Moving Files to the Archive
Copying Files Using PHP
Exercise 7.11: Copying Files
Databases
GUI Clients
Connecting to MySQL
Connecting to MySQL
Exercise 7.12: Connecting to MySQL
Creating a Database
Exercise 7.13: Creating a Database
Creating a Table
Exercise 7.14: Creating the Table
Inserting Data into a MySQL Database Table
Exercise 7.15: Inserting Data into a Table
SQL Injection
Prepared Statements
Using Prepared Statements
Exercise 7.16: Inserting Data Using Prepared Statements
Fetching Data from MySQL
Exercise 7.17: Fetching Data from MySQL
Updating Records in MySQL
Exercise 7.18: Updating Records in MySQL
Deleting Records from MySQL
Exercise 7.19: Deleting Records from MySQL
The Singleton Pattern
Activity 7.1: Contact Management Application
Summary
8. Error Handling
Introduction
Errors in PHP
Handling Errors
The Default Error Handler
Using a Custom Error Handler
Exercise 8.1: Using a Custom Error Handler
Exercise 8.2: Logging with the Custom Error Handler
Triggering a User-Level Error
Exercise 8.3: Triggering Errors
Logging Errors at Script Shutdown
Exercise 8.4: Logging Fatal Errors at Shutdown
Exceptions
Basic Usage
Exercise 8.5: Implementing Exceptions
Custom Exceptions
Exercise 8.6: Custom Exceptions
Custom Exception Handler
Using a Custom Exception Handler
Exercise 8.7: Using a Custom Exception Handler
Translating Errors to Exceptions
Exercise 8.8: Translating Errors to Exceptions
Exercise 8.9: Simple Exception Handling
Exercise 8.10: Better Usage of Exceptions
Activity 8.1: Handling System and User-Level Errors
Summary
9. Composer
Introduction
Dependency Management
Using Composer
Exercise 9.1: Getting Started with Composer
Initializing a Project
Exercise 9.2: Initializing a Project
Requiring Packages
Exercise 9.3: Adding Dependencies
Semantic Versioning
Applying Version Constraints
Exercise 9.4: Applying Version Constraints
The Lock File
Exercise 9.5: Re-Installing Vendor Files
Dev Dependencies
Exercise 9.6: Installing Development Dependencies
Packagist
Exercise 9.7: Discovering Packages on Packagist.org
Namespaces
Autoloading
Using Composer Packages
Exercise 9.8: Using PSR-4 to Load Classes
Exercise 9.9: Implementing Monolog
Activity 9.1: Implementing a Package to Generate a UUID
Summary
10. Web Services
Introduction
An Example Web Service
Selecting Third-Party APIs
RESTful Concepts
Request Formats
Exercise 10.1: JSON Encoding
HTTP Headers
Authentication and Authorization
Manual API Testing
Exercise 10.2: Manual API Testing with Insomnia
Making a Request with PHP
Exercise 10.3: Making a GET Request with Guzzle
Exercise 10.4: Sending a POST Request with Headers
Activity 10.1: Making Your Own POST Request to httpbin.org
Summary
Appendix
Chapter 1: Introducing PHP
Activity 1.1: Displaying Query Strings in the Browser
Chapter 2: Types and Operators
Activity 2.1: Printing the BMI of a User
Chapter 3: Control Statements
Activity 3.1: Creating a Movie Listing Script to Print Movies per Director
Chapter 4: Functions
Activity 4.1: Creating a Calculator
Chapter 5: Object-Oriented Programming
Activity 5.1: Building a Student and Professor Object Relationship
Chapter 6: Using HTTP
Activity 6.1: Creating a Support Contact Form
Chapter 7: Data Persistence
Activity 7.1: Contact Management Application
Chapter 8: Error Handling
Activity 8.1: Improving the User Experience through the Handling System and User-Level Errors
Chapter 9: Composer
Activity 9.1: Implementing a Package to Generate a UUID
Chapter 10: Web Services
Activity 10.1: Making Your Own POST Request to httpbin.org
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Next
Next Chapter
C14196_FM_Final_SW
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset