06nov

[PHP] – Como foi o PHPnRio11?

FILED IN Eventos | PHP | PHP'n Rio 1 Comentário

Depois de muita espera, finalmente aconteceu o PHPnRio11 e foi um sucesso! Tudo começou com um grupo de programadores de PHP querendo fazer a diferença e, graças a essa galera, o evento desse ano mostrou seu potencial. Foi nítida a evolução dos últimos eventos para esse. Parabéns para os organizadores, aplaudo de pé o evento! Tenho certeza que ano que vem será ainda melhor!

Minha palestra:

Algumas fotos que bati do evento: migre.me/64Uoa

Videos (5 pastes):

, , , , , , , , , ,

12out

PHP´n Rio 11! Vai perder?

FILED IN Notícias | PHP Sem comentários

No próximo dia 05/11/2011 estarei palestrando no PHP´n Rio 11 e você está mais do que convidado! Inscrições abertas!

..o Grupo Local de Usuários de PHP do Rio de Janeiro (PHP Rio) vem organizando, anualmente, desde 2009, o evento chamado de PHP’n Rio. Trata- se de um evento técnico e com um retorno da comunidade magnífico, de forma que contamos sempre com auditório cheio de profissionais e estudantes, que desempenham uma participação excepcional. O PHP’n Rio está sendo apoiado juridicamente pela Associação Libre de Tecnologias Abertas (ALTA).

Não deixe para depois, clique aqui e faça sua inscrição (valor do evento R$30,00)!! Nos vemos lá! =]

Mais informações em www.phpnrio.com.br

, , , , , , , , ,

22set

[Rapidinha] – Objetos Dinâmicos

FILED IN OO | PHP | Rapidinhas Sem comentários

Mais um post da série de rapidinhas! :D

O PHP nos oferece inúmeras possibilidades e conhecer todas elas é fundamental para que você não reinvente a roda. Uma dessas possibilidades é criar objetos dinamicamente, sem possuir uma classe definida. Obviamente que o objeto criado dinamicamente poderá armazenar apenas dados e não funções.  Para criar esse objeto, você precisa informar que o seu objeto dinâmico é da classe StdClass (Standard Class). Veja o exemplo:

$pessoa = new StdClass;
$pessoa->nome = "Fernando";
$pessoa->sexo = "Masculino";
$pessoa->cidade = "Rio de Janeiro";

Resposta: stdClass Object ( [nome] => Fernando [sexo] => Masculino [cidade] => Rio de Janeiro )

Simples assim!

, , , , , ,

19set

[PHP OO] – Encapsulamento

FILED IN OO | PHP 2 Comentários

Obs: Esse post parte do princípio que você tem conhecimentos em PHP e está iniciando em Orientação a Objetos.
Obs2: Antes que alguém queira reclamar, eu usei os gets e sets para mostrar um exemplo simples, muito simples!

O Encapsulamento é um dos recursos mais importantes na Orientação a Objetos. Como sempre, lá vou eu com as minhas definições de dicionário: Encapsular – “Circundar, rodear de uma cápsula… proteger em uma cápsula ou como em uma cápsula…”. Existem três formas de encapsular seus objetos: public (público), protected (protegido) ou private (privado), vamos entender melhor cada um desses tipos.

Public (público): Quando um atributo ou método é definido como public significa que ele pode ser acessado livremente em qualquer lugar da classe ou subclasse. Existem duas formas de você declarar um atributo ou método como público, são elas:

<?php

// Forma 1
class TesteEncapsulamento {
   $teste;
}

// Forma 2
class TesteEncapsulamento {
    public $teste;
}

?>

Apesar da primeira forma estar correta no PHP, eu recomendo e prefiro sempre a utilização da segunda, pois assim você ficará acostumado a sempre declarar a visibilidade de seus Métodos e Atributos.

Protected (protegido): Quando um atributo ou método é definido como protected significa que ele só pode ser acessado de dentro da própria classe ou em suas classes-filha (saiba mais sobre Herança clicando aqui):

<?php

class TesteEncapsulamento {
    protected $teste;
}
?>

Private (privado): Quando um atributo ou método é definido como private significa que ele só pode ser acessado de dentro da própria classe. Sendo assim suas subclasses não podem acessar seus métodos e atributos (saiba mais sobre Herança clicando aqui):

