100% нашли этот документ полезным (1 голос)
20 просмотров56 страниц

Learn PHP 8: Using MySQL, JavaScript, CSS3, and HTML5 Second Edition Steve Prettyman Download

Документ представляет собой информацию о книге 'Learn PHP 8: Using MySQL, JavaScript, CSS3, and HTML5' второго издания автора Стива Преттмана. Он включает ссылки на загрузку книги и другие ресурсы, а также описывает содержание и структуру книги, включая главы и темы, охватываемые в ней. Книга предназначена для обучения основам PHP 8 и его взаимодействию с другими веб-технологиями.

Загружено:

xfnzybztx408
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
100% нашли этот документ полезным (1 голос)
20 просмотров56 страниц

Learn PHP 8: Using MySQL, JavaScript, CSS3, and HTML5 Second Edition Steve Prettyman Download

Документ представляет собой информацию о книге 'Learn PHP 8: Using MySQL, JavaScript, CSS3, and HTML5' второго издания автора Стива Преттмана. Он включает ссылки на загрузку книги и другие ресурсы, а также описывает содержание и структуру книги, включая главы и темы, охватываемые в ней. Книга предназначена для обучения основам PHP 8 и его взаимодействию с другими веб-технологиями.

Загружено:

xfnzybztx408
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
Вы находитесь на странице: 1/ 56

Learn PHP 8: Using MySQL, JavaScript, CSS3, and

HTML5 Second Edition Steve Prettyman pdf


download

https://textbookfull.com/product/learn-php-8-using-mysql-
javascript-css3-and-html5-second-edition-steve-prettyman/

Download more ebook instantly today - get yours now at textbookfull.com


We believe these products will be a great fit for you. Click
the link to download now, or visit textbookfull.com
to discover even more!

Biota Grow 2C gather 2C cook Loucas

https://textbookfull.com/product/biota-grow-2c-gather-2c-cook-
loucas/

Learning PHP MySQL JavaScript With jQuery CSS HTML5 5th


Edition Robin Nixon

https://textbookfull.com/product/learning-php-mysql-javascript-
with-jquery-css-html5-5th-edition-robin-nixon/

Learning PHP, MySQL & JavaScript, 6th Edition Robin


Nixon

https://textbookfull.com/product/learning-php-mysql-
javascript-6th-edition-robin-nixon/

Pro HTML5 Games. Learn to build your own Games using


HTML5 and JavaScript Aditya Ravi Shankar

https://textbookfull.com/product/pro-html5-games-learn-to-build-
your-own-games-using-html5-and-javascript-aditya-ravi-shankar/
New Perspectives on HTML5, CSS3, and JavaScript 6th
Edition Patric Carey

https://textbookfull.com/product/new-perspectives-on-
html5-css3-and-javascript-6th-edition-patric-carey/

Learning PHP MySQL JavaScript Early Release 6th Edition


Robin Nixon

https://textbookfull.com/product/learning-php-mysql-javascript-
early-release-6th-edition-robin-nixon/

Murach s HTML5 and CSS3 Anne Boehm

https://textbookfull.com/product/murach-s-html5-and-css3-anne-
boehm/

Beginning iPhone and iPad Web Apps Scripting with HTML5


CSS3 and JavaScript 1st Edition Apers Chris Paterson
Daniel

https://textbookfull.com/product/beginning-iphone-and-ipad-web-
apps-scripting-with-html5-css3-and-javascript-1st-edition-apers-
chris-paterson-daniel/

Responsive Web Design by Example Embrace responsive


design with HTML5 CSS3 JavaScript jQuery and Bootstrap
4 Hussain

https://textbookfull.com/product/responsive-web-design-by-
example-embrace-responsive-design-with-html5-css3-javascript-
jquery-and-bootstrap-4-hussain/
Learn PHP 8
Using MySQL, JavaScript, CSS3, and
HTML5

Second Edition

Steve Prettyman
Learn PHP 8
Using MySQL, JavaScript, CSS3,
and HTML5
Second Edition

Steve Prettyman
Learn PHP 8: Using MySQL, JavaScript, CSS3, and HTML5
Steve Prettyman
Key West, FL, USA

ISBN-13 (pbk): 978-1-4842-6239-9 ISBN-13 (electronic): 978-1-4842-6240-5


https://doi.org/10.1007/978-1-4842-6240-5

