Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Learning Path: Functional Programming for PHP 7 Developers
Rating: 3.6 out of 5(26 ratings)
294 students

Learning Path: Functional Programming for PHP 7 Developers

Enhance your PHP 7 development skills by learning advanced PHP techniques and most importantly functional programming.
Last updated 6/2019
English

What you'll learn

  • Use advanced PHP 7 features such as the Abstract Syntax Tree and Anonymous Classes
  • Discover when and where to modify PHP 5 to avoid backwards-compatibility breaks
  • Debug your code and get to know the best practices
  • Find out about PHP7’s internal closure object to write very powerful higher-order functions
  • Explore the benefits of writing functionally versus other paradigms
  • See function evaluation strategies in-depth and simulate a lazy invocation
  • Get an exposure to a completely functional PHP library called PRamda

Course content

2 sections88 lectures8h 47m total length
  • PHP 7 Installation Considerations3:45

    This video will show us the different ways in which we can install PHP7.

  • Using PHP Server, Defining MYSQL, and Installing PHPUnit4:42

    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.

  • Implementing Class Autoloading5:39

    This video will get you acquainted with the mechanism built into the PHP language that will implement class autoloading.

  • Hoovering a Website3:42

    Very frequently, scanning a website and extracting information from specific tags is of interest. This video will help us to do that.

  • Building a Deep Web Scanner3:28

    Sometimes you need to scan a website, but go one level deeper.We will see that in this video.

  • Creating a PHP 5 to PHP 7 Code Converter5:00

    This video is developed to avoid errors caused while running PHP5 code on PHP 7.

  • Understanding the Abstract Syntax Tree5:41

    This video will show us what an abstract syntax tree is.

  • Understanding Differences in Parsing3:52

    In this video, we will check out the differences in parsing between PHP 5 and PHP 7.

  • Understanding Differences in foreach() Handling4:40

    In this video, we will look at some behavioral differences of code inside a foreach() loop between PHP 5 and PHP 7.

  • Improving Performance Using PHP 7 Enhancements5:26

    This video will help you learn the new enhancements in PHP 7 which will help us improve the performance as compared to PHP 5

  • Iterating Through a Massive File4:35

    Owing to memory limitations, few functions quickly cause problems when dealing with massive files. This video will help us iterate through such massive files.

  • Uploading a Spreadsheet into a Database3:56

    This video will help us process customer spreadsheets using the csv format.

  • Recursive Directory Iterator4:34

    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.

  • Developing Functions5:29

    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.

  • Hinting at Data Types6:07

    When working with a team, you would want to control the use of your code by others. Data types help you do that.

  • Using Return Value Data Typing4:54

    When you want to return a specific data type from an argument, you have to use return value data typing.

  • Using Iterators10:37

    Iterators have various functionalities and are very important. Hence, understanding them is essential in PHP.

  • Writing Your Own Iterator Using Generators5:48

    According to our project, we need to create our own iterator. For that we use generators.

  • Developing Classes6:16

    This video will focus on how to develop classes.

  • Extending classes6:44

    This video will show you how to extend classes.

  • Using Static Properties and Methods3:43

    PHP lets you access properties or methods without having to create an instance of the class. This video shows you how to do that.

  • Using Namespaces4:14

    This video shows you how to use namespaces to avoid the problem of accidental class duplication and to facilitate autoloading.

  • Defining Visibility3:47

    In this video, we will simply define visibility as the mechanism to control the use of your code.

  • Using Interfaces5:07

    Interfaces are useful tools for systems architects and are often used to prototype an API. This video will explain you how to use them.

  • Using Traits7:16

    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.

  • Implementing Anonymous Classes5:27

    PHP 7 introduced a new feature—anonymous classes. In this video, we will take a look at how to implement those.

  • Using PDO to Connect to a Database13:26

    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.

  • Building an OOP SQL Query Builder1:49

    Ability to build an OOP SQL query builder using methods named and, or, not, and so on.

  • Handling Pagination3:53

    Learn to provide a limited subset of the results of a database query.

  • Defining Entities to Match Database Tables4:32

    Learn to define entities to match the database tables using domain model software design pattern.

  • Tying Entity Classes to RDBMS Queries8:08

    Accomplish by tying the results of an RDBMS query into an iteration of entity instances.

  • Embedding Secondary Lookups into Query Results3:36

    Display information on a customer and have the view logic perform a second lookup that gets a list of purchases for that customer.

  • Implementing jQuery DataTables PHP Lookups5:36

    Make a slight modification to the secondary lookup code presented in the preceding section.

  • Creating a Generic Form Element Generator7:21

    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.

  • Creating an HTML Radio Element Generator4:49

    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.

  • Creating an HTML Select Element Generator5:53

    In this video, you will see how to generate a SELECT tag and a series of OPTION tags.

  • Implementing a Form Factory6:29

    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.

  • Chaining $_POST Filters13:14

    This video discusses how to incorporate the basic filtering concepts covered here into a comprehensive filter chaining mechanism.

  • Chaining $_POST Validators5:53

    This video discusses how to incorporate the basic validation concepts covered here into a comprehensive filter chaining mechanism.

  • Tying Validation to a Form5:36

    Validation error messages can be tied to form elements, and rendered next to form fields. This video helps you to understand how this works.

  • Converting between PHP and XML4:11

    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!

  • Creating a Simple REST Client7:50

    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.

  • Creating a Simple REST Server7:10

    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.

  • Creating a Simple SOAP Client3:47

    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.

  • Creating a Simple SOAP Server4:27

    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.

  • Using Getters and Setters6:46

    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.

  • Implementing a Linked List5:36

    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.

  • Building a Bubble Sort4:24

    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.

  • Implementing a Stack3:01

    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.

  • Building a Binary Search Class4:44

    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.

  • Implementing a Search Engine6:13

    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.

  • Displaying a Multi-dimensional Array and Accumulating Tools6:17

    Properly displaying data from a multi-dimensional array has been a classic problem for web developers. This video shows you how to solve this problem by incorporating "hidden" division tags with a simple JavaScript visibility toggle.

  • Creating an Array to Object Hydrator2:49

    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.

  • Building an Object to Array Hydrator1:40

    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.

  • Implementing a Strategy Pattern8:06

    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.

  • Defining a Mapper9:01

    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.

  • Implementing Object-Relational Mapping11:11

    There are two primary techniques to achieve a relational mapping between objects.

  • Implementing the Pub/Sub Design Pattern5:37

    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.

  • Filtering $_POST Data4:26

    Learn to present a basic mechanism that can be used to filter $_POST data arriving.

  • Validating $_POST Data3:29

    Validate to confirm the data matches criteria established according to the needs of your customer.

  • Safeguarding the PHP Session6:29

    The ability to present several techniques will help you to safeguard your sessions.

  • Securing Forms with a Token4:55

    Learn to use a simple technique that will safeguard your forms against CSRF attacks.

  • Building a Secure Password Generator6:36

    This video shows the ability to build a secure password generator using brute force attacks and rainbow tables.

  • Safeguarding Forms with a CAPTCHA14:03

    Learn to design a token that is rendered into a graphic that is difficult for an automated attack system to decipher.

  • Encrypting/Decrypting without mcrypt10:42

    This video shows the ability to understand how to perform strong encryption/decryption without using mcrypt.

  • Using Traits and Interfaces5:01

    Traits and interfaces are an important part of implementation and make coding in PHP 7 easy.

  • Universal Exception Handler4:42

    When used along with code in a try/catch block, exceptions are useful.

  • Universal Error Handler4:07

    Along with exceptions, errors also need to be caught. When errors are confused with exceptions throwable is used.

  • Customizing Sessions Using the session_start Parameters4:45

    Overriding settings for secure session management has become easy with PHP 7.

Requirements

  • A core understanding of PHP 7

Description

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.

Luis Atencio

Luis Atencio is a Staff Software Engineer for Citrix Systems in Ft. Lauderdale, FL. He has a BSc and an MSc in Computer Science and now works full time developing and architecting web applications using PHP, JavaScript, and Java platforms. Luis is also very involved in the community and has presented on several occasions at conferences and local meet-ups. When he is not coding, Luis writes magazine articles for PHPArch and DZone. Luis is also the author of Functional Programming in JavaScript,Manning 2016, RxJS in Action, Manning 2016, and Functional PHP.

Who this course is for:

  • PHP developers looking at enhancing their programming skills have this Video Learning Path for their learning
  • The Learning Path starts by taking a task-based approach, with real-world examples that can serve as building blocks for a larger application. Each task is self-contained with no external dependencies. Then, it moves on with an easy-to-follow, from theoretical to practical, approach to bring your applications up to a functional way of thinking. Each step in the course is self-contained.