<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/mysql.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'mysqlinfo.terminology.php',
    1 => 'Vis&atilde;o geral de terminologia',
    2 => 'Vis&atilde;o geral de terminologia',
  ),
  'up' => 
  array (
    0 => 'mysql.php',
    1 => 'Vis&atilde;o geral dos drivers PHP para MySQL',
  ),
  'prev' => 
  array (
    0 => 'mysql.php',
    1 => 'Vis&atilde;o geral dos drivers PHP para MySQL',
  ),
  'next' => 
  array (
    0 => 'mysqlinfo.api.choosing.php',
    1 => 'Escolhendo uma API',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'reference/mysqlinfo/set.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mysqlinfo.terminology" class="chapter">
   <h1 class="title">Visão geral de terminologia</h1>

   <p class="simpara">
    Esta seção fornece uma introdução às opções disponíveis
    ao desenvolver aplicações PHP que precisem interagir com um
    banco de dados MySQL.
   </p>

   <p class="simpara">
    <strong>O que é uma API?</strong>
   </p>

   <p class="simpara">
    Uma Interface de Programação para Aplicações, ou API, define as classes,
    métodos, funções e variáveis que a aplicação precisará chamar
    para que consiga efetuar a tarefa desejada. No caso de aplicações
    PHP que precisem comunicar com banco de dados, as APIs
    necessárias são normalmente expostas através de extensões do PHP.
   </p>

   <p class="simpara">
    APIs podem ser procedurais ou orientadas a objeto. Com uma API procedural, pode-se
    chamar funções para realizar tarefas, e com uma API orientada a objeto, pode-se
    instanciar classes e então chamar métodos nos objetos resultantes.
    Entre as duas opções, a última é a interface recomendada, já que é
    mais moderna e leva a um código mais organizado.
   </p>

   <p class="simpara">
    Ao escrever aplicações PHP que precisam se conectar ao servidor
    MySQL, existem várias opções de API disponíveis. Este documento
    discute o que está disponível e como selecionar a melhor solução para
    cada aplicação.
   </p>

   <p class="simpara">
    <strong>O que é um conector?</strong>
   </p>

   <p class="simpara">
    Na documentação MySQL, o termo <em>conector</em>
    se refere a uma parte do software que permite à aplicação se
    conectar ao servidor de banco de dados MySQL. O MySQL fornece conectores para
    uma variedade de linguagens, incluindo o PHP.
   </p>

   <p class="simpara">
    Se uma aplicação PHP precisa se comunicar com um servidor de banco de dados
    será necessário escrever código PHP para realizar tais atividades como
    conexão ao banco de dados, consultas ao banco e outras
    funções relacionadas. Software é requerido para fornecer a API
    que a aplicação PHP irá utilizar, e também para lidar com a
    comunicação entre a aplicação e o servidor de banco de dados,
    possivelmente usando outras bibliotecas intermediárias quando necessário. Este
    software é conhecimento genericamente como conector, já que ele permite à
    aplicação se <em>conectar</em> ao servidor de banco de dados.
   </p>

   <p class="simpara">
    <strong>O que é um Driver?</strong>
   </p>

   <p class="simpara">
    Um driver é uma parte do software projetada para se comunicar com um
    tipo específico de servidor de banco de dados. O driver também pode chamar uma
    biblioteca, tal como a Bliblioteca Cliente MySQL ou o Driver Nativo
    MySQL. Estas bibliotecas implementam o protocolo de baixo nível usado para
    comunicação com o servidor de dados MySQL.
   </p>

   <p class="simpara">
    Para exemplificar, a camada de abstração de banco da dados <a href="mysqli.overview.php#mysqli.overview.pdo" class="link">PDO - Objetos
    de Dados PHP</a> pode usar um dos
    vários drivers específicos para banco de dados. Um dos drivers
    disponíveis é o driver PDO MYSQL, que permite fazer interface com
    o servidor MySQL.
   </p>

   <p class="simpara">
    Algumas vezes os termos conector e driver são usados de maneira intercambiável,
    e isto pode ser confuso. Na documentação relacionada com o MySQL o termo
    <q class="quote">driver</q> é reservado para o software que fornece
    a parte específica de banco de dados de um pacote de conector.
   </p>

   <p class="simpara">
    <strong>O que é uma Extensão?</strong>
   </p>

   <p class="simpara">
    Na documentação PHP, encontramos um outro termo -
    <em>extensão</em>. O código PHP consiste de um núcleo,
    com extensões opcionais à funcionalidade do núcleo. A extensão
    do PHP relacionada com o MySQL, <code class="literal">mysqli</code>, é
    implementada usando o framework de extensão PHP.
   </p>

   <p class="simpara">
    Uma extensão tipicamente expõe uma API para o programador PHP, para
    permitir que suas instalações possam ser usadas programaticamente. Entretanto, algumas
    extensões que usam o framework de extensão PHP não expõem uma
    API ao programador PHP.
   </p>

   <p class="simpara">
    A extensão do driver de PDO MySQL, por exemplo, não expõe uma API
    ao programador PHP, mas fornece uma interface à camada PDO
    acima dela.
   </p>

   <p class="simpara">
    Os termos API e extensão não podem ser considerados com o mesmo
    significado, já que uma extensão não necessáriamente expões uma API ao
    programador.
   </p>
  </div>
<?php manual_footer($setup); ?>