Artigo postado originalmente em http://blog.testsoh.com.br/2010/11/configuracao-cakephp-console/
Para usar o bake e outras funcionalidades que o cakephp oferece no terminal basta adicionar o diretório cake/console na variável PATH. Caso esse diretório não esteja listado no PATH, o comando cake não será reconhecido. No ubuntu 10.10, por exemplo, o terminal sugere a instalação do pacote cakephp-scripts com um sudo apt-get install cakephp-scripts, método que talvez não seja o mais recomendável pois ele pode instalar versões antigas do cake. Já aconteceu comigo dele instalar a versão 1.2.8 quando eu queria trabalhar com o cake 1.3.*.
Para checar os diretórios incluídos na váriavel PATH basta dar um echo nessa váriavel no terminal:
echo $PATH
Para quem trabalha com cake acho extremamente recomendável manter um repositório git do cakephp na raiz do seu servidor. Para clonar o repositório do cakephp no github, onde está o repositório oficial do cake, navegue até a raiz do seu servidor pelo terminal, no meu caso cd /var/www , e dê o comando (lembre-se que para isso você precisa ter o git instalado, nesse post há uma breve introdução sobre esse software):
git clone git://github.com/cakephp/cakephp.git
Esse comando irá criar a pasta cakephp na raiz do seu servidor. Caso queira depois atualizar a versão navegue pelo terminal até a pasta cakephp pelo terminal e execute o pull:
git pull origin
Agora que você possui um diretório com uma versão atualizada e estável do cakephp basta adicionar o caminho /var/www/cakephp/cake/console na variável PATH. Para isso dê o comando:
export PATH=$PATH:/var/www/cakephp/cake/console
Com isso você pode usar o comando cake apenas no terminal onde você executou o comando. Se abrir outro, por exemplo, o console do cakephp não funcionará. Pra tornar o comando cake disponível sempre que iniciar um terminal você precisa adicionar o comando acima no final do arquivo .profile localizado na raiz da sua pasta de usuário, /home/seuusuario/.profile. Se quiser que o comando esteja disponível pra todos os usuários na máquina adicione o comando acima no final do arquivo /etc/profile .
Após adicionar essa linha, export PATH=$PATH:/var/www/cakephp/cake/console, abra um terminal, reinicie o seu profile e dê um echo na variável PATH. O comando cake também estará disponível após deslogar e logar novamente no sistema.
# pra reiniciar o seu profile
. .profile
# imprimir os diretórios que estão na variável PATH
echo $PATH
No meio de uma conversa com um amigo, halan, sobre quanto o ruby pode ser mais eficiente que o php conheci esse software chamado git! O assunto mudou quando ele começou a perguntar se eu usava algum versionador. Não conhecia isso, não fazia idéia do que ele tava falando. Depois de algumas explicações e mais algumas linhas de código comecei a entender e percebi que sempre precisei desse software. Vantagens que já vejo nesse primeiro dia de uso: Ao código! (Comandos executados em um terminal linux na distribuição ubuntu) Pra instalar o git no terminal faça: Após instalado vá até até o diretório da sua aplicação via terminal, por exemplo: Para iniciar o git nessa app digite: Comando para configurar seus nome e email no git (info que aparecerá nos commits) Esse dará cor aos resultados gerados pelo git no terminal: Para adicionar os arquivos do seu projeto ao git e então fazer o primeiro commit (lembre-se que você deve estar no diretório da sua aplicação, essa linha adicionará todos os arquivos e diretórios dentro do diretório atual ): Agora você já é capaz de fazer seu primeito commit: Ao digitar: você deve ver seu commit, com seu nome, email, data de criação e número. Com o comando: o git informará os arquivos modificados desde seu último commit. Se digitar: o git ainda lhe dirá quais linhas em quais arquivos foram modificadas. Sempre que fizer qualquer modificação na app você pode voltar ao terminal e commitar essa ação. Dessa forma você manterá um histórico do que está sendo feito no projeto. Para voltar facilmente a qualquer ponto da aplicação basta dar o comando: Com a linha abaixo você desfaz tudo que foi feito desde o último commit Aqui o tutorial da documentação oficial do git pra quem está começando: http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html
sudo apt-get install git-core
cd /var/www/suaaplicacao
git init
git config --global user.name 'seunome'
git config --global user.email 'seuemail'
git config --global color.ui 'always'
git add .
git commit -m 'initial commit'
git log
git status
git diff
# esse comando adiciona os arquivos modificados ao index do git e realiza o commit
git commit -a -m 'mudanca em tal funcao'
git checkout 'numero do commit'
git checkout .
Artigo publicado originalmente em http://blog.testsoh.com.br/2010/10/primeiros-passos-git-fast-version-control-system/
Há uma função no core do framework que nos dá a chance de parar e /ou debugar a aplicação no momento da perda de uma seção autenticada. O que pode ser muito útil para descobrirmos realmente o que aconteceu. No app_controller basta colocar:
if ( $this->Session->error() ){
echo $this->Session->error();
exit;
}
Ao ver a resposta
Session Highjacking Attempted !!!
não quer dizer exatamentente que tentaram sequestrar sua seção. Essa frase aparece caso uma das seguintes condições <strong>não</strong> sejam verdadeiras
# condição definida na function _checkValid do arquivo cake_session.php
(Configure::read('Session.checkAgent') === false || $this->_userAgent == $this->read('Config.userAgent'))
&& $this->time <= $this->read('Config.time')
ou seja, se o tempo estimado da sua seção tiver acabado o cake ainda o alertará com 'Session Highjacking Attempted !!!', mesmo que o User Agent seja o mesmo durante as requisições. Para que o cake imprima essa mensagem apenas se o User Agent realmente for diferente basta você colocar uma condição para que esse erro seja setado dentro da mesma <em>function</em> _checkValid.
# condição deve ir depois dessas duas ações
$this->destroy();
$this->valid = false;
if(Configure::read('Session.checkAgent') === true && $this->_userAgent != $this->read('Config.userAgent')){
$this->__setError(1, 'Session Highjacking Attempted !!!');
}
A seção ainda será perdida, se o tempo estimado pra ela houver expirado, mas o alerta só será mostrado se você tiver configurado o checkAgent como <em>true</em> no arquivo core.php e se o User Agent for diferente entre as requisições.
Artigo postado originalmente em http://blog.testsoh.com.br/2010/10/debugar-perda-de-secao-cakephp/
Passar os parâmetros numa requisição ajax (jquery) como objetos para se livrar de erros no IE e não enviar variáveis não definidas.
Ao atualizar da versão 10.04 pra 10.10 o ubuntu não reconheceu mais a resolução que eu usava, 1440x900. Quando reiniciei a máquina já com a versão 10.10 a tela de login estava em 1024x768. Na janela de configuração do monitor também não havia a opção pra 1440x900. Procurei a forma de colocar essa resolução manualmente e a encontrei nesse manual da wiki ubuntu.
Segue os passos que fiz pra conseguir setar minha resolução novamente pra 1440x900, pelo terminal:
Criar uma modeline pra sua resolução não encontrada na janela de configurações do monitor
$ cvt 1440 900 # 1440x900 59.89 Hz (CVT 1.30MA) hsync: 55.93 kHz; pclk: 106.50 MHz Modeline "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
Copie a modeline criada e cole no próximo comando pra setar a nova resolução
$ xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
Depois é só adicionar o novo modo criado. Esse comando automaticamente muda a resolução do seu monitor
$ xrandr --addmode VGA1 1440x900_60.00
OBS: Seu video pode não ser VGA1. Para ter certeza dê o comando abaixo e veja qual tipo de video esta conectado no seu hardware:
$ xrandr
Agora você precisa setar essas configurações permanentemente, caso contrário você terá que repetir os comandos acima toda vez que logar. Abra o arquivo /etc/gdm/Init/Default como root
$ sudo gedit /etc/gdm/Init/Default
Adicione essas duas linha antes de /sbin/initctl -q emit login-session-start DISPLAY_MANAGER=gdm
xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync xrandr --addmode VGA1 1440x900_60.00
E é isso. Ao reiniciar o computador sua tela voltará a configuração original já na tela de login para todos os usuários do pc.
Artigo originalmente postado em blog.testsoh.com.br