Archive for the 'cakephp' Category

Chamada de Trabalhos PHPSC Conf 2.0/2009 – Univali, Itajaí

O Grupo de Usuários de PHP do Estado de Santa Catarina está promovendo o evento em Itajaí – litoral do estado – em parceria com a Univali durante a Semana da Computação, nos dias 29 e 30 de Maio de 2009. E no dia 31 de Maio, no mesmo local, será realizado o primeiro TestFest de PHP de Santa Catarina.

Para tanto, faz a chamada de trabalhos a palestrantes interessados em participar do evento, que deverão enviar suas propostas até o dia 30/04/2008. Os trabalhos deverão se encaixar em uma das duas categorias disponíveis para o evento: mini-cursos ou palestras. Se a proposta enviada for uma palestra, esta deverá ter duração de no mínimo 1 hora e no máximo 1h30. Se mini-curso, duração mínima de 3h30 e máxima 4h.

Os assuntos para o evento deste ano foram expandidos, contemplando as seguintes áreas:

- PHP (Frameworks, melhores práticas de desenvolvimento (OO, uso do PHPUnit etc), PHP básico, IDEs para PHP, Banco de Dados e PHP entre outros assuntos);
- Cases de empresas que usaram PHP como solução tecnológica;
- Desenvolvimento ágil Scrum, XP e outras metodologias co-relacionadas;
- Rich Internet (RIA), Jquery, Prototype, Flex, Javascript, CSS;
- Iniciando no desenvolvimento Web (assuntos que envolvam PHP, JavaScript, Design e por onde começar);
- Integração de PHP com outras plataformas e linguagens;
- Como contribuir com a comunidade e como ajudar a corrigir e melhorar o PHP;

Caso a sua proposta se encaixe em um dos temas relatados envie as seguintes informações.

A seguir modelo de proposta a ser enviado:

Nome do palestrante: Fulano
Título da palestra: PHP e Oracle
Nível: Intermediário
Resumo da palestra: A palestra tem como objetivo demonstrar a utilização do banco de dados Oracle com a linguagem PHP. Também será demonstrado dicas de performance específicas na utilizaçãodeste banco. Adicionalmente serão apresentada as novidades que foram adicionadas ao Oracle 11g e como estas novidades afetam o PHP.
Minicurriculo do palestrante: Fulano possui graduação em Ciência de Computação pela universidade X e especialização em Ciência da Computação pela Y. Atualmente é Analista de Sistemas da empresa W e Professor da faculdade Z, ministrando disciplinas de Programação, Segurança, Sistemas Distribuídos, entre outras.
Categoria: Palestra
Duração: 1:15
Currículo: Contendo informações adicionais e se já palestrou em algum evento do gênero.

As propostas devem ser enviadas para conf @ phpsc.com.br.

Maiores informações serão divulgadas durante o[s] meses de Abril/Maio no site do grupo e na lista do Yahoo http://br.groups.yahoo.com/group/php-santacatarina

Reportagem sobre CakePHP

Foi publicada na segunda edição da revista TIdigital uma reportagem sobre o framework CakePHP.

Foi feita uma entrevista com um dos criadores do framework, John David Anderson e profissionais brasileiros que usam a ferramenta: Jhony Maiki Maseto, Tulio Vitor Machado Faria, Oberaldo Büll Junior, João José Carvalho Pedrini e eu.

O PDF da reportagem está disponível neste link

Lock em arquivos usando SVN e Subclipse

Outra novidade para mim ao usar o Subversion foi o controle de Locks. 

Eu sempre usei o CVS integrado ao Eclipse para gerenciar os projetos que eu trabalhava e com essa duplinha é bem fácil configurar para evitar que dois programadores alterem o mesmo arquivo.