class Funcionario {
   private $nome;

   public function setNome($nome){
      $this->nome = $nome;
   }
   public function getNome(){
      return $this->nome;
   }

 }

Esse post foi quase uma “rapidinha”, simples, rápido e direto. Ficou com alguma dúvida? Mande uma mensagem que prometo responder o mais rápido possível!

Grande abraço!

, , , , ,

17set

[PHP OO] – Herança

FILED IN OO | PHP 3 Comentários

Obs: Esse post parte do princípio que você tem conhecimentos em PHP e está iniciando em Orientação a Objetos.
Obs2: Antes que alguém queira reclamar, eu usei os gets e sets para mostrar um exemplo simples, muito simples!

A reutilização de parte de nossos códigos é fundamental para nos dar uma maior agilidade no desenvolvimento de nossas aplicações. Quando escutamos a palavra HERANÇA logo lembramos de nossos parentes e o que herdamos ao longo dos anos. Em OO a herança tem quase o mesmo significado. No dicionário encontramos a seguinte definição para herança: “Aquilo que se herda por disposição testamentária ou por via de sucessão. Sucessão, exatamente isso que acontece na orientação a objeto (“…acontecimentos que se seguem ou se sucedem em determinada ordem…”). Chega de filosofar e vamos direto ao ponto…

Em orientação a objetos nós utilizamos o compartilhamento de atributos e métodos entre as classes “filhas”. A classe “filha” herda automaticamente todas as características de sua classe mãe. Vamos entender melhor: Imagine uma empresa, um banco por exemplo… Independente do setor ou do cargo ocupado por cada um, todos os contratados são funcionários desse banco e possuem alguns atributos iguais (nome, endereço, telefone, salário etc). Com isso podemos criar uma classe Funcionário e, com base nessas informações, criaremos uma outra classe (Gerência) que irá herdar as informações da classe Funcionário. Veja o exemplo abaixo para entender melhor (Clique aqui para fazer download do exemplo).

<?php
/*
* Classe mãe "Funcionário". Arquivo Funcionario.php
*/
class Funcionario {
   private $nome;
   private $endereco;
   private $telefone;
   private $salario;

   public function setNome($nome){
      $this->nome = $nome;
   }
   public function getNome(){
      return $this->nome;
   }
   public function setEndereco($endereco){
      $this->endereco = $endereco;
   }
   public function getEndereco(){
      return $this->endereco;
   }
   public function setTelefone($telefone){
      $this->telefone = $telefone;
   }
   public function getTelefone(){
      return $this->telefone;
   }
   public function setSalario($salario){
      $this->salario = $salario;
   }
   public function getSalario(){
      return $this->salario;
   }

 }
 ?>
/*
* Classe filha "Gerência". Arquivo Gerencia.php
*/
<?php

require_once "Funcionario.php";

/*
* O extends indica que a classe "Gerência" está herdando as
* caracteristicas da classe "Funcionário".
*/
class Gerencia extends Funcionario {
   private $setor;
   private $bonificacao;

   public function setSetor($setor){
      $this->setor = $setor;
   }
   public function getSetor(){
      return $this->setor;
   }
   public function setBonificacao($bonificacao){
      $this->bonificacao = $bonificacao;
   }
   public function getBonificacao(){
      return $this->bonificacao;
   }

 }
 ?>
/*
* Arquivo de teste ExemploFuncionario.php
*/
<?php

require_once "Gerencia.php";

$exemploFuncionarioGerencia = new Gerencia();
$exemploFuncionarioGerencia->setSetor("Gerência");
$exemploFuncionarioGerencia->setBonificacao("R$100,00");
$exemploFuncionarioGerencia->setNome("Fernando");
$exemploFuncionarioGerencia->setEndereco("Rua dos Bobos, número 0");
$exemploFuncionarioGerencia->setTelefone("9999-8888");
$exemploFuncionarioGerencia->setSalario("R$1.000,00");

print_r($exemploFuncionarioGerencia);

?>
Resposta:

