mirror of
https://github.com/php/doc-pt_br.git
synced 2026-03-24 07:02:09 +01:00
179 lines
5.9 KiB
XML
179 lines
5.9 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- EN-Revision: 3e871fe7eab38f9b0398569c57a1dd0c21e69652 Maintainer: leonardolara Status: ready --><!-- CREDITS: leonardolara -->
|
|
|
|
<section xml:id="mongodb.tutorial.library" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<title>Usando a Biblioteca do PHP para o MongoDB (PHPLIB)</title>
|
|
|
|
<para>
|
|
Após a configuração inicial da extensão, continuaremos explicando como começar
|
|
a usar a biblioteca correspondente no nível do usuário para escrever nosso primeiro projeto.
|
|
</para>
|
|
|
|
<section>
|
|
<title>Instalando a Biblioteca do PHP com o Composer</title>
|
|
|
|
<para>
|
|
A última coisa que ainda precisamos instalar para começar a usar o aplicativo
|
|
em si é a biblioteca PHP.
|
|
</para>
|
|
|
|
<para>
|
|
A biblioteca precisa ser instalada com o
|
|
<link xlink:href="&url.mongodb.composer;">Composer</link>, um gerenciador de pacotes
|
|
para PHP. Instruções para instalar o Composer em diversas plataformas podem ser
|
|
encontradas em seu site.
|
|
</para>
|
|
|
|
<para>
|
|
Instale a biblioteca executando:
|
|
<programlisting role="shell">
|
|
<![CDATA[
|
|
$ composer require mongodb/mongodb
|
|
]]>
|
|
</programlisting>
|
|
</para>
|
|
|
|
<para>
|
|
O resultado será algo como:
|
|
|
|
<programlisting role="text">
|
|
<![CDATA[
|
|
./composer.json has been created
|
|
Loading composer repositories with package information
|
|
Updating dependencies (including require-dev)
|
|
- Installing mongodb/mongodb (1.0.0)
|
|
Downloading: 100%
|
|
|
|
Writing lock file
|
|
Generating autoload files
|
|
]]>
|
|
</programlisting>
|
|
</para>
|
|
|
|
<para>
|
|
O Composer criará vários arquivos: <code>composer.json</code>,
|
|
<code>composer.lock</code> e um diretório <code>vendor</code> que
|
|
conterá a biblioteca e quaisquer outras dependências do seu projeto pode exigir.
|
|
</para>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Usando a Biblioteca do PHP</title>
|
|
|
|
<para>
|
|
Além de gerenciar suas dependências, o Composer também fornecerá
|
|
um carregador automático (para as classes dessas dependências). Certifique-se de que
|
|
ele esteja incluído no início do seu script ou no código de inicialização da sua
|
|
aplicação:
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
// Este caminho deve apontar para o carregador automático do Composer
|
|
require 'vendor/autoload.php';
|
|
]]>
|
|
</programlisting>
|
|
</para>
|
|
|
|
<para>
|
|
Com isto feito, agora você pode usar qualquer funcionalidade descrita na
|
|
<link xlink:href="&url.mongodb.library.docs;">documentação da biblioteca</link>.
|
|
</para>
|
|
|
|
<para>
|
|
Se você usou drivers MongoDB em outras linguagens, a API da biblioteca
|
|
deverá parecer familiar. Ele contém uma
|
|
classe <link xlink:href="&url.mongodb.library.apidocs;/class/MongoDBClient/">Client</link>
|
|
para conexão com o MongoDB, uma
|
|
classe <link xlink:href="&url.mongodb.library.apidocs;/class/MongoDBDatabase/">Database</link>
|
|
para operações em nível de banco de dados (por exemplo, comandos, gerenciamento de coleção)
|
|
e uma
|
|
classe <link xlink:href="&url.mongodb.library.apidocs;/class/MongoDBCollection">Collection</link>
|
|
para operações em nível de coleção (por exemplo,
|
|
métodos <link xlink:href="&url.mongodb.wiki.crud;">CRUD</link>, gerenciamento de índice).
|
|
</para>
|
|
|
|
<para>
|
|
Por exemplo, é assim que você insere um documento na
|
|
coleção <emphasis>beers</emphasis> do banco de dados
|
|
<emphasis>demo</emphasis>:
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
require 'vendor/autoload.php'; // inclui o auto-carregador do Composer
|
|
|
|
$client = new MongoDB\Client("mongodb://localhost:27017");
|
|
$collection = $client->demo->beers;
|
|
|
|
$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
|
|
|
|
echo "Inserido com ID do Objeto '{$result->getInsertedId()}'";
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</para>
|
|
|
|
<para>
|
|
Como o documento inserido não continha um campo <code>_id</code>, a
|
|
extensão irá gerar um <classname>MongoDB\BSON\ObjectId</classname> para
|
|
o servidor usar como <code>_id</code>. Este valor também é disponibilizado
|
|
ao chamador por meio do objeto de resultado retornado pelo método
|
|
<code>insertOne</code>.
|
|
</para>
|
|
|
|
<para>
|
|
Após a inserção, você pode consultar os dados que acabou de inserir.
|
|
Para isso, você usa o método <code>find</code>, que retorna um cursor
|
|
iterável:
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
require 'vendor/autoload.php'; // inclui o auto-carregador do Composer
|
|
|
|
$client = new MongoDB\Client("mongodb://localhost:27017");
|
|
$collection = $client->demo->beers;
|
|
|
|
$result = $collection->find( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
|
|
|
|
foreach ($result as $entry) {
|
|
echo $entry['_id'], ': ', $entry['name'], "\n";
|
|
}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</para>
|
|
|
|
<para>
|
|
Embora possa não ser aparente nos exemplos, os documentos e arrays do BSON são
|
|
desserializados como classes especiais na biblioteca por padrão. Essas classes
|
|
estendem <classname>ArrayObject</classname> para usabilidade e implementam as
|
|
interfaces <interfacename>MongoDB\BSON\Serializable</interfacename> e
|
|
<interfacename>MongoDB\BSON\Unserializable</interfacename> da extensão para
|
|
garantir que os valores preservem seu tipo quando serializados de volta para BSON. Isso
|
|
evita uma ressalva na extensão <code>mongo</code> legada, onde arrays
|
|
podem se transformar em documentos e vice-versa. Consulte a
|
|
especificação <xref linkend="mongodb.persistence"/> para obter mais informações sobre
|
|
como os valores são convertidos entre PHP e BSON.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|