Integração contínua em PHP

24 de agosto de 2011 Deixe um comentário

Projetos de softwares envolvem diversos arquivos que precisam ser “orquestrados” juntos para se construir um produto. Manter todos esse arquivos exige um grande esforço, particularmente quando existem várias pessoas envolvidas. Existem várias práticas e ferramentas disponíveis atualmente capazes de mensurar e automatizar tarefas de controle.

Essa prática já é bastante conhecida quando se fala em desenvolvimento com a linguagem  Java por exemplo, porém, com PHP esses procedimentos apesar de não serem novos, ainda não são muito praticados nas equipes de desenvolvimento. O PHP por ser uma linguagem flexível e não burocrática permite algumas facilidades que as vezes se confundem com más práticas de desenvolvimento de software.

Vai aí algumas referências as quais estou estudando sobre o assunto e implementando na medida do possível, vou colocar aqui no blog um pouco da experiência que estamos tendo em usar tais processos.

Referências:
Integração Contínual com Jenkins – Template Jenkins for PHP
Apresentação CI com Jenkins

Anúncios
Categorias:web Tags:

FLISOL-DF 2011

26 de março de 2011 Deixe um comentário

Pessoal, está próximo o FLISOL-DF 2011, para quem não conhece:
O Festival Latino americano de Instalação de Software Livre é um festival anual de instalação de software livre, gratuito e aberto a toda a comunidade, realizado desde 2005 em diversos países da América Latina, inclusive no Brasil. O evento tem o propósito de promover o uso de softwares livres e a integração de comunidades de usuários de software livre em todos os paí­ses da América Latina“.

Página do Evento: http://flisoldf.blog.br/

FLISOL

Se você é um entusiasta do Software Livre, ou tem interesse de conhecer essa é uma boa oportunidade. O evento conta com diversas palestras sobre o assunto, além de porder instalar em sua máquina ou laptop os aplicativos livres disponibilizados pela comunidade contando com o suporte e assistência da dos profissionais altamente especializados no assunto que estarão presentes no evento.

Categorias:web Tags:,

Jquery 1.5

3 de fevereiro de 2011 Deixe um comentário

Depois do RC (Release Candidate) na semana passada, o jQuery lançou a sua versão 1.5 oficialmente.

Uma das características é a simplificação da manipulação de eventos,  dom, animação e Ajax, também, um módulo de reescrita do Ajax, que representa melhor o XmlHttpRequest nas diversas plataformas. Outras caracteríticas são a capacidade para estender a API, filtros e transportes, que está detalhada em um documento Extending Ajax.

Suporte para Deferred Objects que permitem que funções possam retornar valores, onde o valor real pode não estar imediatamente disponível, como os resultados de uma solicitação do Ajax.

Destaque para o método: jQuery.sub () que permite aos desenvolvedores modificar os métodos de segurança e grandes melhorias no desempenho com a os métodos .children(), .prev() e .next().  Foi revisado o sistema de construção interna para padronização utilizando o ambiente JavaScript NodeJS server-side.

A nova versão já pode ser baixada diretamente do site do projeto: Jquery 1.5
Acompanhe as novidades: http://blog.jquery.com/2011/01/31/jquery-15-released/

Categorias:javascript, jquery

PHP – Card Reference Cheat Sheet

13 de agosto de 2010 Deixe um comentário


Guia rápido de referência da linguagem, contém as principais funções organizadas por contexto.

Categorias:php, web Tags:

Requisitando e Submetendo páginas remotas com PHP

29 de julho de 2010 3 comentários

Senhores, recentemente estive trabalhando com requisições remotas usando php, dentre as várias sugestões que me foram citadas, acabei me deparando com uma funcionalidade simples e já nativa do próprio PHP apenas utilizando algumas funções de stream e manipulação de arquivos, que aceitam como parâmetro tanto streams locais ou remotos, Isso é possível graças aos protocol wrappers que implementam a lógica de acesso aos esses protocolos, por exemplo HTTP. Por exemplo, pensei em usar até o cURL pra submeter dados por POST para outro servidor, porém, acho que só para essa finalidade a extensão seria subutilizada, o fato é que as funções que fazem uso dos protocol wrappers aceitam um objeto de stream context, que podemos criar usando  stream_context_create. Podemos ainda configurar método de acesso (GET, POST, etc) e o conteúdo a ser postado.

