Functional PHP

Functional PHP
Authors
Crettenand, Gilles
Publisher
Packt Publishing
Tags
web , computers , general , php , programming languages
ISBN
9781785880322
Date
2017-02-14T05:00:00+00:00
Size
1.25 MB
Lang
en
Downloaded: 49 times

Key Features

Greatly improve your code quality, testability, and readability using modern functional programming techniques

Get a solid foundation in functional programming techniques and methodologies

Step-by-step learn the concepts to architect more robust code

Book Description

A functional approach encourages code reuse, greatly simplifies testing, and results in code that is concise and easy to understand. This book will demonstrate how PHP can also be used as a functional language, letting you learn about various function techniques to write maintainable and readable code.

After a quick introduction to functional programming, we will dive right in with code examples so you can get the most of what you've just learned. We will go further with monads, memoization, and property-based testing. You will learn how to make use of modularity of function while writing functional PHP code.

Through the tips and best practices in this book, you'll be able to do more with less code and reduce bugs in your applications. Not only will you be able to boost your performance, but you will also find out how to eliminate common loop problems. By the end of the book, you will know a wide variety of new techniques that you can use on any new or legacy codebase.

What you will learn

Declare functions/callables and find out how to manipulate and call them

Write pure functions to get more robust code that can be easily tested

Learn to compose function using various techniques

Use a functional approach to find readable solutions to common issues

Utilize performance optimization techniques such as laziness, memorization, and parallelization

Build the business logic of applications with the functional paradigm

Test functional code and know how to speed up test runs using parallel testing

Understand the impact and limitation of functional programming in PHP

About the Author

Gilles Crettenand is a passionate and enthusiastic software developer. He thrives when solving challenges and is always on the lookout for a better way to implement his solutions. He has a bachelor's degree in computer science from the School of Engineering and Management Vaud in Switzerland and has more than 6 years of experience as a web developer.

Most of his professional career has been spent using PHP, developing a variety of applications ranging from accountability software to e-commerce solutions and CMS. At nights, however, he likes to try other languages, dabbling with Haskell, Scala, and more recently, PureScript, Elm, and Clojure.

Being a certified scrum master, he understands the need to use the right tool for the job and maintaining a readable and maintainable codebase using the best techniques and practices available.

Table of Contents

Functions as First Class Citizens in PHP

Pure Functions, Referential Transparency, and Immutability

Functional Basis in PHP

Composing Functions

Functors, Applicatives, and Monads

Real-Life Monads

Functional Techniques and Topics

Testing

Performance Efficiency

PHP Frameworks and FP

Designing a Functional Application

What Are We Talking about When We Talk about Functional Programming

**

About the Author

Gilles Crettenand is a passionate and enthusiastic software developer. He thrives when solving challenges and is always on the lookout for a better way to implement his solutions. He has a bachelor's degree in computer science from the School of Engineering and Management Vaud in Switzerland and has more than 6 years of experience as a web developer. Most of his professional career has been spent using PHP, developing a variety of applications ranging from accountability software to e-commerce solutions and CMS. At nights, however, he likes to try other languages, dabbling with Haskell, Scala, and more recently, PureScript, Elm, and Clojure. Being a certified scrum master, he understands the need to use the right tool for the job and maintaining a readable and maintainable codebase using the best techniques and practices available.