Pelo o que vejo no analytics, percebo que o público chega até meus posts através dos buscadores que relacionam os posts a necessidade em questão. O público (vocês) vêm em maioria buscando a solução rápida para bugs ou um tutorial rápido sobre ajax com php e etc. Quando criei o blog não tinha o objetivo de oferecer orientação mais profunda sobre assuntos como tutoriais e demais. Meus relatos são todos referênciados ao meu cotidiano de desenvolvimento. Então, em muitos casos, não atendo a necessidade do leitor.
Mas como vi que cada vez mais pessoas estão "caindo" no blog, não custa nada dividir um pouco de conhecimento.
Comecei na área de desenvolvimento com o interesse em Flash. Depois desenvolvi com CSS e iniciei o aprendizado por conta própria sobre PHP e demais.
Muitas vezes bati a cabeça com bobeiras. No post anterior relatei exatamente a importância de possuir alguns conhecimentos técnicos e se preocupar em ler manuais e etc.
Muita gente que está iniciando o uso de CakePHP não possui conhecimento sobre Padrões de Software, GRASP. Não sabem o que é MVC, BCE. Muitos termos técnicos são lidos como uma palavra desconhecida, e não buscamos saber seu significado assim quando lemos um livro e não buscamos as palavras desconhecidas no dicionário. O que esquecemos é que esses pequenos detalhes podem nos travar no desenvolvimento e nos causar um sentimento de frustração.
Nos vídeos do Túlio Faria, ele ensina bem do início como usar o CakePHP. Ele diz como funciona a aplicação com seus Controllers e Models, onde cada arquivo deve ficar e etc. A questão é que não nos passa pela cabeça que Controller, Model entre outros estão relacionados a padrões. Decorrente disso vemos nos fóruns perguntas como "Devo ter um model/controller para cada página do site?".
Por desconhecer padrões, não enxergamos o que fazemos como uma aplicação, não enxergamos as camadas de desenvolvimento. O que ocorre é que o trabalho é executado com a visão de que se está construindo um site, a mesma visão que temos quando montamos um site estático ou sem padrões.
sábado, 28 de março de 2009
Outras reflexões sobre aprofundar conhecimentos
Marcadores:
CakePHP,
GRASP,
MVC,
padrões de software,
php
quinta-feira, 5 de fevereiro de 2009
CakePHP - utilizando o saveField()
O método saveField() atualiza um campo específico em seu banco de dados.
$this->Model->saveField('Campo',$valor);
É importante identificar o model antes de usar este método caso contrário um novo registro será criado.
$this->Model->id = $id;
$this->Model->saveField('Campo',$valor);
É importante identificar o model antes de usar este método caso contrário um novo registro será criado.
$this->Model->id = $id;
segunda-feira, 2 de fevereiro de 2009
CakePHP - Não esqueça do setFlash ao configurar seu layout.
Caso tenha mudado o layout de sua aplicação e notou que as mensagens de erro e avisos retornados pelo setFlash não estão mais aparecendo na tela, você provavelmente removeu a verificação do setFlash em seu view acidentalmente.
if ($session->check('Message.flash')) {
$session->flash();
}
?>
terça-feira, 20 de janeiro de 2009
Acentuação CakePHP : Encoding
O CakePHP 1.2 utiliza o UTF-8. No início podemos nos deparar com alguns problemas referentes a acentuação.
Buscando entender um pouco isso fiz algumas buscas na internet (google) e segui algumas recomendações simples.
Atualmente, pelo que constatamos em muitos blogs e nas conversas entre desenvolvedores, o UTF-8 está com a preferência de uso.
Aqui vai uma boa dica : http://cakephp.afons.us/?tag=encoding
Uma referência para leitura: http://pt.wikipedia.org/wiki/UTF-8
Um post sobre Charsets e Encodes: http://www.tableless.com.br/charsets-e-encodes-tabelas-de-caracteres
Buscando entender um pouco isso fiz algumas buscas na internet (google) e segui algumas recomendações simples.
- Sempre ficar atento ao encoding do Banco de Dados;
- Configurar o enconding no arquivo database.php do Cake;
- Certificar o encoding utilizado em suas páginas;
Atualmente, pelo que constatamos em muitos blogs e nas conversas entre desenvolvedores, o UTF-8 está com a preferência de uso.
Aqui vai uma boa dica : http://cakephp.afons.us/?tag=encoding
Uma referência para leitura: http://pt.wikipedia.org/wiki/UTF-8
Um post sobre Charsets e Encodes: http://www.tableless.com.br/charsets-e-encodes-tabelas-de-caracteres
domingo, 11 de janeiro de 2009
Páginas internas dinâmicas com CakePHP
Bem, andei um pouco afastada do blog por que entrei de férias e comecei a colocar alguns detalhes pessoais em ordem.
Mas o assunto deste post não são as minhas férias. Vamos ao que realmente importa.
Em algum momento do seu aprendizado sobre o CakePHP você se pergunta : "Como faço para criar páginas internas?".
Algumas respostas e sugestões aparecem : "Será que devo criar um controller para cada página interna?".Para esta primeira dedução você logo vai encontrar a resposta. Não, você não precisa criar um controller para cada página. (Easily creating static pages)
Lá na pasta "views" dentro de sua aplicação(app) você vai encontrar um diretório "pages". Todas as páginas internas do seu site ficarão armazenadas ali, ou seja, simples arquivos .CTP. Nada de controllers.
Perfeito. Agora seu site possui páginas internas tais como : "Quem somos", "Contato", etc.
Mas e se em algum momento formos questionados por nossos clientes : "Será que posso alterar o quem somos?". Bem, neste caso nossas páginas internas estão estáticas. Precisamos tornar esse conteúdo dinâmico.
Busquei um pouco na internet uma maneira de resolver essa questão.
Confesso que antes de qualquer coisa fiquei quebrando a cuca tentando resolver sozinha, depois de tentar as saídas que achei possíveis recorri aos resultados do Google. A busca retornou o que estava precisando (



Managing simple pages in cakephp).
Com uma simples adaptação do código para a última versão do Cake consegui adotar o CRUD para minhas páginas internas usando o Pages_Controller do próprio Cake sem afetar os demais controllers.
Essa é a dica que tenho para quem precisa dessa adaptação; um ótimo 2009 para todos.
Mas o assunto deste post não são as minhas férias. Vamos ao que realmente importa.
Em algum momento do seu aprendizado sobre o CakePHP você se pergunta : "Como faço para criar páginas internas?".
Algumas respostas e sugestões aparecem : "Será que devo criar um controller para cada página interna?".Para esta primeira dedução você logo vai encontrar a resposta. Não, você não precisa criar um controller para cada página. (Easily creating static pages)
Lá na pasta "views" dentro de sua aplicação(app) você vai encontrar um diretório "pages". Todas as páginas internas do seu site ficarão armazenadas ali, ou seja, simples arquivos .CTP. Nada de controllers.
Perfeito. Agora seu site possui páginas internas tais como : "Quem somos", "Contato", etc.
Mas e se em algum momento formos questionados por nossos clientes : "Será que posso alterar o quem somos?". Bem, neste caso nossas páginas internas estão estáticas. Precisamos tornar esse conteúdo dinâmico.
Busquei um pouco na internet uma maneira de resolver essa questão.
Confesso que antes de qualquer coisa fiquei quebrando a cuca tentando resolver sozinha, depois de tentar as saídas que achei possíveis recorri aos resultados do Google. A busca retornou o que estava precisando (




Managing simple pages in cakephp).Com uma simples adaptação do código para a última versão do Cake consegui adotar o CRUD para minhas páginas internas usando o Pages_Controller do próprio Cake sem afetar os demais controllers.
Essa é a dica que tenho para quem precisa dessa adaptação; um ótimo 2009 para todos.
sexta-feira, 26 de dezembro de 2008
CakePHP - Array Functions
Array : Algumas propriedades
Depois de notar o quanto o uso do compact se tornou freqüente nos meus scripts, resolvi listar algumas funções que julguei úteis. Algumas talvez não apresentem um uso agora.
Exemplos em php.net
array_combine
Cria um novo array a partir de dois já existentes. Usando os valores do primeiro como as chaves e os parâmetros do segundo como os valores.
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);
Array
(
[green] => avocado
[red] => apple
[yellow] => banana
)
array_chunk
Divide um array em pequenas partes. Separe os dados como se fossem uma lista ou até mesmo monte calendários.
$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
Na tela ( valores do array resgatados de 2 em 2) :
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
)
)
array_diff
Retorna os valores de array1 que não constam em um array2.
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);
Na tela ( os valores de array1 ) :
Array
(
[1] => blue
)
Agora fico devendo algumas brincadeiras com o Cake. Senão esse post fica sem propósito.
Depois de notar o quanto o uso do compact se tornou freqüente nos meus scripts, resolvi listar algumas funções que julguei úteis. Algumas talvez não apresentem um uso agora.
Exemplos em php.net
array_combine
Cria um novo array a partir de dois já existentes. Usando os valores do primeiro como as chaves e os parâmetros do segundo como os valores.
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);
Na tela:Array
(
[green] => avocado
[red] => apple
[yellow] => banana
)
array_chunk
Divide um array em pequenas partes. Separe os dados como se fossem uma lista ou até mesmo monte calendários.
$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
Na tela ( valores do array resgatados de 2 em 2) :
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
)
)
array_diff
Retorna os valores de array1 que não constam em um array2.
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);
Na tela ( os valores de array1 ) :
Array
(
[1] => blue
)
Agora fico devendo algumas brincadeiras com o Cake. Senão esse post fica sem propósito.
Framework
Framework : eficiente e produtivo.
Enquanto estudava Modelagem, recebia o feedback de um bate-papo sobre a real necessidade do uso de frameworks.
A questão era a seguinte:" Necessito de um framework se faço um bom código?"
Junto a questão veio um comentário : "Levo menos tempo preparando meus estilos do que me preparando para usar um framework css".
Concluímos que pessoas com mais experiência com a linguagem não sentem necessidade do uso de um framework.
Mas é indiscutível as vantagens que o mesmo pode nos oferecer. Não duvido que um bom programador munido de um bom framework não se torne um indivíduo muito mais produtivo e que a qualidade de seu serviço seja muito maior do que qualquer outro que use o mesmo framework mas possua conhecimentos básicos em programação.
Também devemos entender que o propósito do framework é nos tornar eficientes e produtivos, aumentando a qualidade do nosso serviço e nos dispondo de mais tempo para nos concentrar na abstração dos problemas e no trato das soluções.
Bom código necessita de um framework?
Analise quando realmente é necessário o uso do framework.
Existem diversos tipos de frameworks para várias linguagens..até para CSS. Analise se precisa de um.
Hoje não vivo sem o CakePHP, até para os projetos mais simples.
Meu propósito não é facilitar o aprendizado em relação a linguagem, e sim manter a estrutura do meu sistema o mais sólida possível.
A importância de conhecer a linguagem
Framework é bom mas não dispenso a linguagem em seu estado mais "puro".
A importância de saber bem com o que se trabalha é o fator que nos diferencia entre bons e ótimos profissionais.
Enquanto estudava Modelagem, recebia o feedback de um bate-papo sobre a real necessidade do uso de frameworks.
A questão era a seguinte:" Necessito de um framework se faço um bom código?"
Junto a questão veio um comentário : "Levo menos tempo preparando meus estilos do que me preparando para usar um framework css".
Concluímos que pessoas com mais experiência com a linguagem não sentem necessidade do uso de um framework.
Mas é indiscutível as vantagens que o mesmo pode nos oferecer. Não duvido que um bom programador munido de um bom framework não se torne um indivíduo muito mais produtivo e que a qualidade de seu serviço seja muito maior do que qualquer outro que use o mesmo framework mas possua conhecimentos básicos em programação.
Também devemos entender que o propósito do framework é nos tornar eficientes e produtivos, aumentando a qualidade do nosso serviço e nos dispondo de mais tempo para nos concentrar na abstração dos problemas e no trato das soluções.
Bom código necessita de um framework?
Analise quando realmente é necessário o uso do framework.
Existem diversos tipos de frameworks para várias linguagens..até para CSS. Analise se precisa de um.
Hoje não vivo sem o CakePHP, até para os projetos mais simples.
Meu propósito não é facilitar o aprendizado em relação a linguagem, e sim manter a estrutura do meu sistema o mais sólida possível.
A importância de conhecer a linguagem
Framework é bom mas não dispenso a linguagem em seu estado mais "puro".
A importância de saber bem com o que se trabalha é o fator que nos diferencia entre bons e ótimos profissionais.
Assinar:
Postagens (Atom)