Copyright © 2020 by Steve Prettyman


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with
every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an
editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the
trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not
identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to
proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication,
neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or
omissions that may be made. The publisher makes no warranty, express or implied, with respect to the
material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Steve Anglin
Development Editor: Matthew Moodie
Coordinating Editor: Mark Powers
Cover designed by eStudioCalamar
Cover image by Alvaro Pinot on Unsplash (www.unsplash.com)
Distributed to the book trade worldwide by Apress Media, LLC, 1 New York Plaza, New York, NY 10004,
U.S.A. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit
www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer
Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail [email protected]; for reprint,
paperback, or audio rights, please e-mail [email protected].
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and
licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales
web page at www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available to
readers on GitHub via the book’s product page, located at www.apress.com/9781484262399. For more
detailed information, please visit http://www.apress.com/source-code.
Printed on acid-free paper
This edition is dedicated to all essential workers throughout the world
who have helped provide a more safe world from illness (pandemics)
and other natural disasters. Your dedication makes the world a better
place. You support the Key West, Florida (USA),
motto of “One Human Family.”
Table of Contents
About the Author����������������������������������������������������������������������������������������������������� xi

About the Technical Reviewer������������������������������������������������������������������������������� xiii


Acknowledgments���������������������������������������������������������������������������������������������������xv

Introduction�����������������������������������������������������������������������������������������������������������xvii

Chapter 1: An Introduction to PHP 8������������������������������������������������������������������������� 1


Chapter Objectives/Student Learning Outcomes�������������������������������������������������������������������������� 1
PHP 7, PHP 7.4+, PHP 8, and PHP.NET������������������������������������������������������������������������������������������ 1
PHP Versions: PHP 7+, PHP 7.4+, and PHP 8+������������������������������������������������������������������������ 7
Do It����������������������������������������������������������������������������������������������������������������������������������������� 9
PHP, JavaScript, CSS, HTML, and Apache Web Server���������������������������������������������������������������� 10
Do It��������������������������������������������������������������������������������������������������������������������������������������� 15
PHP, Apache, and MySQL/MariaDB���������������������������������������������������������������������������������������������� 15
Do It��������������������������������������������������������������������������������������������������������������������������������������� 21
Putting It All Together—PHP, Apache, and MySQL����������������������������������������������������������������������� 21
easyPHP��������������������������������������������������������������������������������������������������������������������������������� 22
XAMPP����������������������������������������������������������������������������������������������������������������������������������� 27
Microsoft Internet Information Server����������������������������������������������������������������������������������� 31
Do It��������������������������������������������������������������������������������������������������������������������������������������� 31
Testing Your Environment����������������������������������������������������������������������������������������������������������� 32
Testing Your Administration Environment������������������������������������������������������������������������������ 32
Do It��������������������������������������������������������������������������������������������������������������������������������������� 34
Testing Your PHP Environment����������������������������������������������������������������������������������������������� 34
Do It��������������������������������������������������������������������������������������������������������������������������������������� 37

v
Table of Contents

Alias (Working) Directories���������������������������������������������������������������������������������������������������������� 37


Do It��������������������������������������������������������������������������������������������������������������������������������������� 40
Notepad++, Editors, and Code Testers��������������������������������������������������������������������������������������� 40
Notepad++���������������������������������������������������������������������������������������������������������������������������� 41
Other Editors�������������������������������������������������������������������������������������������������������������������������� 41
Do It��������������������������������������������������������������������������������������������������������������������������������������� 42
Chapter Terms����������������������������������������������������������������������������������������������������������������������������� 42
Chapter Questions and Projects�������������������������������������������������������������������������������������������������� 43

Chapter 2: Interfaces, Platforms, and Three-Tier Programming���������������������������� 47


Chapter Objectives/Student Learning Outcomes������������������������������������������������������������������������ 47
PHP Platforms����������������������������������������������������������������������������������������������������������������������������� 47
PHP, AJAX, and CSS—Web Applications�������������������������������������������������������������������������������� 48
PHP, AJAX, and CSS—Smart Phone Web Applications���������������������������������������������������������� 56
PHP Three-Tier Architecture�������������������������������������������������������������������������������������������������������� 63
Do It��������������������������������������������������������������������������������������������������������������������������������������� 65
Interface Tier������������������������������������������������������������������������������������������������������������������������� 65
Do It��������������������������������������������������������������������������������������������������������������������������������������� 67
Business Rules Tier��������������������������������������������������������������������������������������������������������������� 68
Do It��������������������������������������������������������������������������������������������������������������������������������������� 70
Data Tier�������������������������������������������������������������������������������������������������������������������������������� 70
Do It��������������������������������������������������������������������������������������������������������������������������������������� 72
Putting It All Together������������������������������������������������������������������������������������������������������������ 72
Case Study����������������������������������������������������������������������������������������������������������������������������� 74
Do It��������������������������������������������������������������������������������������������������������������������������������������� 80
MVC and Dependency Injection�������������������������������������������������������������������������������������������������� 80
Chapter Terms����������������������������������������������������������������������������������������������������������������������������� 81
Chapter Questions and Projects�������������������������������������������������������������������������������������������������� 82

Chapter 3: The Basics: PHP 8 Syntax��������������������������������������������������������������������� 89


