SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
PHP 5.4 + MongoDB
    Conceitos e prática
Quem fala?
Vinícius de Sá - @vdssg

19 anos

Desenvolve na Móveis Simonetti

Estuda Análise e Desenv. de Sistemas na UNISAM

Ama tecnologia e qualquer coisa que agilize as coisas

Programa em PHP, JavaScript, Python
PHP
PHP: Hypertext Preprocessor
Linguagem de programação OpenSource;
Criada em 1995 por Rasmus Lerdorf;
Sintaxe like C/C++ e Perl;
Orientado a Objetos;
6a Linguagem no Ranking TIOBE;
20 mi de WebSites, em mais de 1 mi de ser vidores;
PHP, mas quem usa?
Facebook;
Google;
WikiMedia (WikiPedia);
Yahoo;
Bank of America;
Wordpress.
Tá, mas como eu faço
    pra instalar?
Debian, Ubuntu, Mint: apt-get install php5;
Fedora, CentOS, RedHat: yum install php;
OpenSuse: zypper install php5;
OS X: port install php
Windows(aff): http://windows.php.net/downloads
Mas... no nosso caso.
wget http:/  /br1.php.net/distributions/
php-5.4.7.tar.bz2
tar -jxvf php-5.4.7.tar.bz2
cd php-5.4.7
./configure --disable-all
make
sudo make install
Testando a instalação

cd ˜/
mkdir testes || cd testes
echo "<?php phpinfo(); ?>" > index.php
sudo php -S 127 1:80
               .0.0.
Resultado da
instalação... :)
E o que o PHP tem de
        bom?
Documentação;
Certificação oficial - Zend Technologies;
Modelo orientado a objeto;
Restful, SOAP, AJAX;
Namespaces;
Closures;
Traits;
Interface CLI;
Servidor Web embutido para testes;
Ecossistema (Composer, git, perl, pecl);
Frameworks (Zend, Symfony, CodeIgniter, Yii);
ORM (Doctrine2, Propel);
Instalação de extensões.
E o NoSQL? O que é?

NoSQL são diferentes sistemas de
armazenamento
que vieram para suprir necessidades
em demandas onde os bancos de dados
tradicionais (relacionais) são
ineficazes.
Bancos NoSQL são...
Sem relacionamentos;
Distribuidos;
Open-Source;
Map/Reduce;
Altamente escaláveis(horizontalmente);
Schema-free;
Fáceis ao replicar;
Simples(instalação, API, etc);
NO ACID - Tolerância à falhas;
Robustos(Grandes quantidades de carga e dados);
Então, o que quer dizer NoSQL?
Tipos de bancos NoSQL !
              =)
Wide Column Store;
Document Store;
Key Value;
Graph Databases;
Wide Column Store
Suporte a grande
quantidade de linhas e
colunas;

Subcolunas;

Exemplos:
 Cassandra (Apache);

 Big Table (Google);
Documents Store
Baseado em docs XML
ou JSON;

Localização por ID ou
qualquer outro registro;

Exemplos:

  MongoDB (10gen);

  CouchDB (Apache);
Key Value
Suporte a maior carga
de dados;

Maior escalabilidade;

Exemplos:
  MemCached;

  SimpleDB;
Graph Store
Armazenamento de
objetos;

Navegabilidade pelos
objetos;

Exemplos:

  Neo4j;

  monetdb;
Mas então, qual eu
 devo utilizar?
O banco certo pra
   situação certa!

Cada ferramenta é boa em uma área
especifíca, não tem como atender todas
as situações com um único tipo de banco.
Então, cuidado!
E onde entra o
       MongoDB?
Alternativa para o velho M do LAMP;
Altamente escalável;
Totalmente sem esquemas;
Fácil acesso à informação;
Suporte a várias linguagens e O.S.;
Casos de Uso Mongo
E pra instalar?

Acesse: http://www.mongodb.org/
downloads
Baixe a release para seu sistema;
Descompacte e pronto. :)
Instalação do Mongo: 1




As versões 32-bits só suportam bases com até 2GB
     e não são recomendados para produção!
Instalação Mongo: 2
tar -zxvf mongodb-osx-x86_64-2.2.0.tgz
Instalação Mongo: 3