Gerencia Object
(
    [setor:Gerencia:private] => Gerência;
    [bonificacao:Gerencia:private] => R$100,00
    [nome:Funcionario:private] => Fernando
    [endereco:Funcionario:private] => Rua dos Bobos, nœmero 0
    [telefone:Funcionario:private] => 9999-8888
    [salario:Funcionario:private] => R$1.000,00
)

 Veja que no arquivo ExemploFuncionario.php eu pude criar uma instância da classe “Gerência”. Pelo simples fato da classe Gerência estender a classe Funcionário eu pude manipular e “setar” informações referentes a classe Gerência e Funcionário.

No próximo post irei abordar o Encapsulamento. Como diria Didi Mocó… “Aguarde e confie!”

, , , , ,

25abr

[Rapidinhas] – PHP substr

FILED IN PHP | Rapidinhas Sem comentários

A função substr() retorna uma parte desejada da string informada. Eu uso muito essa função quando preciso resgatar uma data no banco mais apresentando apenas o dia, mês e ano sem a hora. Por exemplo:

$dataCompleta = "25/04/2011 10:00:00"; 

/**
* Preciso apresentar apenas a data 25/04/2011.
* 0 é a posição inicial e 10 a posição final.
*/
substr($dataCompleta,0,10);

Simples, rápido e direto!

, , ,

03fev

[CakePHP] – Vamos cozinhar!

FILED IN Framework | PHP Sem comentários

Depois de trabalhar e colaborar com um framework desenvolvido no meu trabalho, resolvi me aventurar nos frameworks de PHP existentes no mercado. Assim como muitos, a primeira opção que vem na cabeça é o Zend Framework, mas depois de olhar, instalar e testar cheguei a uma conclusão… Ele é “parrudo” de mais e não é nem um pouco ágil. Minha próxima opção era o Sinfony PHP e mais uma vez comecei o processo: olhar, instalar e testar… Conclusão, também não gostei muito e não achei prático, mas assim como o Zend, ele é “parrudo” e muito bom. O último da minha lista era o CakePHP, que tem como sua principal característica a agilidade e era exatamente isso que eu precisava! Muito empolgado com o resultado, resolvi me precipitar e escrever esse post de apresentação para quem ainda não conhece o CakePHP.

O que é o CakePHP?

“CakePHP é um framework de desenvolvimento rápido para PHP que fornece uma arquitetura extensível para desenvolvimento, manutenção, e distribuição de aplicações. Usando design patterns conhecidos como MVCORM com convenção sobre o paradigma da configuração, reduz o custo do desenvolvimento e ajuda os desenvolvedores a escreverem menos código.”

Características:

  • Sem Configuração – Inicie a base de dados e deixe a mágica começar
  • Extremamente Simples – Apenas olhe o nome…It’s Cake
  • Comunidade Ativa e Amigável – Participe do canal #cakephp no IRC.
  • Licença Flexível – Distribuído sob licença MIT
  • Clean IP – Cada linha de código foi escrita pela equipe de desenvolvimento do CakePHP
  • Melhores Práticas – covering security, autenticação, and session handling, entre outras características.
  • OO – Se você é programador experiente em OOP ou um iniciante, se sentirá confortável

Sabendo do que se trata, eu recomendo que você entre no www.cakephp.com.br, aprenda com o Cookbook e divirta-se com o Cake TV! Com o passar do tempo vou escrevendo mais sobre o assunto.

Grande abraço!

, , , , , , , , ,

13jan

[Rapidinhas] – str_pad com JavaScript

FILED IN JavaScript | Rapidinhas Sem comentários

Para quem não sabe, o str_pad é uma função do PHP que preenche uma string para um certo tamanho com outra string. Mas eu precisava fazer isso no JavaScript e, depois de alguns minutos rodando a internet, encontrei uma função criada por Kevin van Zonneveld. Olhei, testei e por fim vi que essa função resolveria perfeitamente meu problema. Efetuei alguns ajustes para a minha necessidade, mas estou postando aqui o código em sua versão original.

function str_pad (input, pad_length, pad_string, pad_type) {
    // Returns input string padded on the left or right to specified length with pad_string
    //
    // version: 1009.2513
    // discuss at: http://phpjs.org/functions/str_pad
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // + namespaced by: Michael White (http://getsprink.com)
    // +      input by: Marco van Oort
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: str_pad('Kevin van Zonneveld', 30, '-=', 'STR_PAD_LEFT');
    // *     returns 1: '-=-=-=-=-=-Kevin van Zonneveld'
    // *     example 2: str_pad('Kevin van Zonneveld', 30, '-', 'STR_PAD_BOTH');
    // *     returns 2: '------Kevin van Zonneveld-----'
    var half = '', pad_to_go;

    var str_pad_repeater = function (s, len) {
        var collect = '', i;

        while (collect.length < len) {collect += s;}         collect = collect.substr(0,len);           return collect;     };       input += '';     pad_string = pad_string !== undefined ? pad_string : ' ';          if (pad_type != 'STR_PAD_LEFT' && pad_type != 'STR_PAD_RIGHT' && pad_type != 'STR_PAD_BOTH') { pad_type = 'STR_PAD_RIGHT'; }     if ((pad_to_go = pad_length - input.length) > 0) {
        if (pad_type == 'STR_PAD_LEFT') { input = str_pad_repeater(pad_string, pad_to_go) + input; }
        else if (pad_type == 'STR_PAD_RIGHT') { input = input + str_pad_repeater(pad_string, pad_to_go); }
        else if (pad_type == 'STR_PAD_BOTH') {
            half = str_pad_repeater(pad_string, Math.ceil(pad_to_go/2));
            input = half + input + half;
            input = input.substr(0, pad_length);
        }
    }

    return input;
}

Espero que ajude!
Abraços!

[Fonte: PHPjs.org]

, , , , , , , , ,

12jan

[PHP] – Manipulação de Strings: trim(), ltrim() e rtrim()

FILED IN PHP | Rapidinhas Sem comentários

Saber manipular strings bem e de forma correta, pode te ajudar e muito na construção de um sistema, seja ele em PHP ou não. Fatalmente você irá precisar retirar e tratar parte de uma string, calcular o tamanho de uma palavra etc.

Esse é o primeiro post da série “Manipulação de Strings no PHP” e começo falando sobre três funções simples, são elas: trim(), ltrim() e rtrim(). As três possuem o mesmo objetivo, remover espaços em branco.

- trim(): Retorna uma string com os espaços retirados do início e do final de uma string.

- ltrim(): Retorna a string com os espaços em branco retirados do início de uma str.

- rtrim(): Retorna a string com os espaços em branco retirados do final de uma str.

Ex.: string ltrim ( string $str [, string $charlist ] )

Simples assim!

, , , , , ,

04jan

Índice TIOBE: Dezembro de 2010

FILED IN Notícias Sem comentários

Mais um ano que chega ao fim e o índice TIOBE mostra que o Java segue firme e forte na liderança das 20 linguagens mais utilizadas. Eu acompanhei essa tabela durante boa parte do ano de 2009 e durante 2010 inteiro, onde tive algumas surpresas e certezas. A primeira certeza era que o Objective-C (da Apple) subiria assustadoramente e ajudaria a afundar o ActionScript, que sumiu das 20 linguagens mais utilizadas na web e  fechou 2010 em 37º lugar. A outra certeza seria o crescimento do Python, cheguei a acreditar que ele passaria o PHP, mas isso ainda não aconteceu. Um fato muito curioso que pude notar nesses quase 2 anos acompanhando o índice foi o crescimento e a queda do Ruby que, se não me engano, chegou a estar em quinto ou sexto lugar em 2010, mas hoje encontra-se em queda livre.

Dê uma olhada na tabela e acompanhe o andamento ao longo de 2011, tenho certeza que ainda teremos muitas surpresas. Arrisco dizer que o Python tomará o lugar do PHP e o Objective-C continuada em uma crescente esse ano, ficando entre os primeiros da lista.

Para quem ainda não conhece, o índice TIOBE Programming Community é um indicador da popularidade de linguagens de programação. O índice é atualizado uma vez por mês e suas classificações são baseadas no número de engenheiros qualificados em todo o mundo, cursos e outros fornecedores. Os motores de busca populares Google, MSN, Yahoo, Wikipedia e YouTube também são utilizados para calcular o ranking.

O índice pode ser utilizado para verificar se suas habilidades de programação ainda estão atualizadas ou para tomar uma decisão estratégica sobre qual linguagem de programação deve ser adotada quando começar a construir um novo software.

, , , , , , , , , , , , , , , , , , ,

TOPO