Chapter Objectives/Student Learning Outcomes������������������������������������������������������������������������ 89
The Basic Syntax������������������������������������������������������������������������������������������������������������������������� 89
Do It��������������������������������������������������������������������������������������������������������������������������������������� 98
vi
Table of Contents

Conditional Statements��������������������������������������������������������������������������������������������������������������� 98
Do It������������������������������������������������������������������������������������������������������������������������������������� 108
Functions���������������������������������������������������������������������������������������������������������������������������������� 109
Do It������������������������������������������������������������������������������������������������������������������������������������� 115
Arrays���������������������������������������������������������������������������������������������������������������������������������������� 116
Do It������������������������������������������������������������������������������������������������������������������������������������� 121
Chapter Terms��������������������������������������������������������������������������������������������������������������������������� 122
Chapter Questions and Projects������������������������������������������������������������������������������������������������ 123

Chapter 4: Modular Programming������������������������������������������������������������������������ 129


Chapter Objectives/Student Learning Outcomes���������������������������������������������������������������������� 129
PHP Libraries, Extensions, Classes, and Objects���������������������������������������������������������������������� 129
PHP Extensions������������������������������������������������������������������������������������������������������������������������� 130
Classes and Objects������������������������������������������������������������������������������������������������������������ 132
Creating a PHP Class����������������������������������������������������������������������������������������������������������������� 133
Do It������������������������������������������������������������������������������������������������������������������������������������� 140
Return Method�������������������������������������������������������������������������������������������������������������������������� 141
Do It������������������������������������������������������������������������������������������������������������������������������������� 144
Set Methods������������������������������������������������������������������������������������������������������������������������������ 145
Do It������������������������������������������������������������������������������������������������������������������������������������� 153
Get Methods������������������������������������������������������������������������������������������������������������������������������ 154
Do It������������������������������������������������������������������������������������������������������������������������������������� 159
Constructor Method������������������������������������������������������������������������������������������������������������������ 159
Do It������������������������������������������������������������������������������������������������������������������������������������� 165
Chapter Terms��������������������������������������������������������������������������������������������������������������������������� 166
Chapter Questions and Projects������������������������������������������������������������������������������������������������ 167

Chapter 5: Secured User Interfaces���������������������������������������������������������������������� 175


Chapter Objectives/Student Learning Outcomes���������������������������������������������������������������������� 175
Secured User Interaction���������������������������������������������������������������������������������������������������������� 175
HTML5 Form Validation������������������������������������������������������������������������������������������������������������� 176
Do It������������������������������������������������������������������������������������������������������������������������������������� 179

vii
Table of Contents

PHP Filtering����������������������������������������������������������������������������������������������������������������������������� 180


Do It������������������������������������������������������������������������������������������������������������������������������������� 182
Additional HTML Input Security������������������������������������������������������������������������������������������������� 182
HTML5 Select List Box and Radio Buttons�������������������������������������������������������������������������� 183
Do It������������������������������������������������������������������������������������������������������������������������������������� 188
Validating Input with an XML File���������������������������������������������������������������������������������������� 188
Dependency Injection���������������������������������������������������������������������������������������������������������������� 194
Do It������������������������������������������������������������������������������������������������������������������������������������� 212
Chapter Terms��������������������������������������������������������������������������������������������������������������������������� 213
Chapter Questions and Projects������������������������������������������������������������������������������������������������ 214

Chapter 6: Handling and Logging Exceptions������������������������������������������������������� 219


Chapter Objectives/Student Learning Outcomes���������������������������������������������������������������������� 219
Handling Exceptions����������������������������������������������������������������������������������������������������������������� 220
Do It������������������������������������������������������������������������������������������������������������������������������������� 229
Exception and Error Handling vs. If/Else Conditions����������������������������������������������������������������� 229
Do It������������������������������������������������������������������������������������������������������������������������������������� 239
Logging Exceptions������������������������������������������������������������������������������������������������������������������� 239
Do It������������������������������������������������������������������������������������������������������������������������������������� 248
Reading Log and Text Files������������������������������������������������������������������������������������������������������� 248
Do It������������������������������������������������������������������������������������������������������������������������������������� 258
Chapter Terms��������������������������������������������������������������������������������������������������������������������������� 259
Chapter Questions and Projects������������������������������������������������������������������������������������������������ 260

Chapter 7: Data Objects���������������������������������������������������������������������������������������� 265


Chapter Objectives/Student Learning Outcomes���������������������������������������������������������������������� 265
The Data Class�������������������������������������������������������������������������������������������������������������������������� 265
JSON Data��������������������������������������������������������������������������������������������������������������������������������� 280
MySQL and NoSQL Data with MySQL 8+���������������������������������������������������������������������������������� 281
Do It������������������������������������������������������������������������������������������������������������������������������������� 284
Backup and Recovery��������������������������������������������������������������������������������������������������������������� 284
JSON Backup and Recovery������������������������������������������������������������������������������������������������������ 302