sudo cp mongodb-osx-x86_64-2.2.0/bin/* /usr/bin/
Instalação Mongo: 4
sudo mkdir -p /data/db
sudo chown `id -u` /data/db
E agora??
sudo mongod
Como eu sei que funcionou?
  Acesse: http://127 1:28017
                    .0.0.
E quem já sabe SQL?
E quem já sabe SQL?
E como é que uso as duas
   coisas? PHP+Mongo
Extensão Mongo p/ PHP
sudo pecl install mongo
echo "extension=mongo.so" >> /usr/local/lib/php.ini
SQL -> Mongo+PHP




http://www.php.net/manual/en/mongo.sqltomongo.php
Conectando ao Mongo
Inserindo em uma Collection
Removendo em uma Collection
Atualizando em uma Collection
Buscando em uma Collection
Projeto prático

CRUD(inserir, buscar, atualizar e deletar);
Dados de uma pessoa:
    nome, telefones, email, observacoes,
    data de nascimento
Conteúdo disponível em:

 vdssgmu@gmail.com
 github.com/viniciusss
 @vdssg
 www.programador.eti.br
Obrigaduuuuuu!

Contenu connexe

Tendances

Sistemas de ficheiros
Sistemas de ficheirosSistemas de ficheiros
Sistemas de ficheirosKaska Lucas
 
Sistemas de ficheiros
Sistemas de ficheirosSistemas de ficheiros
Sistemas de ficheirosFrogFAT
 
Informatica basa cespe_2010
Informatica basa cespe_2010Informatica basa cespe_2010
Informatica basa cespe_2010Ynaê Barros
 
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...Tchelinux
 
AIX - Gerência de Memória
AIX - Gerência de MemóriaAIX - Gerência de Memória
AIX - Gerência de MemóriaJean Pimentel
 
AIX - Sistemas de Arquivos
AIX - Sistemas de ArquivosAIX - Sistemas de Arquivos
AIX - Sistemas de ArquivosJean Pimentel
 
Como migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para LinuxComo migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para LinuxMarcelo Sabadini
 
Code Rage Brazil III - Tudo sobre o REST Client Library
Code Rage Brazil III - Tudo sobre o REST Client LibraryCode Rage Brazil III - Tudo sobre o REST Client Library
Code Rage Brazil III - Tudo sobre o REST Client LibraryMario Guedes
 
FreeNAS: Armazenamento Centralizado - FLISOL 2010
FreeNAS: Armazenamento Centralizado - FLISOL 2010FreeNAS: Armazenamento Centralizado - FLISOL 2010
FreeNAS: Armazenamento Centralizado - FLISOL 2010Paulo Renato Lopes Seixas
 
PaaS - OpenShift como plataforma pública
PaaS - OpenShift como plataforma públicaPaaS - OpenShift como plataforma pública
PaaS - OpenShift como plataforma públicaGetup Cloud
 
Testes e depuração de código com Python
Testes e depuração de código com PythonTestes e depuração de código com Python
Testes e depuração de código com PythonDorneles Treméa
 

Tendances (18)

Sistemas de ficheiros
Sistemas de ficheirosSistemas de ficheiros
Sistemas de ficheiros
 
Postgres Tuning
Postgres TuningPostgres Tuning
Postgres Tuning
 
Trabalhando com Logs no PostgreSQL
Trabalhando com Logs no PostgreSQLTrabalhando com Logs no PostgreSQL
Trabalhando com Logs no PostgreSQL
 
Sistemas de ficheiros
Sistemas de ficheirosSistemas de ficheiros
Sistemas de ficheiros
 
Trabalhando com Logs no PostgreSQL
Trabalhando com Logs no PostgreSQLTrabalhando com Logs no PostgreSQL
Trabalhando com Logs no PostgreSQL
 
Informatica basa cespe_2010
Informatica basa cespe_2010Informatica basa cespe_2010
Informatica basa cespe_2010
 
Postgres Big data
Postgres Big dataPostgres Big data
Postgres Big data
 
Debian squeeze
Debian squeezeDebian squeeze
Debian squeeze
 
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
 
AIX - Gerência de Memória
AIX - Gerência de MemóriaAIX - Gerência de Memória
AIX - Gerência de Memória
 
AIX - Sistemas de Arquivos
AIX - Sistemas de ArquivosAIX - Sistemas de Arquivos
AIX - Sistemas de Arquivos
 
Slider biopython
Slider biopythonSlider biopython
Slider biopython
 
Como migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para LinuxComo migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para Linux
 
Code Rage Brazil III - Tudo sobre o REST Client Library
Code Rage Brazil III - Tudo sobre o REST Client LibraryCode Rage Brazil III - Tudo sobre o REST Client Library
Code Rage Brazil III - Tudo sobre o REST Client Library
 
FreeNAS: Armazenamento Centralizado - FLISOL 2010
FreeNAS: Armazenamento Centralizado - FLISOL 2010FreeNAS: Armazenamento Centralizado - FLISOL 2010
FreeNAS: Armazenamento Centralizado - FLISOL 2010
 
PaaS - OpenShift como plataforma pública
PaaS - OpenShift como plataforma públicaPaaS - OpenShift como plataforma pública
PaaS - OpenShift como plataforma pública
 
Desenvolvendo com IONIC
Desenvolvendo com IONICDesenvolvendo com IONIC
Desenvolvendo com IONIC
 
Testes e depuração de código com Python
Testes e depuração de código com PythonTestes e depuração de código com Python
Testes e depuração de código com Python
 

En vedette

Coisas que aprendemos usando Mongoid com grande quantidade de dados
Coisas que aprendemos usando Mongoid com grande quantidade de dadosCoisas que aprendemos usando Mongoid com grande quantidade de dados
Coisas que aprendemos usando Mongoid com grande quantidade de dadosfabio perrella
 
Delphi Parallel Programming Library
Delphi Parallel Programming LibraryDelphi Parallel Programming Library
Delphi Parallel Programming LibraryMario Guedes
 
Curso mongo db com php
Curso mongo db com phpCurso mongo db com php
Curso mongo db com phpSuissa
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONMario Guedes
 
Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Fernando Rizzato
 
MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16Christiano Anderson
 
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadDelphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadMario Guedes
 
Realidade Aumentada + Android : Oficina SESC
Realidade Aumentada + Android : Oficina SESCRealidade Aumentada + Android : Oficina SESC
Realidade Aumentada + Android : Oficina SESCOdair Bonin Borges
 

En vedette (9)

Coisas que aprendemos usando Mongoid com grande quantidade de dados
Coisas que aprendemos usando Mongoid com grande quantidade de dadosCoisas que aprendemos usando Mongoid com grande quantidade de dados
Coisas que aprendemos usando Mongoid com grande quantidade de dados
 
Mongo
MongoMongo
Mongo
 
Delphi Parallel Programming Library
Delphi Parallel Programming LibraryDelphi Parallel Programming Library
Delphi Parallel Programming Library
 
Curso mongo db com php
Curso mongo db com phpCurso mongo db com php
Curso mongo db com php
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSON
 
Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC
 
MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16
 
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadDelphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
 
Realidade Aumentada + Android : Oficina SESC
Realidade Aumentada + Android : Oficina SESCRealidade Aumentada + Android : Oficina SESC
Realidade Aumentada + Android : Oficina SESC
 

Similaire à [LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB

Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros PassosJackson F. de A. Mafra
 
Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013George Mendonça
 
Robot Operating System - Iniciação a Robótica
Robot Operating System - Iniciação a RobóticaRobot Operating System - Iniciação a Robótica
Robot Operating System - Iniciação a RobóticaFrancisco Soares Lima Filho
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à práticaMario Guedes
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2Flávio Lisboa
 
IntroduçãO Ao Desenvolvimento Web 2
IntroduçãO Ao Desenvolvimento Web   2IntroduçãO Ao Desenvolvimento Web   2
IntroduçãO Ao Desenvolvimento Web 2Maurício Linhares
 
desenvolvimento-web-javascript
desenvolvimento-web-javascriptdesenvolvimento-web-javascript
desenvolvimento-web-javascriptFelipe Barros
 
Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010Maurício Linhares
 
Introdução ao Apache Hadoop
Introdução ao Apache HadoopIntrodução ao Apache Hadoop
Introdução ao Apache HadoopVinícius Barros
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porteFelipe Ribeiro
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Getup Cloud
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...tdc-globalcode
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDeviceRicardo Rufino
 
A importância do ecossistema Java em aplicações baseadas em Big Data
A importância do ecossistema Java em aplicações baseadas em Big DataA importância do ecossistema Java em aplicações baseadas em Big Data
A importância do ecossistema Java em aplicações baseadas em Big DataVinícius Barros
 
MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014Fernando Boaglio
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 

Similaire à [LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB (20)

Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
 
Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013
 
Robot Operating System - Iniciação a Robótica
Robot Operating System - Iniciação a RobóticaRobot Operating System - Iniciação a Robótica
Robot Operating System - Iniciação a Robótica
 
PHP: Além do sitezinho
PHP: Além do sitezinhoPHP: Além do sitezinho
PHP: Além do sitezinho
 
MongoDB
MongoDBMongoDB
MongoDB
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 
IntroduçãO Ao Desenvolvimento Web 2
IntroduçãO Ao Desenvolvimento Web   2IntroduçãO Ao Desenvolvimento Web   2
IntroduçãO Ao Desenvolvimento Web 2
 
desenvolvimento-web-javascript
desenvolvimento-web-javascriptdesenvolvimento-web-javascript
desenvolvimento-web-javascript
 
Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Introdução ao Apache Hadoop
Introdução ao Apache HadoopIntrodução ao Apache Hadoop
Introdução ao Apache Hadoop
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
 
Minicurso Web. Front-end e HTML5 (parte 2)
Minicurso Web. Front-end e HTML5 (parte 2)Minicurso Web. Front-end e HTML5 (parte 2)
Minicurso Web. Front-end e HTML5 (parte 2)
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDevice
 
A importância do ecossistema Java em aplicações baseadas em Big Data
A importância do ecossistema Java em aplicações baseadas em Big DataA importância do ecossistema Java em aplicações baseadas em Big Data
A importância do ecossistema Java em aplicações baseadas em Big Data
 
MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 

[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB