logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Abr 29

PHP + MongoDB

Escrito por Fábio Batista da Silva em 1, 4, 6, apache, api, app, AR, auto, Banco de Dados, BI, class, classe, classes, cliente, código, collection, comparação, Curso, dados, demo, desempenho, Desenvolvedor, desenvolvedores, Dica, Documentação, Download, email, Flex, for, git, gmail, ide, IE, if, image, instalação, int, Java, Javascript, lista, mg, mysql, O, on, Partilha, PHP, pt, quick, RIA, Ria’s Geral, servidor, UI, uint, update, Ved, web, XP @ 04 29th, 2011 | via http://www.flexria.com.br/home | Sem comentários
Fábio Batista da Silva
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá.

Ultimamente me tenho dedicado bastante a melhora da performance das aplicações que desenvolvo.
Resolvi compartilhar aqui um pouco do que aprendi sobre NoSql.
Esses bancos de dados seguem uma abordagem diferente para o armazenamento de dados em comparação com o modelo relacional tradicional.
E estão rapidamente se popularizando entre os desenvolvedores da Web, devido à sua flexibilidade, simplicidade e fácil integração.

Neste Post vou falar um pouco sobre o MongoDB e a integração com o php.
MongoDB é um banco de dados orientado a documentos uma solução escalável, de alto desempenho e código aberto.

Você vai encontrar nesse link instruções sobre como instalar o MongoDB no seu ambiente : http://www.mongodb.org/display/DOCS/Quickstart

Se você assim como eu estiver usando o Ubuntu, você pode instalar MongoDB usando apt-get.
Para fazer isso, adicione a seguinte linha ao seu arquivo /etc/apt/sources.list:

deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen

Em seguida, instale o pacote com apt-get executando os seguintes comandos:

sudo apt-get update
sudo apt-get install mongodb-10gen

Se tudo der certo depois de concluir a instalação você pode acessar o MongoDB via linha de comando, como abaixo:

mongo
> show dbs
admin	(empty)
my_db	0.0625GB

Agora pode enviar comandos para o servidor, assim como faria em cliente mysql, porem utilizando a sintaxe do javascript.
A documentação do mongo é bem completa, la você pode encontrar mais detalhes sobre sua utilização : http://www.mongodb.org/display/DOCS/Home

?
// Exibe a versão banco de dados
> db.version()
1.8.1
?
// Cria uma nava coleção
> db.createCollection("contacts")
?
// Lista todas as coleções
> db.getCollectionNames()
[ "contacts", "system.indexes" ]
?
// Insere um novo item na coleção
> db.contacts.insert({"name" : "Fabio B. Silva", "email" : "fabio.bat.silva@gmail.com"})
?
// Lista todos os itens da coleção
> db.contacts.find()
{ "_id" : ObjectId("4db82c83a6510c5c77d67ebe"), "name" : "Fabio B. Silva", "email" : "fabio.bat.silva@gmail.com" }

Observe que quando você adiciona um novo registro a coleção o MongoDB anexa automaticamente um identificador único ( _id ).
Esse identificador pode ser usado para recuperar ou modificar um documento específico, similar a um id auto-increment em um banco de dados relacional.

Agora vamos partir para o código php.
existe uma extensão/drive para o php que fornece uma API completa para acessar o MongoDB, Ela está disponível gratuitamente a partir do PECL.
A extensão é estável e permite que você execute a maioria das tarefas comuns relacionadas ao acesso e utilização de um banco de dados MongoDB partir de uma aplicação PHP.

Para instalar você precisa ter o pear/pecl previamente instalados e executar o comando

pecl install mongo

E então adicionar a extensão no seu php.ini e reiniciar o seu apache

extension=mongo.so

Se tudo der certo na instalação você terá as classes do mongo disponíveis no php, as principais são:
* Mongo
* MongoDB
* MongoCollection
* MongoCursor

Mongo – Usado para interagir com o MongoDB

// Conexão com o banco de dados
 $mongo  = new Mongo();
?
// Conecta ao MongoDB
$mongo->connect();
?
// Remove um esquema
$mongo->dropDB("my_db_copy");
?
// Seleciona um esquema
$mongo->selectDB("my_db");
?
// Lista esquemas  
$list   = $mongo->listDBs();
?
// Fecha conexão
$mongo->close();

MongoDB – Usado para interagir com um esquema

