Displaying posts with tag: PHP (reset)
DatabaseCast #34: MySQL para desenvolvedores

Olá, pessoal. Neste trigésimo quarto episódio do DatabaseCast, o podcast brasileiro sobre banco de dados, Mauro Pichiliani e Wagner Crivelini entram em uma reunião com o consultor Airton Lastori para conversar sobre o que o MySQL tem para oferecer aos desenvolvedores. Neste episódio você vai eliminar seu preconceito contra vendedores (e consultores), aprender como lidar com um dinossauro no seu jardim, descobrir onde o MySQL é utilizado, identificar fios de cabelos brancos e loiros, discutir sobre engines de bancos de dados e se preparar para reuniões onde sobrancelhas são levantadas, narizes são torcidos e clientes que quase vão para as vias de fato.

Não deixe de nos incentivar …

[Leia mais]
Respect: um microframework de respeito!

Era difícil imaginar, lá em 2010, que um modesto projeto PHP brasileiro no GitHub, sem nenhuma empresa por trás e sem nenhum programador dedicado 100% para desenvolvê-lo, ganharia milhares de usuários e dezenas de contribuidores de diversos países.

O nome Respect veio de uma das preocupações iniciais do projeto: não apenas respeitar standards e patterns mas tornar o uso deles uma experiência agradável, e não um inferno particular.

Sem dúvida o componente mais famoso do Respect é o Respect\Validation, feito para validar qualquer informação e, se houver uma falha, indicá-la de forma clara. O Exemplo 1 valida se uma string tem de 1 a 15 caracteres, somente letras, números e o caractere “_”. Esse é o formato de um nome de usuário do Twitter.

Exemplo 1: …

[Leia mais]
DatabaseCast #32: Backup e restore


Olá, pessoal! Neste episódio do DatabaseCast, o podcast brasileiro sobre banco de dados, Mauro Pichiliani e Wagner Crivelini recebem o convidado especial Jonny Ken para uma conversa sobre backup e restore.

Neste episódio você vai saber como a biologia e a informática podem trabalhar juntas, por que separar um servidor de direcionamento de um servidor de bookmark, a diferença entre backup e cópia, quais são os tipos e as opções avançadas de backup e finalmente responder obter a resposta para a pergunta: o que exatamente aconteceu com o Migre.me?

Não deixe de nos incentivar com o seu comentário, mandando e-mail para …

[Leia mais]
Instalação do Drupal com drush

Olá, pessoas! Vou explanar um pouco sobre a instalação do Drupal usando drush. Como o drush é uma ferramenta fantástica, vou falar também sobre a instalação dele. Para quem não sabe, “drush” é abreviação de Drupal Shell. Imprescindível para agilizar o desenvolvimento. Assim, a primeira coisa que vamos fazer é instalar o drush.

Instalação do drush no Linux

Para ter a versão mais recente e sempre atualizada junto aos outro pacotes, uso o pear como fonte de arquivos. É preciso ter instalado a extensão php-pear. No terminal:

$ sudo apt-get install php-pear
$ sudo pear channel-discover pear.drush.org
$ sudo pear install drush/drush

Com esses comandos, instalamos a extensão php-pear, adicionamos o canal do repositório e instalamos o drush. Pronto! O drush está pronto para ser usado. Vamos ver a instalação em outros sistemas operacionais.

Instalaçao do drush no Mac OS

Faça …

[Leia mais]
Facilitando a consistência do ambiente de desenvolvimento

Cada desenvolvedor é diferente, mas o ambiente da sua equipe de desenvolvimento não tem que ser. Um web app moderno usa muitas tecnologias diferentes. As dependências comuns para um ambiente de desenvolvimento web em funcionamento incluem PHP e suas extensões necessárias, um servidor web, um banco de dados, frameworks de teste, e outros aplicativos e serviços. A abordagem clássica para auxiliar uma equipe de desenvolvedores é implementar um servidor e instalar todos os pacotes necessários para o desenvolvimento. Essa metodologia fornece um ambiente consistente para todos os desenvolvedores da equipe, garantindo que todos os colaboradores recebam a mesma experiência em todo o ciclo de desenvolvimento. No entanto, por mais consistente e homogêneo que um desenvolvimento remoto possa ser, desenvolver remotamente traz uma série de problemas, incluindo sacrifícios de velocidade e uma dependência desagradável de uma conexão confiável à …

[Leia mais]
Padrões TableDataGateway e TableRowGateWay – Teoria e Prática

Olá, pessoal!

Bom, este é o meu primeiro artigo aqui no iMasters, espero que gostem e que seja lhes seja útil.

