-Minha maneira de montar os tutoriais
Estarei falando muitas vezes sobre os possiveis erros que poderam ocorrer durante o seu aprendizado com o cake, portanto as vezes estarei o obrigando a testar o codigo para ver o erro e assim aprender com ele.
-O que é preciso para entender os tutoriais?
- Noção em php.
- Ter o apache instalado em seu servidor.
- Mysql instalado em seu servidor.
- Noção em html
Cake é baseado no ruby on rails, que é um framework do ruby muito poderoso também, se quiserem saber um pouco mais sobre ele http://www.rubyonrails.org/. O cake permite o desenvolvedor do php economizar linhas e linhas de codigos, um exemplo seria acessar o banco de dados de etc sem ao menos escrever NENHUM SELECT, isso graças a maneira dele de utilizar o ORM(Object-relational mapping), quem quiser saber mais sobre ORM acesse o site http://en.wikipedia.org/wiki/Object-relational_mapping.
-Qual cake será utilizado nos tutoriais?
Existe a versão estavel do cake que é a 1.1, mas já existe a versão 1.2 RC2 no momento em que crio esse tutorial que logo se tornara versão estavel, então estarei ensinando a utilizar o cake 1.2.
-Configurando o apache antes de ultizar o cake
--Habilitar Module Rewrite
Primeiramente abre o seu apache e nos arquivos de configurações procure por httpd.conf, abra no seu editor de texto favorito procure por "#LoadModule rewrite_module modules/mod_rewrite.so", esse "#" no arquivo significa que a linha esta comentada apenas retire o "#", salve o seu httpd.conf e reinicie o apache(por padrao do apache o Rewrite vem desabilitado se em seu httpd.conf não está com o "#" ignore essa parte do tutorial). Pronto seu apache está pronto para utilizar o cake.
-Baixando o cake.
Entre no site do cake http://www.cakephp.org/downloads e procure por "1.2.0.7296 RC2 (June 27, 2008)" que é a versão mais nova quando criei esse tutorial, clique e baixe com a extensão que quiser, eu utilizei a .zip, mas quem utiliza linux pode baixar o tar.bz2 e etc. Se quiser doar alguns dólares para o cake clique em "Any Donate", se quiser doar 1 dólar "Donate $1", se não quiser doar nada clique em "No thanks". A partir disso clique em "Download Latest Release" e salve o arquivo onde desejar.
-Instalando o cake.
Após baixar o cake, abre o arquivo .zip, você verá uma pasta com o nome da versão do cake, extraia essa pasta no seu apache e renomeio a pasta com o nome da versão para aula. Após isso entre em http://localhost/aula e verá algo semelhante com a imagem abaixo:

