Do you wish to advance your PHP development skills? Do you want to get equipped with the tools and skills required to deliver efficient applications for your websites and enterprises?
PHP 7 offers new features and tools to write optimized code. Functional programming is one such tool. If you’re a PHP developer looking at enhancing your skills by working on over 80 real-world tasks and learning functioning programming, this Learning Path is for you.
Packt’s Video Learning Paths are a series of individual video products put together in a logical and stepwise manner such that each video builds on the skills learned in the video before it.
This Learning Path will start by demonstrating intermediate to advanced PHP techniques. You’ll learn to solve practical, real-world problems faced by PHP developers like yourself every day. You’ll learn new ways of writing PHP code made possible only in version 7. In addition, we discuss backward-compatibility breaks and give you plenty of guidance on when and where PHP 5 code needs to be changed to produce the correct results when running under PHP 7. This course also incorporates the latest PHP 7.x features.
You’ll learn PHP7’s internal closure object, enabling you to write very powerful functions. This Learning Path provides helpful techniques and insights such as lazy function evaluation and currying that facilitate composing functions together.
Finally, you’ll be skilled enough to think about coding problems in terms of the composition of pure functions.
The goal of this course to equip you to perform efficient coding in PHP 7.
This Learning Path is authored by one of the best in the fields.
Doug Bierer Doug Bierer has been hooked on computers since his first program, written in Dartmouth BASIC on a DEC PDP-8, in 1971. In his wide-ranging career, this author has been a professional contract programmer since 1978, having written applications in BASIC, PL/I, assembler, FORTH, C, C++, dBase/FoxBase/Clipper, Pascal, Perl, Java, and PHP. He deployed his first website in 1993 while living in San Francisco. He speaks four languages, has traveled extensively, and has lived in the USA, France, the Netherlands, England, Sweden, Scotland, and Thailand. He also spent some years doing Linux system administration and TCP/IP networking. He is also an accomplished musician (he has written over 60 songs) as well as a writer, under the pen name of Douglas Alan. Doug's own company is, which specializes in consulting, PHP programming, website development, and training (primarily for Zend Technologies Ltd and Rogue Wave Software Inc. Some of his technical works for O'Reilly Media are Learning PHP and MySQL, Learning PHP Security, Learning MongoDB, and Learning Doctrine.
This video will show us the different ways in which we can install PHP7.
This video will show how to use the built-in PHP 7 web server and also help us define a MySQL database and install PHPUnit.
This video will get you acquainted with the mechanism built into the PHP language that will implement class autoloading.
Very frequently, scanning a website and extracting information from specific tags is of interest. This video will help us to do that.
Sometimes you need to scan a website, but go one level deeper.We will see that in this video.
This video is developed to avoid errors caused while running PHP5 code on PHP 7.
This video will show us what an abstract syntax tree is.
In this video, we will check out the differences in parsing between PHP 5 and PHP 7.
In this video, we will look at some behavioral differences of code inside a foreach() loop between PHP 5 and PHP 7.
This video will help you learn the new enhancements in PHP 7 which will help us improve the performance as compared to PHP 5
Owing to memory limitations, few functions quickly cause problems when dealing with massive files. This video will help us iterate through such massive files.
This video will help us process customer spreadsheets using the csv format.
This video takes advantage of an (SPL Standard PHP Library) class to recursively get a list of all files and directories from a specific point in a directory tree.
Functions are essential in any PHP because of their immense use and diverse properties. You will need to learn to develop functions as a part of your PHP programming.
When working with a team, you would want to control the use of your code by others. Data types help you do that.
When you want to return a specific data type from an argument, you have to use return value data typing.
Iterators have various functionalities and are very important. Hence, understanding them is essential in PHP.
According to our project, we need to create our own iterator. For that we use generators.
This video will show you how to extend classes.
PHP lets you access properties or methods without having to create an instance of the class. This video shows you how to do that.
This video shows you how to use namespaces to avoid the problem of accidental class duplication and to facilitate autoloading.
In this video, we will simply define visibility as the mechanism to control the use of your code.
Interfaces are useful tools for systems architects and are often used to prototype an API. This video will explain you how to use them.
In this video, we will see how to use traits to copy-paste code into a class at the line indicated by the PHP interpreter.
PHP 7 introduced a new feature—anonymous classes. In this video, we will take a look at how to implement those.
Learning how to use this extension will save you hours of time trying to master the command subsets of the equivalent individual vendor-specific database extensions.
Ability to build an OOP SQL query builder using methods named and, or, not, and so on.
Learn to provide a limited subset of the results of a database query.
Learn to define entities to match the database tables using domain model software design pattern.
Accomplish by tying the results of an RDBMS query into an iteration of entity instances.
Display information on a customer and have the view logic perform a second lookup that gets a list of purchases for that customer.
Make a slight modification to the secondary lookup code presented in the preceding section.
In order to make a form generator generically useful, we need to create a generic form element generator. In this video, you will see how to do this.
A set of radio buttons needs the ability to display an overall label and errors. This video will help you create the radio button element generator.
In this video, you will see how to generate a SELECT tag and a series of OPTION tags.
The purpose of a form factory is to generate a usable form object from a single configuration array. In this video, we will show how to implement the form factory.
This video discusses how to incorporate the basic filtering concepts covered here into a comprehensive filter chaining mechanism.
This video discusses how to incorporate the basic validation concepts covered here into a comprehensive filter chaining mechanism.
Validation error messages can be tied to form elements, and rendered next to form fields. This video helps you to understand how this works.
When considering a conversion between PHP data types and XML, we would normally consider an array as the primary target. The process of converting from a PHP array to XML differs radically from the approach needed to do the reverse. Let's see how we convert between them!
REST clients use HTTP to generate requests to external web services. By changing the HTTP method, we can cause the external service to perform different operations. In this video, we will use the Adapter software design pattern to present two different ways of implementing a REST client.
There are several concerns in a developer's mind, when implementing a REST server, such as how to capture the raw request; what API to publish and how to map HTTP verbs to API methods.?This video will guide you to create a REST server keeping all these factors in consideration.
Using SOAP, in contrast to the process of implementing a REST client or server, is quite easy as there is a PHP SOAP extension that provides both capabilities. Let's explore how to create a SOAP client.
As with the SOAP client, we can use the PHP SOAP extension to implement a SOAP server. The most difficult part of the implementation will be generating the WSDL from the API class. This video will show how to overcome this problem and create a SOAP server.
Defining classes with public properties, which are directly read or written is considered a good practice. But, the properties are not protected. In order to do that, we must define a getter and setter. This video will show us how to retrieve and set the value of a property.
Similar to database, where you have a table that contains data, and a separate index that points to the data, a linked list is where one list contains keys that point to keys in another list. This video will guide you how to implement a linked list in PHP.
Bubble sort is quite a popular exercise among students. It's critical to master this algorithm as there are many instances where built-in PHP sorting functions do not apply. Let's see how we sort a multi-dimensional array.
Stack is a simple algorithm implemented as Last In First Out (LIFO). In programming, it is used to temporarily store information. The retrieval order is such that the most recent item is retrieved first. Let's see how to implement stack in PHP.
Conventional searches go through the list in a sequential manner, which means that the maximum possible number of items to be searched could be the whole length of the list! This is not efficient. To expedite a search, we must learn implementing a binary search.
To implement a search engine, we need to ensure multiple columns are included in the search. Also, what makes it difficult is the fact that users rarely provide enough information for an exact match. Let's explore how we can implement a search engine to overcome this problem.
The hydrator pattern is a variation of the data transfer object design pattern. Its design principle is: moving data from one place to another. In this illustration, we will define classes to move data from an array to an object.
This video is the converse of the previous video. In this case, we need to pull values from object properties and return an associative array.
It is often the case that runtime conditions force the developer to define several ways of doing the same thing often using if/elseif/else block of commands. The strategy pattern attempts to formalize this process.
A mapper or data mapper works in much the same manner as a hydrator: converting data from one model, be it array or object, into another.
There are two primary techniques to achieve a relational mapping between objects.
The purpose of the Pub/Sub design pattern is to allow a method or function to publish a signal when an action of significance has taken place.
Learn to present a basic mechanism that can be used to filter $_POST data arriving.
Validate to confirm the data matches criteria established according to the needs of your customer.
The ability to present several techniques will help you to safeguard your sessions.
Learn to use a simple technique that will safeguard your forms against CSRF attacks.
This video shows the ability to build a secure password generator using brute force attacks and rainbow tables.
Learn to design a token that is rendered into a graphic that is difficult for an automated attack system to decipher.
This video shows the ability to understand how to perform strong encryption/decryption without using mcrypt.
Traits and interfaces are an important part of implementation and make coding in PHP 7 easy.
When used along with code in a try/catch block, exceptions are useful.
Along with exceptions, errors also need to be caught. When errors are confused with exceptions throwable is used.
Overriding settings for secure session management has become easy with PHP 7.
The aim of this video is to level-up developers to become aware of some of the additions to PHP 7 that favor writing functional programs, in particular, the strict scalar and return types.
The goal of this video is to explain PHP's internal Closure class.
The aim of this video is to explain what higher-order functions are.
The aim of this video is to learn how FP's mathematical foundation makes it easier for developers to reason about.
Functional programs raise the level of abstraction using a declarative style of development. Let's find out how!
The aim of this vide is to understand how functional programming promotes testable functions.
The aim of this video is to provide a comprehensive definition of what Functional Programming (FP) is.
The aim of the video is to explain pure functions in-depth, looking at it from a mathematical point of view.
Recursion offers a more natural approach to iteration in functional programming to imperative loops. Loops imply changes in state and side effect computing, while recursive functions could be made pure and side effect-free. The goal of this video is to discuss recursion and the recursive method.
The aim of this video is to demonstrate how to build programs relying solely on using pure functions in preparation for function composition.
The aim of this video is to compare PHP's eager evaluation with lazy evaluation commonly present in functional languages.
This video will explain what partial function application is and will show its use through code samples.
The video will make you understand what currying is with an understanding of the curry function transformation.
The aim of this video is to show how composition is related to the overall general composition of a system and its libraries.
The aim of this video is to explain that function composition needs to meet two qualities: type and arity.
The aim of this video is to introduce PRamda with basic examples using composition.
We implement a real-world problem using auto-currying with composition and PRamda functions. The goal of this last video is to compare the functional solution of the same problem with the non-functional solution.
The aim of this video is to give a brief overview of the entire course at a glance.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.