?
// Seleciona um esquema
$db = $mongo->selectDB("my_db");
?
// Cria uma nova coleção
$db->createCollection("contacts");
?
// Seleciona uma coleção
$db->selectCollection ("contacts");
?
// Remove uma coleção
$db->dropCollection("contacts");
?
// Lista todas as coleções
$db->listCollections();

MongoCollection – Representa uma coleção

// Novo registro
$data = array(
    'name'  => 'Fabio B. Silva',
    'email' => 'fabio.bat.silva@gmail.com',
);
$contacts->insert($data);  // Insere um novo registro na coleção
$id = $data['_id'];        // O índice '_id' é anexado automaticamente pelo MongoDB
?
?
$data['name']  = 'Fábio Silva';         // Alterar o atributo
$criteria      = array('_id'=>$id);     // Critério do update|
$contacts->update($criteria, $data);    // Altera registro na coleção
?
?
$criteria  = array('_id'=>$id); // Critério para remoção
$contacts->remove($criteria);   // remove registro da coleção
?
?
?
$contacts->find();     // Lista todos os registros da coleção

MongoCursor – Resultado de uma consulta a uma coleção

?
// Lista todos os registros da coleção
$cursor = $contacts->find();
?
// Numero de registros encontrados
$cursor->count();
?
foreach ($cursor as $item)
{
    echo $item['name'];
}

Existem varias outras funcionalidades e classes que podem ser exploradas no MongoDB,
Essa é apenas uma pequena demostração do que ele pode fazer por você. ;-)
Para quem tiver o interesse deixei uma pequena app no git que demonstra algumas outras funcionalidades do MongoDB
https://github.com/FabioBatSilva/mongo-demo

Abraço e até a próxima….

Abr 29

(off) PREÇO JUSTO

Escrito por SamuelFacchinello em 1, 2.0, 4, 6, AR, bar, blog, Blogs, C#, camp, campanha, Flex, Google, mg, O, on, Pov, Ria’s Geral, S+S, site, Twitter, zend @ 04 29th, 2011 | via http://desenvolvendoemflex.blogspot.com/ | Sem comentários
SamuelFacchinello
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá povo, estou fazendo este OFF TOPIC para insentivar a campanha #precojusto entre no site abaixo e assine este protesto. Vamos lutar por um Brasil melhor (ou pelo menos mais barato)!!!!

http://www.precojustoja.com.br

Abr 29

(off) Dev também quer preço justo!

Escrito por Daniel Schmitz em 4, AR, BI, camp, campanha, Desenvolvedor, Desenvolvimento, Flex, for, futuro, int, Mercado, mobile, O, Outros, RIA, Ria’s Geral, Tecnologia, Ved @ 04 29th, 2011 | via http://flex.etc.br | Sem comentários
Daniel Schmitz
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Você desenvolvedor FLEX sabe que o futuro desta tecnologia está diretamente ligada ao mobile. E sabemos também que o desenvolvimento mobile está a pleno vapor lá fora, enquanto o mercado interno começa a dar os primeiros passos. Agora pagar 2400 reais num IPAD é #foda! Ninguém merece!

Por isso estou criando esse post off topic para divulgar a campanha #precojusto. Acesse e assine!

http://www.precojustoja.com.br

Abr 29

Experimentando Flex Mobile #screencast

Escrito por Jose Carlos Fiel em 1, 4, 6, Adobe, Adobe Flex, Android, api, app, apple, AR, BI, blog, builder 4, class, classe, classes, demo, err, flash, flash builder, Flash Builder 4, Flex, for, framework, html, IE, if, image, iphone, mg, mobile, O, on, PHP, Ria’s Geral, screen, Screencast, serviço, servidor, UI, web, XP, zend, Zend Framework @ 04 29th, 2011 | via http://blog.josecarlosfiel.com.br | Sem comentários
Jose Carlos Fiel
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »



Essa semana estou no desafio de construir uma app mobile usando Flex.

Algo bem simples até então, já que estou usando uma versão da prerelease do Flash Builder 4.5 for PHP.

O mais legal é simplicidade de conectar ao servidor, utilizando as mesmas classes de serviço do Zend usadas na app existente rodando hoje na web (Flex + PHP usando Zend Framework).

Muita gente já me adianta falando: “Vai funcionar só no Android né, já que o iPhone e iPad não tem Flash!”.

Maior engano destes ou de você que já pensou o mesmo.

