Jaime Neto | desenvolvimento para web


Se você trabalha com WAMP, sabe como é chato toda vez que iniciar o Windows ter que iniciá-lo para que possa usar o Apache e o Mysql. Então, vai uma dica rápida para iniciar esses serviços junto com o Windows, que não é apenas copiar o link de inicialização do WAMP para a pasta “Inicializar” (que nem sempre funciona, ou fica exibindo aquela tela de permissão).

Eis o passo a passo: (mais…)

· ·


Precisei criar um calendário HTML dinâmico, e depois de pesquisar bastante, e achar várias soluções que não resolviam todas as minha necessidades, resolvi criar eu mesmo uma classe para isso. Ou melhor, um View Helper para Zend Framework. Assim, eu poderia usar em vários outros projetos, diante da necessidade. Só que para ele poder realmente ser bem aproveitado, precisaria ser fácil de customizar, tanto visualmente, quanto, com relação à sua funcionalidade.

Pensei então nas possíveis utilizações para uma classe dessas, e decidi que ela precisava: (mais…)

·

jan/12

29

Usando o Kindle Fire no Brasil


Pois é… depois de muito tempo relutando em comprar um tablet, simplesmente por não ver utilidade real em se ter um, finalmente resolvi comprá-lo, e o escolhido foi o Kindle Fire da Amazon. Por quê? Bem… primeiro, porque os produtos da amazon são sempre de grande qualidade, segundo porque eu acho 7″ um tamanho ideal para tablet, terceiro porque o sistema é android, quarto porque o preço é extremamente atraente (199 dólares), quinto porque eu tive a sorte de que uma pessoa conhecida estava vindo dos EUA e poderia trazê-lo pra mim, já que ele não é vendido no Brasil. Acho que já tinha motivos suficientes, né? ^__^

(mais…)

·


Você já se pegou numa situação em que está trabalhando em mais de um computador ao mesmo tempo e fica pra lá e pra cá trocando de teclado e mouse? Aí você pensa “Como seria bom se eu pudesse usar o mesmo teclado e o mesmo mouse para essas máquinas”. Pois isso é possivel, utilizando o software chamado Synergy. E o melhor, você pode compartilhar entre máquinas com sistemas operacionais diferentes, por exemplo, uma máquina com Windows, outra com Ubuntu e um Mac, todos usando os mesmos teclado e mouse.

Então vamos lá. Vamos ver como fazer pra utilizar o Synergy. (mais…)

· · ·


Não é muito raro vermos em alguns sites, principalmente no rodapé, a informação do tempo decorrido para exibir uma página. E nos sites em PHP, geralmente é usado a função microtime para calcular esse tempo, chamando-a antes e depois do trecho de código que queremos calcular o tempo de execução, e depois subtraindo o primeiro do último.

Isso é muito útil, principalmente para trabalharmos na melhora da performance do código. Foi daí que me deu a idéia de criar um plugin para Zend Framework para facilitar o uso dessa função, e eis o resultado: (mais…)

· · ·


Já por várias vezes trabalhando em sites, tive a necessidade de converter strings para um formato sem acentos, cedilha, espaços, caracteres especiais, ou letras maiúsculas. Seja pra renomear um arquivo, renomear o título de uma notícia para a url ou criar um alias para um nome de usuário, a idéia é sempre a mesma, ou no mínimo muito semelhante. Isso é chamado transliteração, ou mais comumente, em inglês transliteration.

Procurando na internet achei várias expressões regulares que fazem o trabalho, mas nenhuma dela tinha tudo que eu queria, então resolvi fazer uma classe seguindo o modelo de classes do Zend Framework, e acabei fazendo duas: uma de filtro, e um view helper, que usa o filtro. (mais…)

· · ·


Uma das coisas chatas em se usar o Zend_Db_Table é quando você precisa de informações que se encontram em tabelas associadas à tabela que você está usando. Para isso, o Zend_Db_Table oferece a opção de você configurar a variável $_referenceMap para definir os relacionamentos entre as tabelas, e usar métodos como findDependentRowset(), ou algo do tipo find<tableclass>By<rule>(), que são na verdade métodos de Zend_Db_Table_Row (Saber mais).

A utilização desses métodos pode ser boa no caso de poucos dados, mas se você estiver querendo pegar as informações completas das tabelas associadas de uma lista muito grande de registros, a quantidade de acessos ao banco para pegar essas informações vai ser proporcional à quantidade registros. Veja o seguinte cenário como exemplo: (mais…)

·


Tá… o Zend_Db_Table já me dá métodos pra inserir, alterar, excluir e fazer busca de registros. Mas… e se eu só quiser saber quantos registros tenho na tabela? Ele não tem por padrão um método para me dizer isso. Eu precisaria fazer um fetchAll() e depois um count() no resultado, ou montar uma query pra me devolver esse resultado, ou passar como parâmetro no bind uma string 'COUNT(*)'… Mas tudo isso parece pouco prático, quando poderíamos ter um método count() pra fazer isso pra nós…

Então é isso que fiz… Implementei na minha classe My_Db_Table_Abstract a interface Coutable, que ficou dessa forma: (mais…)

·


Continuando as melhorias na utilização da Zend_Db_Table, do Zend Framework. Outra melhoria a ser feita é nos métodos update() e delete(). O que há de comum entre esses dois métodos é que ambos recebem como parâmetro uma ou mais restrições para identificar em que registro a alteração ou exclusão será feita. Sendo que a grande maioria das vezes que você usa esses métodos, o registro é relativo à chave primária da tabela, e mais raramente à alguma outra coluna. Como no exemplo: (mais…)

·


Faz muito tempo que não posto nada no blog, então resolvi começar a compartilhar algumas soluções que venho desenvolvendo para Zend Framework, que pode ser útil pra muita gente que o utiliza.

Uma das grandes críticas que vejo sobre o ZF é o uso do Zend_Db_Table, por diversos motivos, então, para começar vou postar algumas soluções que venho desenvolvendo para facilitar meu trabalho no uso dessa abstração de banco de dados.

Para começar, uma das coisas que me aborrecia sempre que ia dar um insert ou update na tabela, era quando eu passava os dados do formulário para um desses métodos, e o ZF me jogava uma excessão dizendo que não existe uma coluna de nome tal, que foi passada no array de dados. Pra deixar mais claro, vamos pegar o seguinte cenário: (mais…)

·

<< Latest posts

Older posts >>

Theme Design by devolux.nh2.me