viii
Table of Contents

MySQL Backup and Recovery��������������������������������������������������������������������������������������������������� 303


Do It������������������������������������������������������������������������������������������������������������������������������������� 307
Connecting the Data Tier����������������������������������������������������������������������������������������������������������� 308
Do It������������������������������������������������������������������������������������������������������������������������������������� 315
Chapter Terms��������������������������������������������������������������������������������������������������������������������������� 316
Chapter Questions and Projects������������������������������������������������������������������������������������������������ 317

Chapter 8: Authentication������������������������������������������������������������������������������������� 321


Chapter Objectives/Student Learning Outcomes���������������������������������������������������������������������� 321
Verification and Sessions���������������������������������������������������������������������������������������������������������� 321
JSON Data��������������������������������������������������������������������������������������������������������������������������������� 334
MySQL Data������������������������������������������������������������������������������������������������������������������������������ 334
Do It������������������������������������������������������������������������������������������������������������������������������������� 335
Registration������������������������������������������������������������������������������������������������������������������������������� 336
JSON Data��������������������������������������������������������������������������������������������������������������������������������� 340
MySQL Data������������������������������������������������������������������������������������������������������������������������������ 341
Logging In��������������������������������������������������������������������������������������������������������������������������������� 342
JSON Data��������������������������������������������������������������������������������������������������������������������������������� 349
MySQL Data������������������������������������������������������������������������������������������������������������������������������ 349
Change Password��������������������������������������������������������������������������������������������������������������������� 350
JSON Data��������������������������������������������������������������������������������������������������������������������������������� 356
MySQL Data������������������������������������������������������������������������������������������������������������������������������ 356
Do It������������������������������������������������������������������������������������������������������������������������������������� 356
Chapter Terms��������������������������������������������������������������������������������������������������������������������������� 357
Chapter Questions and Projects������������������������������������������������������������������������������������������������ 357

Chapter 9: Multifunctional Interfaces������������������������������������������������������������������� 361


Chapter Objectives/Student Learning Outcomes���������������������������������������������������������������������� 361
The Complete Application��������������������������������������������������������������������������������������������������������� 361
Data Handling Using JavaScript������������������������������������������������������������������������������������������������ 362
Do It������������������������������������������������������������������������������������������������������������������������������������� 380

ix
Table of Contents

Updating, Deleting, and Inserting in the Interface Tier�������������������������������������������������������������� 380


Do It������������������������������������������������������������������������������������������������������������������������������������� 390
Updating, Deleting, and Inserting in the Business Rules Tier���������������������������������������������������� 390
Do It������������������������������������������������������������������������������������������������������������������������������������� 399
Final Touches���������������������������������������������������������������������������������������������������������������������������� 399
Do It������������������������������������������������������������������������������������������������������������������������������������� 410
ABC Canine Shelter Reservation System Logical Design���������������������������������������������������������� 411
Limitations/Suggestions������������������������������������������������������������������������������������������������������ 412
Chapter Terms��������������������������������������������������������������������������������������������������������������������������� 415
Chapter Questions and Projects������������������������������������������������������������������������������������������ 415

Index��������������������������������������������������������������������������������������������������������������������� 419

x
About the Author
Steve Prettyman earned his bachelor of arts degree in education from Oglethorpe
University in 1979. He quickly began his teaching career as a high-school mathematics
instructor while continuing his education by earning a master’s degree in business
information systems from Georgia State University (1985). Since then, Steve has spent
over 30 years in the IT industry. He has also been a professor at Chattahoochee Technical
College, Kennesaw State University, and Southern Polytechnic State University for over
25 years. His primary teaching responsibilities include programming, web design, and
web application development. Steve, his wife Beverly, and their two dogs (Pixee and
Buster) currently reside in Paradise (Key West, Florida).

xi
About the Technical Reviewer
Satej Kumar Sahu works in the role of Senior Enterprise Architect at Honeywell. He is
passionate about technology, people, and nature. He believes through technology and
conscientious decision making, each of us has the power to make this world a better
place. In his free time, he can be seen reading books, playing basketball, and having fun
with friends and family.

xiii
Acknowledgments
Thank you to everyone who has helped put this book together. Special thanks to the
Introduction to PHP classes that have been the true testers and debuggers for this
journey.
Special acknowledgment to all the open source developers and providers of
free tutorials and training to every Internet user who wants to learn more about
programming.