Agora podemos compilar um arquivo APK para plataforma Android e um arquivo IPA para plataforma iOS. Fora as duas grandes plataformas ainda posso gerar para o BlackBerry PlayBook.

Assistam e confiram abaixo a breve experiência:

Abr 28

DClick Holmes Preview

Escrito por DClick Team em 1, 6, AR, Arquitetura, back, blog, dados, Design, escritório, Flex, IE, int, Java, Notícias, O, on, Outros, problema, problemas, Review, RIA, Ria’s Geral, tag, TAT, Twitter, UI, UX, Vídeo @ 04 28th, 2011 | via http://blog.dclick.com.br/pt/ | Sem comentários
DClick Team
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Twitter!

Não só quem trabalha com TI, mas qualquer escritório hoje em dia tem uma rede cuja organização dos arquivos é um caos. Além disso você deve ter um monte de arquivos com o nome “meuArquivo1.ex”, “meuArquivo3.ex”, “meuArquivoFinal.ex”, “meuArquivoFinal2.ex”, etc. E pra se achar nesta bagunça? Isso sem falar que alguns arquivos devem ser visto apenas por um grupo específico de pessoas e não é tão fácil manter isso… enfim, nós juntamos todos estes problemas (e outros), com uma arquitetura Robusta de Back-End (Java, Lucene, Solr), uma investimento pesado em UX no Front-end (Design de Interação, AI e Flex) e o conceito de Meta-Dados (Palavras Chave e Tags) e criamos do DClick Holmes cuja prévia pode ser vista em primeira mão aqui no blog.

Para manter o vídeo pequeno (8 minutos) eu falo um tanto rápido e não entro muito no detalhe. Mesmo assim, acho que dá para ter idéia do poder o Holmes.

Abr 27

Criando aplicativos movéis com Dreamweaver CS 5.5 e PhoneGap

Escrito por Leonardo França em 1, 4, 6, Adobe, Android, api, Aplicativos, AR, BI, blog, Blogs, class, comunidade, css, DRE, Dreamweaver, framework, html, html5, IE, if, image, Java, Javascript, mg, novidade, Novidades, O, on, PHP, pt, RIA, Ria’s Geral, Software, UI, variados, zend @ 04 27th, 2011 | via http://www.leonardofranca.com.br | Sem comentários
Leonardo França
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »



A Adobe anunciou recemente uma atualização na sua suite de softwares(Creative Suite 5.5), trazendo muitas novidades para a comunidade. Para quem usa o Dreamweaver e HTML5, agora trazendo suporte ao PhoneGap, que é um framework que permite que você aplicativos para os mais variados dispositivos rodando iOS e Android a partir de JavaScript, HTML e CSS. Com isso, você pode criar aplicativos nativos para Android e iOS a partir do Dreamweaver CS 5.5 :D

Mais detalhes:
http://blogs.nitobi.com/andre/index.php/2011/04/12/adobe-dreamweaver-5-5-supports-phonegap/

Abr 26

Download de arquivo com Servlet e Flex

Escrito por Cognitiva Soluções em 1, 4, 6, Access, AR, blog, Blogs, break, business, catch, class, código, Curso, Download, err, exemplo, finally, Flex, for, function, Google, html, ide, IE, if, image, int, Java, mg, O, on, override, print, produto, pt, RIA, Ria’s Geral, string, TAT, try, UI, vs @ 04 26th, 2011 | via http://blog.cognitivasolucoes.com | Sem comentários
Cognitiva Soluções
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Segue um exemplo de como desenvolver um Servlet para download de arquivos realizando a integração com Flex.

Vamos ao Servlet:

package com.xxx.business.services;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.agriness.produto31.business.db.entities.Usuario;
import com.agriness.produto31.business.dto.Arquivo;
import com.agriness.produto31.commons.AccessProperties;
import com.agriness.produto31.core.exception.BusinessException;
import com.agriness.produto31.recurso310003.business.services.ArquivoDownload;

public class ServletDownloadFile extends HttpServlet {

 private static final long serialVersionUID = -1783732558472851554L;