-Hora de começar a cozinhar.
Bom padeiros(expressão muito utilizada para pessoas que usam o cake hehe), existe duas pastas importantes no seu diretorio aula, app e cake. Na pasta app ficara todos os seus projetos como Models, Views e Controllers, MVC, (sim o cake utiliza o MVC, explicarei o que é ao longo do tutorial, mas que quiser já ir vendo http://pt.wikipedia.org/wiki/MVC), que explicarei ao longo do tutorial o que é o MVC.Chega de bla bla bla e vamos lá:abra o seu editor de php preferido e
crie um novo projeto em php e e salva na pasta /app/controllers o arquivo "aulas_controller".
Vamos anotar?
O cake utiliza o metodo CamelCased, uau Matheus e o que é isso? Seguinte todo controller tem que ser PLURAL e todo Model SINGULAR, nossa Matheus, i dai? I dai que exemplo: Nosso tabela no banco de dados tem que ser no plural, vamos nomiar um exemplo como "Aulas", nosso model será "Aula" e o Controller Aulas fazendo assim uma ligação Model, Controller.
Em nosso arquivo "aulas_controller.php" vamos adicionar o seguinte codigo:
class AulasController extends AppController {
var $name = "Aulas";
var $uses = array();
}
?>
e pronto temos nosso primeiro controller feito.
--Entendendo o codigo acima:
Em class AulasController extends AppController { criamos a class "AulasController", como dito a cima "Aulas" está no plural pois é um controller, extends AppController significa que você está utilizando todos os metodos do cake para trabalhar como o cake. Então setamos o controller na $name como Aulas, a variavel $uses é para apenas dizer que não estamos querendo utilizar nenhum model, se não criacemos ela o Controller procuraria um Model.
Vamos anotar?
Um Model é utilizado para trabalhar com o banco de dados, então podemos concluir que o controller ve se está setado alguma variavel $uses se não estiver você está querendo trabalhar com o banco de dados, então havera uma constante ligação entre model e controllers para que finalmente o controller envie as informações para a view.
Vamos anotar?
A url no cake é definida da seguinte maneira: http://url/pasta/controllers/ação/get1/get2 e etc, url seria o nome do site, controllers seria o nome de algum controller e função veremos já já, e get seria um id passado pela views e etc que também veremos daqui a pouco. Obs:"pasta" sera opcional, existe muitas maneiras que veremos bem mais pra frente em outros tutoriais sobre "routes".
Vamos testar escreva no seu navegador http://localhost/aula/aulas:

-Montando nossa primeira pagina
A mensagem de erro acima é bem simples, o cake está querendo dizer para nos, "seu controller está funcionando, mas necessita de uma ação para funcionar". Então vamos criar nossa ação:
class AulasController extends AppController {
var $name = "Aulas";
var $uses = array();
//criando nossa ação
function index(){
}
}
?>
--Entendendo o codigo acima:
Quando abrimos uma function dentro de nosso controller criamos uma ação, quando criamos a function index seria a mesma coisa como se tivessemos criado um index.php. Para testar vamos escrever em nosso navegador http://localhost/aula/aulas/index:

-Criando nosso primeiro View:
Toda ação precisa de um view. View é a pagina que mostrará o texto, imagens, inputs e etc para o usuario do site. Para criarmos uma view teremos que primeiro
1. Criar uma pasta com o nome de nosso controller dentro da pasta views
2. Criar o arquivo com o nome_da_acao.ctp
Vamos anotar?
A extensão .ctp nada mais é que o nosso codigo html + php e a extensão significa "Cake Template Pages".
Crie a pasta "aulas" dentro de app/views/ e depois crie um arquivo index.ctp e coloque o seguinte codigo:
<h2>Criado meu primeiro view em cake</h2>
Criado meu primeiro view em cake
--Entendendo o codigo acima:Apenas criamos nosso codigo html dentro do index.ctp, se quiser testar o prorio cake já cria um layout pre-definido pra teste, nosso proprio layout criaremos nos proximos tutoriais, esse não abordara o tema agora.
Vamos vizualizar o que fizemos: http://localhost/aula/aulas/index e observe, se tudo ocorreu corretamente você cerá o texto "Criado meu primeiro view em cake".
-Trabalhando com controller e view:
Até agora aprendemos usar o controller sem enviar nenhuma informação para a view, a partir de agora vamos colocar a mão no fogo.
No controller aulas dentro da ação index, coloque:
class AulasController extends AppController {
var $name = "Aulas";
var $uses = array();
//criando nossa ação
function index(){
$this->set('criar', 'Criado meu segundo view em cake');
}
}
?>
e no view index.ctp:
<h2><?=$criar?></h2>
--Entendendo o codigo acima:
O metodo set() tem a seguinte definição de acordo com o manual do cake: set(string $var, mixed $value). Quando usamos a função set do cake o primeiro argumento é sempre o nome da variavel que será mandada pra view e o segundo argumento é o que será enviado, por isso em nosso $this->set('criar', 'Criado meu segundo view em cake') o primeiro argumento criamos a variavel criar e o segundo criamos o texto "Criado meu segundo view em cake".
Na view apenas adicionamos nossa variavel definada na função set do controller.
-Trabalhando com controller e view 2:
No controllers aula vamos criar o seguinte codigo:
class AulasController extends AppController {
var $name = "Aulas";
var $uses = array();
//criando nossa ação
function index(){
$aulas = array(
'texto' => 'Trabalhando com set em array',
'descricao' => 'Consegui'
);
$this->set('aulas', $aulas);
}
}
?>
e na view:
<h2><?=$aulas['texto']?></h2>
<h2><?=$aulas['descricao']?></h2>
Enviamos um array com uma variavel chamado $aulas, o que fizemos apenas demos um echo com o php na variavel, uma dica se quiser ver o que a variavel está trazendo para a view utilize o pr($variavel); onde variavel é seu array
Esperam que tenham gostado do primeiro tutorial do blog, esse é o primeiro tutorial do blog e o primeiro da minha vida, se contiver algum erro ou não conseguiu fazer algo por favor poste.
Ai galera, no proximo tutorial estarei ensinando a mexer com inputs e etc do cake não percam, até a proxima
2 comentários:
Boa Matheus!
Bora desenvolver com cakephp aqui no brasil
Abs
freebox
Ola Matheus,
Estou reavivando um topico de agosto desse mesmo ano, talvez você nem leia esse comentario, mas precisava agradecer porque estou começando a cozinhar agora segui a documentação+google+everthing e nada me falava como criar uma pagina estatica. Com seu tuto vi que bastava declarar a não utilização do model.
Então Parabens e Muito obrigado!
Postar um comentário