Os puristas dos Design Patterns podem não gostar muito do conteúdo deste artigo, pois ele foge um pouco da implementação padrão conhecida, que é definida por Martin Fowler no clássico Patterns of Enterprise Application Architecture.

Entretanto, segundo a minha concepção, não se trata de uma violação do padrão já conhecido, mas de uma variação. Muitas pessoas têm a ideia errônea de que os padrões são receitas prontas, que devem ser seguidos ao pé da letra.

Gang of Four (Erich Gamma et al.) define um design pattern como:

Um Design Pattern sistematicamente nomeia, motiva e explica o design geral que identifica um problema recorrente no desenvolvimento de sistemas …

[Leia mais]
Aprenda a usar o RESTful com PHP e Slim Framework

No artigo anterior, foi abordado um exemplo envolvendo um padrão de comunicação entre cliente e servidor. Aquele exemplo em tese não significava a princípio que estávamos implementando REST com todas suas regras, mesmo porque criamos apenas uma forma de responder requisições HTTP através de um formato único de resposta. Existe um padrão arquitetural que define o REST, que pode ser encontrado na wikipedia, e que não vamos a princípio abordar. O que precisamos saber é que, deste padrão arquitetural surge outro conceito chamado RESTful, que nada mais é que uma implementação do REST, de forma semelhante aos webservices.

Quando falamos em RESTful, estamos abordando uma forma de acesso a dados semelhante aos webservices, …

[Leia mais]
Desenvolvimento PHP usando máquinas virtuais, FastCGI + FPM

Há algum tempo, tenho realizado meus projetos usando Virtual Machines (VMs) e tem sido bem produtivo, além de eu deixar minha máquina principal livre quando não estou desenvolvendo. Outra vantagem é ter à mão o SO de produção, com suas dependências e problemas. Vou passar uma receitinha de bolo, levantando um ambiente LAMP em um Ubuntu, conectado com a máquina principal (o que nos permite centralizar o código e testar em diferentes ambientes).

Para dar uma apimentada na receita, vou utilizar Fastcgi e PHP-FPM (vale a pena ir mais a fundo no assunto, começando pelo site do projeto), além de revelar alguns truques que me são muito úteis no dia-a-dia de desenvolvedor.

Ingredientes

  • Instalador/pacote do VirtualBox (obtida aqui) – foi utilizada a versão 4.1.8.
  • Uma imagem …
[Leia mais]
Usando a técnica stitch-and-query

O problema N+1

É mais fácil descrever o problema N+1 através de exemplo. Dê uma olhada no seguinte trecho de PHP em app hipotético de blog:

<?php
/**
* @var Solar_Sql_Adapter|Zend_Db_Adapter
* $sql An SQL database connection object.
*/

// 1 query to get 10 blog posts.
$stmt = 'SELECT * FROM posts LIMIT 10';
$posts = $sql->fetchAll($stmt);

// 10 queries (1 per blog post) to get
// the comments for each post
foreach ($posts as &$post) {

$stmt = 'SELECT *
FROM comments
WHERE post_id = :post_id';

$bind = array(
'post_id' => $post['id'],
);

$post['comments'] = $sql->fetchAll(
$stmt,
$bind
);
}

Temos um conjunto mestre de linhas (as postagens do blog), mas precisamos ainda buscar muitas linhas de comentários para cada artigo do blog. Para fazer isso, nós fizemos um loop pelo conjunto mestre de linhas e lançamos uma query para cada um. Isso leva a várias linhas de comentários para esse artigo do blog.

[Leia mais]
Conheça o Easy Framework

Fala, pessoal, tudo tranquilo?

Hoje gostaria de apresentar para vocês um novo Framework para PHP. Nossa, mais um??

Acreditem, esse é diferente.

O Easy Framework foi desenvolvido por mim (Ítalo Lelis de Vietro) e é um dos poucos frameworks brasileiros. O projeto teve início em junho de 2011, quando senti a necessidade de uma ferramenta de auxílio para o desenvolvimento de aplicações ágeis em PHP (RapidApplicationDevelopment) e com facilidade para manter o código. Hoje o projeto conta com o suporte da comunidade PHP-PB e promete ser um ótimo framework.

Vamos aprender a criar uma aplicação simples com o EasyFw. Que tal criarmos um aplicativo para cadastrar livros de uma livraria?

Baixando o EasyFw

Primeiramente precisamos baixar a versão 2.0.0, que é a que vou utilizar no exemplo de hoje. Para isso, basta acessar o site do …

[Leia mais]