Com o Subversion e o Eclipse (usando o plugin Subclipse) eu não encontrei essa opção. A solução que encontrei foi configurar o cliente do subversion para quando criar novos arquivos marcá-los com um flag. Este flag indica que, para editar o arquivo é preciso que seja feito o “lock” antes. No momento de criar o lock o Subclipse também verifica a versão do arquivo e avisa caso a versão local seja inferior a que consta no repositório. Desta forma eu garanto que o programador sempre tenha a última versão do arquivo e evito que duas pessoas alterem o mesmo arquivo ao mesmo tempo. Existem formas de corrigir isso usando práticas de merge, mas eu acho mais fácil evitar o problema do que resolvê-lo :-)

O que eu fiz foi alterar o arquivo config no diretório do usuário:

mate ~/.subversion/config

Eu estou usando o Textmate no MacOSX. Mas o mesmo passo vai funcionar no Linux. No Windows XP o arquivo encontra-se no diretório

c:\Documents and Settings\usuario\Dados de Aplicativos\Subversion\config

Neste arquivo eu alterei 

# enable-auto-props = yes

para

enable-auto-props = yes

E adicionei alinha abaixo na seção  [auto-props]

* = svn:needs-lock

Desta forma, assim que o programador criar um novo arquivo e realizar o primeiro commit é adicionada esta flag ao arquivo. Todos que forem alterá-lo vão passar pela fase “lock-edit-commit”, com um “update” caso seja necessário.

Promoção de aniversário do site

No dia 04/09/2008 fazem 5 anos que criei este site!

Nestes 5 anos foram 245 posts (246 contando com este), 576 comentários, vários novos amigos e grande conhecimento adquirido.  Realmente foi uma das melhores  práticas profissionais e pessoais que já fiz.

Para comemorar e agradecer aos leitores eu vou sortear duas cópias do meu livro Frameworks para Desenvolvimento em PHP. Autografados e enviados pelo correio. Lembre-se que minha assinatura e mais 15 reais valem uma cerveja em qualquer Night Club do país!!

Para participar é só deixar um comentário nesse post, com nome e e-mail corretos. O sorteio vai ser feito pelo meu pequeno e humilde script para sortear alunos azarados no dia 08/09/2008

Boa sorte e obrigado por ler meu site

Dicas de performance para scripts PHP

Excelente artigo com dicas de performance para scripts em PHP.

Vale a leitura

Criando uma pseudo-coluna no CakePHP

Estou desenvolvendo um sistema grande usando o framework CakePHP e surgiu uma necessidade. Precisava criar uma pseudo-coluna com o resultado do cálculo de outras duas. Seguindo o conceito de MVC, achei mais interessante fazer este cálculo no Model para poder usar em todos os programas que utiizam aquela tabela. 

Para ilustrar isto montei um exemplo. Criei a seguinte tabela:

  1. CREATE TABLE IF NOT EXISTS `clientes` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `nome` varchar(100) NOT NULL,
  4.   `sobrenome` varchar(100) NOT NULL,
  5.   PRIMARY KEY  (`id`)
  6. ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

O Model da tabela ficou da seguinte forma:

  1. class Cliente extends AppModel {
  2.  
  3.   var $name = 'Cliente';
  4.   var $validate = array(
  5.   'id' => VALID_NOT_EMPTY,
  6.   'nome' => VALID_NOT_EMPTY,
  7.   'sobrenome' => VALID_NOT_EMPTY,
  8.   );
  9.  
  10.   /*
  11.   funcao que é executada toda vez que é realizado uma consulta na tabela  
  12.   esta funcao adiciona o nome completo do cliente ao resultado como uma pseudo-coluna.
  13.   idéia tirada de http://www.paulherron.net/articles/view/cakephp_afterfind_psuedofield
  14.   */
  15.   function afterFind($results) {
  16.      if(isset($results['0']['Cliente'])) {
  17.        foreach ($results as $key => $val) {
  18.          $results[$key]['Cliente']['nome_completo'] = $results[$key]['Cliente']['nome']  . $results[$key]['Cliente']['sobrenome'] ;
  19.        }
  20.     }
  21.    return $results;
  22.   }
  23. }

E na visão eu simplesmente imprimo a pseudo-coluna: 

echo $cliente['Cliente']['nome_completo'];

Simples assim.