Мапперы, ORMы, LINQ для PHP

RedBeanPHP is an easy to use ORM for PHP.
It’s a Zero Config ORM lib that ‘automagically’ builds your database schema.

Requirements

Short version first… minimal requirements

  • GNU/Linux, BSD, Windows
  • PHP 5.3.0 or higher (PHP 5.3.4+ recommended)
  • PDO plus driver for your database
  • Multibyte String Support


YaLinqo: Yet Another LINQ to Objects for PHP

Хабр: YaLinqo (LINQ to Objects для PHP)

Features
  • The most complete port of .NET 4 LINQ to PHP, with many additional methods.
  • Lazy evaluation, error messages and other behavior of original LINQ.
  • Detailed PHPDoc and online reference based on PHPDoc for all methods. Articles are adapted from original LINQ documentation from MSDN.
  • 100% unit test coverage.
  • Best performance among full-featured LINQ ports (YaLinqo, Ginq, Pinq), at least 2x faster than the closest competitor, see performance tests.
  • Callback functions can be specified as closures (like function ($v) { return $v; }), PHP “function pointers” (either strings like 'strnatcmp' or arrays like array($object, 'methodName')), string “lambdas” using various syntaxes ('"$k = $v"', '$v ==> $v+1', '($v, $k) ==> $v + $k', '($v, $k) ==> { return $v + $k; }').
  • Keys are as important as values. Most callback functions receive both values and the keys; transformations can be applied to both values and the keys; keys are never lost during transformations, if possible.
  • SPL interfaces Iterator, IteratorAggregate etc. are used throughout the code and can be used interchangeably with Enumerable.
  • Redundant collection classes are avoided, native PHP arrays are used everywhere.
  • Composer support (package on Packagist).
  • No external dependencies.


Используя ORM помните

Вьетнам компьютерной науки

Benchmark with other version and libraries

benchmarkPHPorms


Обратная операция – парсинг SQL кода

PHP-SQL-Parser

Добавить комментарий

HTML отключен, используйте Markdown. Размещение кода: [pastebin id=fs23] или [gistgit id=2926827] или [gistgit id=2926827 file=foo.txt]