xv
Introduction
Learn PHP 8: Using MySQL, JavaScript, CSS3, and HTML5 is intended for use as a
beginner- and intermediate-level programming book. It is not the goal of this book
to cover advanced techniques in the current versions of the PHP programming
language. Some knowledge of general programming concepts is expected, but no actual
programming experience or education is assumed.
All code examples in this book are compatible with PHP 8. Most examples are
compatible with PHP 7. The newest (as of the publication date) methods (functions)
available in PHP have been used to provide the reader with the most current coding
techniques. The examples use core methods provided in the PHP language. PHP
includes many additional methods to accomplish similar tasks. The reader may,
and should, research additional ways of improving security, performance, and other
techniques. It is the goal of this book to prompt users to always consider using the most
secure and efficient methods of program development. The code in this book provides
some examples of using these techniques. The user should remember that no program
is 100% secure. The programmer can only strive to make an application as secure as
possible. It takes a team of developers, network personnel, security administrators, data
center personnel, and others working together to provide the safest environment.

A Different Approach
There are quite a number of PHP books on the market today. What makes this book any
different than others?

• This book uses the concept of “learning by doing,” which shows the
reader how to develop applications with conditional statements,
loops, arrays, and methods. Over 70 PHP methods (functions) are
introduced and demonstrated in coding examples.

• Very early in the book, the reader is introduced to object-oriented


(OO) programming techniques. Many other books only briefly cover
OO programming (if at all) in the final chapters.

xvii
Introduction

• Object-oriented set methods are used to verify and filter user input.
Many other books simply show a set method accepting data and
storing it.

• A major objective of the book is to convince the reader to create all


programs as secure and efficient as possible. The newest password
encryption techniques (password_hash) are demonstrated.

• The try and catch methods are introduced to capture exceptions


and some errors. The newest versions of PHP have been created to
handle exceptions and errors using this approach.

• Multitier program design is introduced in the early chapters. This


allows the reader to discover what logic and coding should take place
in each tier. Many PHP books do not even cover this topic.

• The majority of the examples in the book are used to develop one
main application (ABC Canine Shelter Reservation System). As
the book progresses, the application is built from the beginning, in
stages, showing the reader that application development should be
broken into stages. Only after each stage is completed and tested
can the next stage begin. This approach works hand in hand with
multitier design. Additional programming exercises and a term
project are provided to enhance the understanding of development.

• The creation of user, change, and error logs are introduced. This
allows the reader to gain an understanding of how to provide backup
and recovery ability to keep an application functioning properly
when security breaches or exceptions occur.

• The introduction of data objects and the data tier demonstrates to the
reader the importance of creating an application that provides the
ability to change data storage techniques and data storage location
without requiring a major rewrite of the application. XML, JSON, and
MySQL examples are provided.

• A natural relationship between PHP, HTML5, CSS3, and JavaScript


is demonstrated throughout the book. This relationship is one of the
major strengths of PHP.

xviii
Introduction

• Throughout the book, web links are provided to point the user to
additional resources to help understand the material or to dig deeper
into the subject matter. Updates to link locations are provided on the
book’s web site.

Special Note for Teachers


The design of the content of this book provides flexibility in teaching styles and approaches.
Each college and university approaches the initial education of programming concepts in
different ways. This book provides three different types of programming exercises, which
allow teachers to pick and choose what would work best in their environment. “Do It”
exercises are provided in each chapter to allow the student to gain hands-on experience with
techniques shown by modifying existing examples to produce the desired results. These
exercises provide a level of confidence before the student attempts to program exercises at
the end of the chapters. In addition, a term project is provided that builds an application that
uses the same types of algorithms and programming techniques shown in the book.

Code Examples, Images, and Links


Every effort has been made to catch any errors in code (and grammar). Please let us
know if/when you discover problems in this book. Please send all corrections to Steve
Prettyman ([email protected]).
All code examples, images, and links are available via the Download Source Code
link on the book’s product page, located at www.apress.com/9781484262399 and
the following location. Copying code from the book may cause errors due to format
requirements for publishing.

C
 hapter Overview
C
 hapter 1: An Introduction to PHP 8
After completing this chapter, the student will be able to

• Understand the difference between LAMP, WAMP, and MAMP

• Successfully install a version of LAMP, WAMP, or MAMP


xix
Introduction

• Search the Internet for troubleshooting problems

• Explain the difference between a programming language and a


scripting language

• Create an error-free simple PHP program

C
 hapter 2: Interfaces, Platforms, and Three-Tier
Programming
After completing this chapter, the student will be able to

• Give examples of platforms or containers that can host PHP programs

• Create a simple, dynamic web application using PHP

• Explain three-tier design and determine what is contained in each


tier

• Design a three-tier application

• Explain each step of the program development life cycle (PDLC)

• Define and explain MVC and dependency injection

C
 hapter 3: The Basics: PHP 8 Syntax
After completing this chapter, the student will be able to
• Create a simple, error-free PHP program

• Understand the use and value of conditional statements

• Understand the use and value of for, while, and foreach loops

