Nos últimos meses, a equipe de desenvolvimento do SDK tem trabalhado na definição de uma nova interface para interagir com os SDKs, chamada de SDK 2.0 (não diretamente relacionada ao PHP SDK 2.0.0, que simplesmente implementa uma grande parte dessa especificação). Todos os SDKs existentes foram projetados com base em interfaces existentes voltadas para o projeto memcached e, como tal, eram muito orientados para o cache e não refletiam mais efetivamente a natureza mais orientada para documentos do Couchbase Server 2.0. Por isso, decidimos definir uma interface nova e mais moderna que modelasse melhor essas características.
Juntamente com esse esforço para renovar a interface geral do SDK, o SDK do PHP precisava de um pouco de amor e atenção e, portanto, começamos a trabalhar na renovação do próprio SDK do PHP. Isso acabou consistindo em uma reescrita completa a partir do zero e, com isso, agora tenho o prazer de repassá-lo aos desenvolvedores para tentar receber algum feedback.
Novos recursos
A API
Devido às raízes antigas do PHP SDK anterior, infelizmente havia muitas complexidades no comportamento de várias funções, como ordenação estranha de parâmetros, opções inconsistentes entre funções semelhantes e duplicação de comportamento. Agora implementamos uma interface uniforme. Aqui estão alguns exemplos rápidos das novas APIs.
Abrir um balde:
$db = $cb->openBucket('default');
Inserir um documento:
Recuperação de um documento (não que o resultado da operação seja um objeto Result, com o valor do documento armazenado na propriedade value):
O tratamento de erros agora também é consistente e confiável em todas as chamadas de API.
$result = $db->get('test_key');
} catch (Exception $e) {
// Objeto de exceção com propriedades de mensagem e código.
}
Suporte a transcodificador
Também adicionamos suporte completo ao transcodificador, permitindo que você forneça estratégias personalizadas de serialização e desserialização para quaisquer tipos não padrão que esteja usando em seu ambiente.
Para ver alguns exemplos disso, dê uma olhada no exemplo dos transcodificadores (https://github.com/couchbaselabs/php-couchbase/blob/master/examples/transcoders/index.php) ou, como alternativa, dê uma olhada na classe wrapper Couchbase.class.php (na raiz do código-fonte), onde você encontrará os transcodificadores padrão da biblioteca.
Documentação
A documentação que descreve a API completa está disponível para consulta aqui:
http://sdk-snapshots.couchbase.com/php/php_couchbase-2.0.0dp1-docs/
Obter
Se você estiver em um sistema Linux, para instalar a versão de visualização do desenvolvedor da biblioteca, basta pegar o código-fonte vinculado abaixo, compilar e instalar:
./configure -enable-couchbase
fazer && fazer instalação
Se estiver em um sistema Windows, você pode optar por fazer o download do tarball e compilar o código-fonte por conta própria. Ou, como alternativa, há links para os tipos de compilação populares abaixo também.
| Construir | Baixar |
|---|---|
| Código-fonte | php_couchbase-2.0.0dp1.zip |
| Windows PHP 5.3 NTS vc9 x86 | php_couchbase-2.0.0dp1-5.3-nts-vc9-x86.zip |
| Windows PHP 5.3 ZTS vc9 x86 | php_couchbase-2.0.0dp1-5.3-zts-vc9-x86.zip |
| Windows PHP 5.4 NTS vc9 x86 | php_couchbase-2.0.0dp1-5.4-nts-vc9-x86.zip |
| Windows PHP 5.4 ZTS vc9 x86 | php_couchbase-2.0.0dp1-5.4-zts-vc9-x86.zip |
| Windows PHP 5.5 NTS vc11 x64 | php_couchbase-2.0.0dp1-5.5-nts-vc11-x64.zip |
| Windows PHP 5.5 ZTS vc11 x64 | php_couchbase-2.0.0dp1-5.5-zts-vc11-x64.zip |
| Windows PHP 5.5 NTS vc11 x86 | php_couchbase-2.0.0dp1-5.5-nts-vc11-x86.zip |
| Windows PHP 5.5 ZTS vc11 x86 | php_couchbase-2.0.0dp1-5.5-zts-vc11-x86.zip |
OBSERVAÇÃO: você DEVE ter a libcouchbase instalada antes da instalação da extensão php.
Se você encontrar algum problema, envie uma mensagem diretamente para o site das comunidades do Couchbase em http://www.couchbase.com/communities/php. Além disso, os bugs podem ser relatados diretamente em nosso rastreador de problemas disponível aqui: https://www.couchbase.com/issues/browse/PCBC
Espero que você goste!
Saúde! Brett
O SDK 2.0 oferece suporte a um pooling de conexões melhor para o php-fpm? Por exemplo, o pooling de conexões agora é gerenciado pela biblioteca C?
[...] Blog do PHP SDK 2.0 [...]