diff --git a/_posts/01-06-01-Vagrant.md b/_posts/01-06-01-Vagrant.md index c3768a5..4d64f1f 100644 --- a/_posts/01-06-01-Vagrant.md +++ b/_posts/01-06-01-Vagrant.md @@ -21,15 +21,17 @@ create and edit your files on your host machine and then run the code inside you ### A little help -If you need a little help to start using Vagrant there are two services that might be useful: +If you need a little help to start using Vagrant there are three services that might be useful: - [Rove][rove]: service that allows you to pregenerate typical Vagrant builds, PHP among the options. The provisioning is made with Chef. - [Puphpet][puphpet]: simple GUI to set up virtual machines for PHP development. **Heavily focused in PHP**. Besides local VMs, can be used to deploy to cloud services as well. The provisioning is made with Puppet. +- [Protobox][protobox]: is a layer on top of vagrant and a web GUI to setup virtual machines for web development. A single YAML document controls everything that is installed on the virtual machine. [vagrant]: http://vagrantup.com/ [puppet]: http://www.puppetlabs.com/ [chef]: http://www.opscode.com/ [rove]: http://rove.io/ [puphpet]: https://puphpet.com/ +[protobox]: http://getprotobox.com/ diff --git a/pages/Functional-Programming.md b/pages/Functional-Programming.md index f9dc9a0..f5eb792 100644 --- a/pages/Functional-Programming.md +++ b/pages/Functional-Programming.md @@ -7,14 +7,14 @@ title: Functional Programming in PHP PHP supports first-class functions, meaning that a function can be assigned to a variable. Both user-defined and built-in functions can be referenced by a variable and invoked dynamically. Functions can be passed as arguments to other -functions (a feature called higher-order functions) and a function can return other functions. +functions and a function can return other functions (a feature called higher-order functions). Recursion, a feature that allows a function to call itself, is supported by the language, but most of the PHP code focus is on iteration. Anonymous functions (with support for closures) have been present since PHP 5.3 (2009). -PHP 5.4 added the ability to bind closures to an object's scope and also improved support for callables such that they +PHP 5.4 added the ability to bind closures to an object's scope and also improved support for callables such that they can be used interchangeably with anonymous functions in almost all cases. The most common usage of higher-order functions is when implementing a strategy pattern. The built-in `array_filter`