понедельник, 20 июля 2009 г.

PHPLinq: Language Integrated Query for PHP

PHPLinq -- это набор классов PHP имитирующий функциональность предоставляемую расширением LINQ языка C#. LINQ позволят обращаться к данным из программы, способом очень сильно напоминающим SQL, но минуя написание SQL запросов как таковых.
Например, пусть у нас есть массив строк и мы хотим выбрать из него только те строки, длина которых меньше пяти символов. Обычным способом нам потребовалось бы писать цикл, в котором мы бы проверяли длину каждого элемента массива и добавляли бы подходящие по длине элементы во временную переменную:
// Создаём массив строк
$Names = array("John", "Peter", "Joe", "Patrick", "Donald", "Eric");
$Result = array();
foreach ($Name in $Names) {
if (strlen($Name) < 5) {
$Result[] = $Name;
}
}
С помощью PHPLinq это легко сделать следующим способом:
// Создаём массив строк
$Names = array("John", "Peter", "Joe", "Patrick", "Donald", "Eric");
$Result = from('$Name')->in($Names)
->where('$Name => strlen($Name) < 5')
->select('$Name');
Похоже на SQL? ;) Кроме того, решение с использованием PHPLinq гораздо компактнее и выглядит гораздо более красиво. Сам автор PHPLinq, Maarten Balliauw, пишет:
С LINQ есть одна проблемка... Если вы начали использовать его, то вы не захотите больше обращаться к источникам данных иными способами.
P.S.: В четвёртой строчке второго листинга вы могли заметить странную конструкцию '$Name => strlen($Name) < 5. Эта конструкция преобразуется в анонимную функцию или другими словами лямбда-выражение. Эта функция принимает параметр $Name и возвращает булево значение которое является результатом вычисления выражения strlen($Name) < 5.

Домашняя страничка PHPLinq -> http://www.phplinq.net/

Комментариев нет:

Отправить комментарий