The SitePoint PHP blog has posted the first part of a new series they're releasing about querying your data with Pinq. It's a PHP-based query tool that provides a fluent interface for searching and traversing your data. In this first post of the series Taylor Ren introduces you to the library and shows some basic usage.
You may have heard of LINQ (Language-Integrated Query), a “set of features introduced in Visual Studio 2008 that extends powerful query capabilities to the language syntax of C# and Visual Basic”. It provides necessary interfaces and syntax to perform various queries on a given dataset so that operations like filtering, sorting, grouping, aggregating, etc can be performed. PINQ (PHP Integrated Query) is “based off the .NET’s Linq, and unifies querying across arrays/iterators and external data sources, in a single readable and concise fluent API”.
He talks about normal searching (equals matching) and "faceted searching", narrowing down the results piece by piece until you find what you need. He gives an example with some sample database data and shows the results of a simple query with a price filter and grouped by author. He includes the code to make it happen (inside a simple Silex application) too. He then takes a deeper look at the LINQ queries and how related statements are handled.