• Understand the use and value of functions

• Understand the use and value of arrays

xx
Introduction

C
 hapter 4: Modular Programming
After completing this chapter, the student will be able to

• Create an error-free, simple objected-oriented (OO) modular PHP


program

• Create a PHP class and make an instance of the class (object)

• Create an OO PHP encapsulated program, including get and set


methods

• Create PHP methods (functions) that accept parameters and return


information

• Create PHP public and private properties (variables)

• Import existing PHP code from another file or library into a program

• Validate information received using ternary (conditional) operators

C
 hapter 5: Secured User Interfaces
After completing this chapter, the student will be able to

• Explain why user input must be validated in the interface and


business rules tiers

• Explain why user input must be filtered in the business rules tier

• Use HTML5 code to validate user input


• Use JavaScript code to validate user input

• Use PHP if statements (conditional statements) to validate and filter


input

• Use the foreach loops to dynamically create an HTML select box


from an XML file

• Use simple arrays for filtering and validation


• Pass simple arrays into methods (functions)

• Understand how to use dependency injection to control code version


changes

xxi
Introduction

C
 hapter 6: Handling and Logging Exceptions
After completing this chapter, the student will be able to

• Explain the difference between errors and exceptions

• Create a PHP program that can handle general exceptions

• Create a PHP program that can create, raise, and handle user
exceptions

• Explain and use a switch and/or embedded if/else statement

• Create a PHP program that uses the while loop and/or the for loop

• Create a program that reads/updates a text file using a


two-­dimensional array

• Create a PHP program that logs exceptions and emails support


personnel

C
 hapter 7: Data Objects
After completing this chapter, the student will be able to

• Create a data class that inserts, updates, and deletes XML or JSON
data

• Explain how to create a data class that updates MySQL Data using a
SQL Script

• Create a PHP program that creates a change backup log

• Create a PHP program that can recover data from a previous backup

• Apply changes to create up-to-date valid information

• Use dependency injection to attach a data class to another class in


the BR tier

• Create a three-tier PHP application

xxii
Introduction

C
 hapter 8: Authentication
After completing this chapter, the student will be able to

• Define sessions and explain how they are used for authentication

• Create a PHP program that authenticates user logon

• Create a PHP program that registers users

• Create a PHP program that will allow users to change their passwords

• Create a PHP program that logs invalid login attempts

C
 hapter 9: Multifunctional Interfaces
After completing this chapter, the student will be able to

• Create a complete PHP application that deletes, updates, and inserts


data

• Create a professional look to a completed application using CSS

• Use JavaScript to accept and manipulate data from another program

• Secure all programs within an application requiring user


IDs/passwords

• Populate HTML objects with values from a JSON object

xxiii
CHAPTER 1

An Introduction to PHP 8
PHP is a popular general-purpose scripting language that is especially
suited to web development. Fast, flexible, and pragmatic, PHP powers
everything from your blog to the most popular web sites in the world.
—www.php.net

Chapter Objectives/Student Learning Outcomes


After completing this chapter, the student will be able to

• Understand the differences between LAMP, WAMP, and MAMP

• Successfully install a version of LAMP, WAMP, or MAMP

• Search the Internet for troubleshooting problems

• Explain the difference between a programming language and a


scripting language

• Create an error-free simple PHP program

PHP 7, PHP 7.4+, PHP 8, and PHP.NET


Today, PHP (Hypertext Preprocessor) is one of the most popular languages used for web
application development. The language has evolved to allow the programmer to quickly
develop well-formed error-free programs using both procedural and objected-oriented
programming techniques. It provides the ability to use many preexisting libraries of
code that either come with the basic installation or can be installed within the PHP
environment. This gives you multiple ways to complete a particular task. It provides
more flexibility than many other languages. The ease with which additional libraries of
code can be added to the environment is one of the many driving forces in its popularity.

1
© Steve Prettyman 2020
S. Prettyman, Learn PHP 8, https://doi.org/10.1007/978-1-4842-6240-5_1
Chapter 1 An Introduction to PHP 8

Procedural language—A procedural programming language


includes functions/methods that can be called from the main flow
of the program. The flow of the program jumps to the function/
method, executes the code within the module, and then returns
to the next statement in the main flow of the program. Some
procedural languages include a main function/method that
automatically is called when the program is executed.

Object-oriented language—An object-oriented language uses


