meet the tech leaders

back to speakers
#Open Source #PHPOffice #Architect
hashtag php

Mark Baker

Architect and Developer

Mark has been working in the computer software industry since before was registered as a domain name, before the term “cyberspace” was first used in fiction, when Linus Torvalds and Rasmus Lerdorf were still at high school, and Mrs. Zuckerberg had yet to give birth to a bouncing baby social network enabler; and has been developing for the Web in a variety of languages since the days when the Tim Berners-Lee’s creation comprised less than 1,000 sites.
Over those years, he has contributed to many open source projects: some still extant, others lost to history. Currently he is coordinator and lead developer for the PHPExcel library, and a coordinator and developer on the PHPOffice library suite (PHPSpreadsheet, PHPWord, PHPPowerPoint, PHPProject and PHPVisio). More recently, he has been working on new datastructures such as Tries, Quadtrees and Matrices for PHP, and on Geodetic libraries.


His particular interests include PHP integration with office suites; Generators; Datastructures; Textual analysis; Geodata and geographic information systems; and “big data” and data analysis.
Innoved Learning (Innovative Solutions for Education) Ltd originally developed sports education software before progressing to general education management software in 2011. The InnovEd flagship software product EMS is unique in the increasingly online-aware Education sector in providing a complete online Education Management System.
More than 40 InnovEd development, support and teaching staff service a prestigious customer base of Colleges, Independent Training Providers, Academies, Education Departments and National Governing Bodies.


The company is driven by the use of innovation and thought-leadership in the effective application of online software and technology to the education and learning process.

speakers sessions

14:15 - 15:00 26 May
A Functional Guide to Cat Herding with PHP Generators
When working with arrays in PHP, three of the most useful functions available to us are array_map(), array_filter() and array_reduce(), which allow us to walk an array and manipulate the value of array elements, select a subset of values from an array, or reduce an array to a single value; all using a callback function to determine exactly what logic should be applied. The use of the callback makes them extremely flexible, and these functions can be particularly powerful, especially when combined (or chained) together.

However, these functions only work with standard PHP arrays; so if we are using Generators as a data source instead of an array, then we can’t take advantage of the functionality that they provide. Fortunately, it’s very easy to emulate that functionality and apply it to Generators (and also to other Traversable objects like SPL Iterators), giving us access to all of the flexibility and power that mapping, filtering and reducing can offer, combined with all the benefits that Generators can offer our code.

So how do we go about implementing filter(), map() and reduce() functions for our Generators? How do we use those functions in our applications? I’ll be answering those two questions, and explaining how I keep track of my cats armed only with a GPS Tracker, PHP Generators, and filter/map/reduce.
Message Us