Funções utilizadas:

– file_get_contents — Lê todo o conteúdo de um arquivo ou URL para uma string;

– fopen — Abre um arquivo ou URL;

– http_build_query — Gera a string de consulta (query) em formato URL;

– stream_context_create Cria um contexto para o stream;

– stream_get_meta_data —recupera  informações de cabeçalhos de streams arquivos  e ponteiros;

Lendo uma página remota:

$contents = file_get_contents('http://php.net/file_get_contents');
echo $contents;

Postando para uma página remota:

$content = http_build_query( array('param'=>'valor') ); 

$context = stream_context_create(array(
   'http' => array(
   'method'  => 'POST',
   'content' => $content,
 ) ));

 $contents = file_get_contents('http://paginaremota.com.br/teste.php', null, $context);

Lendo o cabeçalho de uma requisição remota:

$stream = fopen( "http://g1.globo.com/dynamo/rss2.xml" , 'r');
var_dump( stream_get_meta_data($stream) ); 

Submentendo e capturando cabeçalho  de uma requisição remota:

$content = http_build_query(array( 'param' => 'valor' )); 
$context = stream_context_create(array(
   'http' => array(
        'method'  => 'POST',
        'content' => $content,
 ) ));
$stream = fopen( "http://g1.globo.com/dynamo/rss2.xml" , 'r' , null , $context );
var_dump( stream_get_meta_data($stream) );
Categorias:php, web Tags:

O que são Design Patterns?

8 de julho de 2010 Deixe um comentário

Achei esse post navegando por ai, dai resolvi transcrever aqui um breve resumo que traduzi do guia em inglês, achei interessante a forma como ele usa para explicar o conceito dos design pattern mais populares, visto que, ultimamente tenho me deparado com situações cada vez mais necessárias de se abordar um pattern.

Padrões de projeto são soluções reutilizáveis para problemas de programação que nos deparamos todos os dias. Um design pattern não é uma classe ou uma biblioteca que pode simplesmente incluir em nosso sistema, é muito mais do que isso. É um modelo que deve ser aplicada na situação correta. Não é específico de uma linguagem também. Um padrão de um bom design deve ser aplicável na maioria, se não todas as linguagens, dependendo dos recursos daquela linguagem. Mais importante ainda, qualquer design pattern pode ser uma faca de dois gumes, se aplicado no lugar errado, pode ser desastroso e criar muitos problemas para você. No entanto, implementado no lugar certo, na hora certa, pode ser o seu salvador.

Existem três tipos básicos de padrões de projeto:

estrutural: padrões geralmente tratam de relacionamentos entre entidades, tornando mais fácil para essas entidades a trabalharem em conjunto;
Criacional: padrões para prever mecanismos instanciação, tornando mais fácil para criar objetos de uma forma que se adequa à situação;
Comportamentais: Esses padrões são usados nas comunicações entre as entidades e torná-la mais fácil e mais flexível para estas entidades para se comunicar;

Da uma olhada lá na referência do Post Original tem muito mais coisas interessantes e está bem explicado de uma forma simples.

Lá ele explica os patterns mais comuns e dá exemplos de implementação utilizando o PHP vale a pena da uma lida: A Beginner’s Guide.

Categorias:Design Partner, php

Jquery Calculator – Plugins

19 de abril de 2010 Deixe um comentário

Hoje um colega precisou disponibilizar em uma de nossas páginas uma calculadora, até então nunca tinha pensado em dispor tal funcionalidade em páginas na web, uma vez que, é um recurso tão trivial dos sistemas operacionais mais comuns, mas sabe como é, manda quem pode obedece quem tem juízo, ele teve que fazer.

Então resolvi pesquisar, para ajudá-lo, algum recurso mais prático e que não tomasse muito o tempo então achei o seguinte plugin da Jquery que resolve isso (fico impressionado com a quantidade de recursos que a jquery disponibiliza e torna mais fácil nossa vida de desenvolvedor).

Página do Projeto: JQUERY CALCULATOR.