classes and objects. Classes are similar to blueprints. A class
describes what an object can contain, including properties/
variables and functions/methods. An object is an instance of a class
(like a building that has been created from a blueprint). Object-­
oriented languages provide polymorphism, encapsulation, and
inheritance. Objects are naturally encapsulated by containing all
related functions/methods and properties/variables within the
object itself. Polymorphism allows duplicate method/function
names within object-oriented objects. However, the “signature”
must be different. The “signature” is the combination of the types
of variables (numbers and characters) passed into the method/
function and the type of information passed out of a method/
function. For example, several add methods could be created—
one that only accepts integers (whole numbers), one that only
accepts floating-point numbers (numbers with decimals), and one
that accepts a combination. The program will determine which
method/function to call by what has been passed into the method/
function. Inheritance in object-oriented programming allows an
object to inherit properties/variables and functions/methods from
another object. The object can also override those items inherited.
This is similar to a child inheriting characteristics from the parents.
Object-oriented languages can also be event driven. An event-­
driven program will “sleep” until an event occurs. This is similar to
an ATM machine program waiting for a user to input an ATM card
or walk in front of the machine.

2
Chapter 1 An Introduction to PHP 8

PHP is an open source language. As such, each version of the language is created
using input from the individuals who use it—the programmers themselves. This allows
the language, over time, to evolve and float into the direction that is driven by the users.
From its first release in 1995 as a Personal Home Page Tool (PHP) by Rasmus Lerdorf, the
versions have been released on the Internet with forums to provide users the ability to
make suggestions and even provide code changes and additions. Today, www.php.net is
the official PHP web site.

Open source language—An open source programming language