 @Override
 @SuppressWarnings("unchecked")
 protected void service(final HttpServletRequest request,
   final HttpServletResponse response) throws ServletException,
   IOException {

  ArquivoDownload arqDown = new ArquivoDownload();
  Arquivo arq = new Arquivo();
  arq.setNome(request.getParameter("nome"));
  arq.setExtensao(request.getParameter("extensao"));
  arqDown.setArquivo(arq);
  arqDown.setCaminho("/download/");

  PrintWriter printwriter = response.getWriter();

  if (arqDown.getArquivo().getNome().length() == 0) {
   response.setContentType("text/html");
   printwriter.println("Nome do arquivo inválido");
   printwriter.flush();
   printwriter.close();
   return;
  }
  if (arqDown.getCaminho() == null) {
   response.setContentType("text/html");
   printwriter.println("Caminho do arquivo inválido");
   printwriter.flush();
   printwriter.close();
   return;
  }
  File file = new File(arqDown.getCaminho()
    + arqDown.getArquivo().getNome());
  if (file == null) {
   response.setContentType("text/html");
   printwriter.println("Arquivo não pode ser lido");
   printwriter.flush();
   printwriter.close();
   return;
  }

  if (!file.exists() || !file.canRead() || file.isDirectory()) {
   response.setContentType("text/html");

   if (!file.exists())
    printwriter.println("Arquivo inexistente");
   else if (file.isDirectory())
    printwriter.println("O arquivo é um diretório");
   else
    printwriter.println("Arquivo não pode ser lido");

   printwriter.flush();
   printwriter.close();
   return;
  }

  response.setHeader("Content-Disposition", "attachment; filename = "
    + arqDown.getArquivo().getNome());
  response.setContentType("octet-stream");

  int BUFF_SIZE = 1024;
  byte[] buffer = new byte[BUFF_SIZE];
  response.setContentLength((int) file.length());
  FileInputStream fis = new FileInputStream(file);
  OutputStream os = response.getOutputStream();

  int byteCount = 0;
  try {
   do {
    byteCount = fis.read(buffer);
    if (byteCount == -1)
     break;
    os.write(buffer, 0, byteCount);
    os.flush();
   } while (true);
  } catch (Exception excp) {
   excp.printStackTrace();
  } finally {
   os.close();
   fis.close();
  }

 }
}

Segue o código Flex:

public function executaDownloadFromUrl( url:String ):void{
   if( url == null ){
    return;
   }
   var u:URLRequest  = new URLRequest(url);
   navigateToURL(u);
  }

Monte a url conforme os atributos definidos no Servlet.
ex: http://meudominio.com/Servlet/?nome=nomeArquivo&extensao=.pdf

Abr 26

[DICA] Livro – Flex 4 Avançado

Escrito por Gabriel Versallini em 4, Air, AR, blog, Flex, Flex 4, if, Livro, livro flex, O, on, Pessoal, Ria’s Geral, UI @ 04 26th, 2011 | via http://www.versallini.com.br | Sem comentários
Gabriel Versallini
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá, pessoal!

Uma passada rápida aqui pelo blog para divulgar o lancamento do livro Flex 4 Avançado. Já comprei e achei o conteúdo bacana, pelo menos até a página 99. Mas nem é pelo conteúdo do livro que estou divulgan

Abr 23

Conhecendo o Spark Form do Flex 4.5 #screencast

Escrito por Jose Carlos Fiel em 1, 4, 6, Adobe Flex, api, AR, Arquitetura, blog, Componente, demo, flash builder, Flex, Flex 4, for, Formulário, Formulários, IE, if, image, mg, O, on, RIA, Ria’s Geral, screen, Screencast, spark, UI @ 04 23rd, 2011 | via http://blog.josecarlosfiel.com.br | Sem comentários
Jose Carlos Fiel
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »



Neste screencast, falarei um pouco sobre o Spark Form, componente disponível no Flex 4.5 que está previsto ficar disponível ao publico no início do próximo mês.

Você vai ver como podemos criar formulários mais elegantes usando o novo componente da arquitetura Spark.

Abr 20

Configurando Virtual Host no Tomcat

Escrito por Cognitiva Soluções em 1, 4, 6, app, AR, auto, blog, Blogs, engine, Google, IE, image, Java, mg, O, on, redirecionamento, Ria’s Geral, server, UI, web, XML @ 04 20th, 2011 | via http://blog.cognitivasolucoes.com | 1 comentário
Cognitiva Soluções
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Para configurar Virtual Host no Tomcat é preciso fazer um redirecionamento no dns do seu domínio do tipo A ou cname para a sua máquina server.

Após isso é preciso que você configure no server.xml:


 
  

   
         nome.dominio.com
         
        
    

    
  

Depois reinicie o Tomcat. Se não funcionar reboot a máquina.

« Entradas anteriores |

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2758 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com