Alguém sabe de um bom PHP ORM que NÃO usa DOP?

Estou construindo um webapp para um departamento em um grande campus universitário que eventualmente será executado nos servidores corporativos (eu uso o termo “empresa” vagamente).

O problema é que os administradores se recusaram a compilar e habilitar qualquer extensão PDO diferente do SQLite. Eles têm mysql e mysqli habilitado, portanto, não é uma perda total.

Assim como alguém aqui conhece um bom ORM para PHP que NÃO confia na DOP, pois é o principal motor?

Eu já olhei para Doctrine e Propel (ambos os frameworks excelentes), embora não conseguisse descobrir como rasgar o PDO de dentro deles.

Editar : Aqui está a resposta que recebi dos administradores no servidor:

Sean,

Tentamos, sem sucesso, várias vezes construir PHP com a extensão PDO incluída. A razão pela qual não fomos bem-sucedidos é complicada, mas basicamente decorre do fato de que o ambiente web foi configurado originalmente com algumas bibliotecas de driver de database compiladas de forma estática e outras compiladas dinamicamente, a combinação que faz com que a DOP se queixa alto. O motivo pelas quais as coisas foram feitas foi devido a um bug nas primeiras versões do PHP 5.x que já não é um problema hoje (ou pelo menos menos de um), mas a mudança é difícil porque a alteração exigiria modificações para o php. arquivos ini e, uma vez que cada site (incluindo sites em [ servidor redigido ]) tem seu próprio php.ini (aproximadamente 22.000 arquivos em total, muitos dos quais são modificados pelos usuários) é muito difícil afastar essa mudança (e não fazer a a alteração causa erros [não me lembro se eles são fatais ou não] em páginas atendidas por contas com arquivos não atualizados).

Suponho que todos os ORM modernos dependem da DOP, pois é um driver de database padrão.

Se você tiver a extensão MySQLi habilitada, então você poderá escrever seu próprio PDO (IIRC MySQLi é compatível com tudo o que a DOP faz).

if (extension_loaded('pdo_mysql') == false) { class PDO { protected $connection; public function __construct($dsn, $username = null, $password = null, array $driver_options = array()) { $this->connection = new MySQLi(...); } } class PDOStatement { ... } class PDOException extends RuntimeException { ... } } 

Você terá que implementar toda a API da PDO, mas pelo menos ela funcionará.