[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB

1,314 views
1,219 views

Published on

Mini-curso sobre PHP 5.4 e MongoDB no Latino Ware 2012.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,314
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB

  1. 1. PHP 5.4 + MongoDB Conceitos e prática
  2. 2. Quem fala?Vinícius de Sá - @vdssg19 anosDesenvolve na Móveis SimonettiEstuda Análise e Desenv. de Sistemas na UNISAMAma tecnologia e qualquer coisa que agilize as coisasPrograma em PHP, JavaScript, Python
  3. 3. PHPPHP: Hypertext PreprocessorLinguagem 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;
  4. 4. PHP, mas quem usa?Facebook;Google;WikiMedia (WikiPedia);Yahoo;Bank of America;Wordpress.
  5. 5. 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 phpWindows(aff): http://windows.php.net/downloads
  6. 6. Mas... no nosso caso.wget http:/ /br1.php.net/distributions/php-5.4.7.tar.bz2tar -jxvf php-5.4.7.tar.bz2cd php-5.4.7./configure --disable-allmakesudo make install
  7. 7. Testando a instalaçãocd ˜/mkdir testes || cd testesecho "<?php phpinfo(); ?>" > index.phpsudo php -S 127 1:80 .0.0.
  8. 8. Resultado dainstalação... :)
  9. 9. 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.
  10. 10. E o NoSQL? O que é?NoSQL são diferentes sistemas dearmazenamentoque vieram para suprir necessidadesem demandas onde os bancos de dadostradicionais (relacionais) sãoineficazes.
  11. 11. 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);
  12. 12. Então, o que quer dizer NoSQL?
  13. 13. Tipos de bancos NoSQL ! =)Wide Column Store;Document Store;Key Value;Graph Databases;
  14. 14. Wide Column StoreSuporte a grandequantidade de linhas ecolunas;Subcolunas;Exemplos: Cassandra (Apache); Big Table (Google);
  15. 15. Documents StoreBaseado em docs XMLou JSON;Localização por ID ouqualquer outro registro;Exemplos: MongoDB (10gen); CouchDB (Apache);
  16. 16. Key ValueSuporte a maior cargade dados;Maior escalabilidade;Exemplos: MemCached; SimpleDB;
  17. 17. Graph StoreArmazenamento deobjetos;Navegabilidade pelosobjetos;Exemplos: Neo4j; monetdb;
  18. 18. Mas então, qual eu devo utilizar?
  19. 19. O banco certo pra situação certa!Cada ferramenta é boa em uma áreaespecifíca, não tem como atender todasas situações com um único tipo de banco.Então, cuidado!
  20. 20. 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.;
  21. 21. Casos de Uso Mongo
  22. 22. E pra instalar?Acesse: http://www.mongodb.org/downloadsBaixe a release para seu sistema;Descompacte e pronto. :)
  23. 23. Instalação do Mongo: 1As versões 32-bits só suportam bases com até 2GB e não são recomendados para produção!
  24. 24. Instalação Mongo: 2tar -zxvf mongodb-osx-x86_64-2.2.0.tgz
  25. 25. Instalação Mongo: 3sudo cp mongodb-osx-x86_64-2.2.0/bin/* /usr/bin/
  26. 26. Instalação Mongo: 4sudo mkdir -p /data/dbsudo chown `id -u` /data/db
  27. 27. E agora??sudo mongod
  28. 28. Como eu sei que funcionou? Acesse: http://127 1:28017 .0.0.
  29. 29. E quem já sabe SQL?
  30. 30. E quem já sabe SQL?
  31. 31. E como é que uso as duas coisas? PHP+Mongo
  32. 32. Extensão Mongo p/ PHPsudo pecl install mongoecho "extension=mongo.so" >> /usr/local/lib/php.ini
  33. 33. SQL -> Mongo+PHPhttp://www.php.net/manual/en/mongo.sqltomongo.php
  34. 34. Conectando ao Mongo
  35. 35. Inserindo em uma Collection
  36. 36. Removendo em uma Collection
  37. 37. Atualizando em uma Collection
  38. 38. Buscando em uma Collection
  39. 39. Projeto práticoCRUD(inserir, buscar, atualizar e deletar);Dados de uma pessoa: nome, telefones, email, observacoes, data de nascimento
  40. 40. Conteúdo disponível em: vdssgmu@gmail.com github.com/viniciusss @vdssg www.programador.eti.br
  41. 41. Obrigaduuuuuu!

×