is developed by a community of interested parties. The community
accepts input from fellow programmers for suggested upgrades
and corrections. Several members of the community work together
to present proposals and to make changes to the language. Open
source languages are “free.” A non-open source language (such
as Microsoft C#) is created and updated by a company or major
organization. Non-open source languages are not usually “free.”

Figure 1-1. PHP.NET (03/28/2020)

The www.php.net home page provides information on each of the latest releases of
the language. It also provides information on future releases, the features planned for
those releases, and the planned release dates. In addition, other related PHP information
can be found, including links and information to major PHP conferences.

3
Chapter 1 An Introduction to PHP 8

Figure 1-2. Get involved (03/28/2020)


As mentioned, this site provides the ability for users to help with the future development
of the language. Users can get involved with testing beta versions and reporting errors or
program bugs. Visitors can also view documentation related to the development of possible
future versions. This is a good way of discovering future enhancements or security fixes
before major announcements have been made to the public.

Figure 1-3. Download page (03/28/2020)

The download page, as you might have guessed, provides the ability to gain easy
access to the latest versions of the language. However, as you will note, only the language
itself is provided. It is more common, and recommended, that the beginning user use
a WAMP (Windows, Apache, MySQL/MariaDB, PHP), LAMP (Linux, Apache, MySQL/
MariaDB, PHP), or MAMP (Mac, Apache, MySQL/MariaDB, PHP) stack package for initial
installation. These packages (which we will look at later) allow for easy installation of
multiple products at the same time. Otherwise, you have to run many separate installations.
4
Chapter 1 An Introduction to PHP 8

WAMP/LAMP/MAMP—Open source (free) combinations,


including Apache web server, MySQL/MariaDB, and PHP for
a specific operating system (Windows, Linux, and Mac). These
packages are open source. The combination of software is used for
creating dynamic web sites and web applications.

Figure 1-4. Documentation pages (03/28/2020)

One of the more important pages of the PHP web site is the documentation page.
This page allows users to search for descriptions and functionality of the language itself.
You can also download the complete documentation. However, since this is a “live”
site, with possible changes occurring, the most current information is best obtained by
directly accessing it from the web site.

Figure 1-5. The Manual (03/28/2020)

5
Chapter 1 An Introduction to PHP 8

You can use the manual as if it were a textbook by clicking through each link from
the beginning. The limited amount of explanation provided with each section of the
manual might cause a beginner to want to give up on programming and change interests
to something ghastly like networking! The manual does provide a great guide for
experienced programmers, as the syntax of the language is similar to other languages
such as Python, JavaScript, Perl, and Java.

Figure 1-6. Search (03/28/2020)

On any page of the web site, the user can enter a term, an expression, or even a
function name to find more information. As the information is entered in search box, the
web page will provide the user with one or more options below the box for the user to
select.

Figure 1-7. echo (03/28/2020)

6
Another Random Scribd Document
with Unrelated Content
Lexicon Homericum; composuerunt
F. Albracht [and others]
This book was produced in EPUB format by the Internet Archive.

The book pages were scanned and converted to EPUB format


automatically. This process relies on optical character recognition,
and is somewhat susceptible to errors. The book may not offer the
correct reading sequence, and there may be weird characters, non-
words, and incorrect guesses at structure. Some page numbers and
headers or footers may remain from the scanned page. The process
which identifies images might have found stray marks on the page
which are not actually images from the book. The hidden page
numbering which may be available to your ereader corresponds to
the numbered pages in the print edition, but is not an exact match;
page numbers will increment at the same rate as the corresponding
print edition, but we may have started numbering before the print
book's visible page numbers. The Internet Archive is working to
improve the scanning process and resulting books, but in the
meantime, we hope that this book will be useful to you.

The Internet Archive was founded in 1996 to build an Internet


library and to promote universal access to all knowledge. The
Archive's purposes include offering permanent access for
researchers, historians, scholars, people with disabilities, and the
general public to historical collections that exist in digital format. The
Internet Archive includes texts, audio, moving images, and software
as well as archived web pages, and provides specialized services for
information access for the blind and other persons with disabilities.

Created with hocr-to-epub (v.1.0.0)


LEXICON HOMERICVM COMPOSVERVNT F. ALBRACHT, C.
CAPELLE, A. EBERHARD, b. EBERBARD, B. GISEKE, V. B. KOCH, C.
MVTZBAVER, FR. SCHNORR Db CAROLSEELD. EDIDIT H. EBELI N G.
VOLVMEN I LIPSIAE IN AEDIBVS B. ἃ TEVBNERI. MDCCCLXXXY.
LONDINI PARISIIS WILLIAMS & NORGATE. F. KLINCKSIECK.
The text on this page is estimated to be only 45.66%
accurate

ΠΩ Las (Ec DvVIM r ' j 220 t i "1 Ü "LR: ὍΝ [a1 ; Hi DOT i


νι ) , & E i ac! Ξ "d ii o0 M "m Vs i dt p v rud D wy " LY Y PRREA IM
ior een 4 Vat Wu ad Aon M: * en L
Huic lexico quod nunc denique perfectum in publicum
prodit, primo loco propositum est, omnium vocabulorum quae in
Homeri lliade, Odyssea, hymnis leguntur, formas et locos enumerare
ita ut sit verborum index locupletissimus. Qua in enumeratione
lectiones variantes et editionum et codicum meliorum non neglectae
sunt. Verborum vero originibus indagandis eorumque cognationi
explicandae plurimum operae est datum maxime ea de ratione, ut
prima cuiusque vocis significatione eruta varius singulorum
vocabulorum usus certo quodam ordine exponeretur. Variae et
diversae lexicographorum atque grammaticorum et veterum et
recentiorum sententiae, quae ad earminum Homericorum verba
locosque intellesendos faciunt, quam plenissime collectae et
expositae sunt; minus vero id enitendum videbatur, ut novae
explicationes et coniecturae proderentur, sed ut eluceret, quomodo
Homeri verba verborumque conexus variis temporibus explicata
essent, ad quem exitum hae quaestiones hodie adductae et
quantum etiam nunc perobscurum et incertum. Eadem ratio in rebus
interpretandis adhibita est, atque quoad fieri poterat, omnia quae ad
Homeri carmina intellegenda. spectant, ex commentariis aliisque
scriptis virorum doctorum sunt conlata. Cum ante haee quattuor fere
lustra consilium huius lexici edendi cepissem, quo celerius
absolveretur optimum esse putabam, plurium hominum doctorum
operam in eo exequendo coniungere; et libenter nonnulli ex iis qui in
carminibus Homericis interpretandis et recensendis studia posuerant,
singulas operis partes in se receperunt. Res tamen multum praeter
exspectationem cessit: cum enim iam magna operis pars composita
esset atque reliqua certo tempore promissa, evenit ut alter promisso
non staret, alter a labore suscepto prorsus recederet aliisque eorum
pensa essent tradenda; accessit id quod maxime dolendum, ut B.
Giseke, homo de Homeri carminibus explicandis et recensendis
optime meritus, praematura morte operi absolvendo eriperetur, et
alterius labor gravi morbo et debili
valetudine impediretur. Ita factum est, ut id quod initio opus
maxime adiuvare videbatur, plurimum prohiberet, ne brevi temporis
spatio conficeretur. Restat ut exponam quid quisque eorum qui
operam navarunt huic lexico attulerit: B. Giseke literas . 4 E Z HO I II
P X composuit, C. Capelle B P 4 Y OQ "' O (exceptis ὑσεαέ, vzréx,
vmég, ὑτεύ praepositionibus, quas C. Mutzbauer adiecit, E. Eberhard
A, F. Albracht 27 et 77 usque ad μέμονα, C. Mutzbauer JM inde a
μέν, N et E, V. H. Koch quem totius operis finem non vidisse valde
dolendum est Ὁ, F. Schnorr de Carolsfeld 7' et X confecit, H. Ebeling
nomina propria ab 44 B L4, à T Y o X 2 incipientia C. Mutzbauer
addidit. Viris qui consiliis et iudiciis suis vel corrigendo et addendo ut
Daremberg, Funk, Grulich, Merry, alii hoc opus adiuverunt, gratias
ago quam plurimas. Berolini, Kal. Sept. a. MDCCCLXXXV. H. Ebeling.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

Вам также может понравиться