RSS

Arquivo da categoria: PHP

Iniciando com CakePHP

neste “Post” vamos aprender
a instalar um framework e fazer uma agenda para intranet
com o uso do mesmo.

CakePHP a cada dia anda sendo mais usado e elogiado
seria um framework em PHP para fazer aplicações ala
RAILS isso mesmo imagine fazer tarefas com CRUD
possibilitando fazer um blog em 10 minutos,este framework
é chamado de CakePHP é compativel com
PHP4 e PHP5 já tem muitos plugins e já tem alguns livros falando
desta maravilhosa ferramenta…

cakephp

Antes que os programadores em PHP me crucifique
*não vou falar do “Symphony” pois ele não roda no PHP4
*não vou fazer as coisas na raça nem usando pear
*não vou falar do Zend nem outros frameworks de php
*não vou falar de de rails com ruby pois servers para hostar
ruby geralmente custam 10reais mais caros…
*não vou falar de Catalyst com Perl por que server que
aceite perl geralmente são mais caros.

Motivo “Dinheiro=tempo+POO+MVC”
Simplesmente pelo fato do CakePHP permitir desenvolvimento
rápido e rodar na maioria dos servidores nacionais e ser
seguro 😉

chega de blablabla e vamos ao Rock and roll
primeiro temos que preparar o ambiente adapte a parte de
instalação de acordo com seu “OS” sendo *BSD|MacOS use
ports se for Linux use o pacote especifico para sua
distribuição…

no exemplo eu instalei num debian

sudo apt-get install apache2 php5 libapache2-mod-php5 /
mysql-server libapache2-mod-auth-mysql php5-mysql phpmyadmin

sudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin

pronto preparamos a cozinha para o cozinheiro
agora vamos arrumar o Gás do forno xD,vamos arrumar
a configuração do “Apache 2″

tente deixar como no exemplo /etc/apache2/sites-enabled/000-default

DocumentRoot /var/www/
#cake/app/webroot/

Options All
AllowOverride All

Options All
AllowOverride All
Order allow,deny
allow from all


arrumamos a permissões agora vamos habilitar o Mod Rewrite
(módulo nativo do apache2),responsável por permitir a reescrita
de URLs, habilidade indispensável ao funcionamento do CakePHP
de o comando

a2enmod rewrite

feito isso estamos quase prontos para trabalhar com cakephp
vamos instalar ele…

apt-get install cakephp cakephp-scripts

pronto agora sim vamos fazer um bolo para testar nosso forno
primeiramente crie uma database no MySQL depois crie a tabela

CREATE TABLE telefones (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(50),
tell VARCHAR(20),
extra TEXT,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);

agora vamos configurar o cake para sua database

cooler@gnu:/var/www$ mkdir agenda; cake bake agenda

Welcome to CakePHP v1.2.0.7296 RC2 Console
—————————————————————
App : www
Path: /var/www
—————————————————————
Bake Project
Skel Directory: /usr/share/php/cake/console/libs/templates/skel
Will be copied to: /var/www/agenda
—————————————————————
Look okay? (y/n/q)
[y] > y
Do you want verbose output? (y/n)
[n] > n
—————————————————————
Created: agenda in /var/www/agenda
—————————————————————

Creating file /var/www/agenda/views/pages/home.ctp
Wrote /var/www/agenda/views/pages/home.ctp
Welcome page created
Random hash key created for ‘Security.salt’
CAKE_CORE_INCLUDE_PATH set to /usr/share/php in webroot/index.php
CAKE_CORE_INCLUDE_PATH set to /usr/share/php in webroot/test.php
Remember to check these value after moving to production server
Your database configuration was not found. Take a moment to create one.
—————————————————————
Database Configuration:
—————————————————————
Name:
[default] >
Driver: (db2/firebird/mssql/mysql/mysqli/odbc/oracle/postgres/sqlite/sybase)
[mysql] >
Persistent Connection? (y/n)
[n] >
Database Host:
[localhost] >
Port?
[n] >
User:
[root] > root
Password:
> minha senha
Database Name:
[cake] > blog
Table Prefix?
[n] >
Table encoding?
[n] >

—————————————————————
The following database configuration will be created:
—————————————————————
Name: default
Driver: mysql
Persistent: false
Host: localhost
User: root
Pass: *******
Database: blog
—————————————————————
Look okay? (y/n)
[y] > y
Do you wish to add another database configuration?
[n] >

Creating file /var/www/agenda/config/database.php
Wrote /var/www/agenda/config/database.php

definimos nosso primeiro aplicativo e configuração do nosso banco de dados
perfeito! agora vamos fazer o sistema

cooler@gnu:/var/www$ cd agenda; cake bake

Welcome to CakePHP v1.2.0.7296 RC2 Console
—————————————————————
App : agenda
Path: /var/www/agenda
—————————————————————
Interactive Bake Shell
—————————————————————
[D]atabase Configuration
[M]odel
[V]iew
[C]ontroller
[P]roject
[Q]uit
What would you like to Bake? (D/M/V/C/P/Q)
> m
—————————————————————
Bake Model
Path: /var/www/agenda/models/
—————————————————————
Possible Models based on your current database:
1. Post
2. Telefone
Enter a number from the list above, type in the name of another model, or ‘q’ to exit
[q] > 2
Would you like to supply validation criteria for the fields in your model? (y/n)
[y] > n
Would you like to define model associations (hasMany, hasOne, belongsTo, etc.)? (y/n)
[y] > n

—————————————————————
The following Model will be created:
—————————————————————
Name: Telefone
Associations:
—————————————————————
Look okay? (y/n)
[y] > y

Baking model class for Telefone…

Creating file /var/www/agenda/models/telefone.php
Wrote /var/www/agenda/models/telefone.php
Cake test suite not installed. Do you want to bake unit test files anyway? (y/n)
[y] > n
—————————————————————
Interactive Bake Shell
—————————————————————
[D]atabase Configuration
[M]odel
[V]iew
[C]ontroller
[P]roject
[Q]uit
What would you like to Bake? (D/M/V/C/P/Q)
> c
—————————————————————
Bake Controller
Path: /var/www/agenda/controllers/
—————————————————————
Possible Controllers based on your current database:
1. Posts
2. Telefones
Enter a number from the list above, type in the name of another controller, or ‘q’ to exit
[q] > 2
—————————————————————
Baking TelefonesController
—————————————————————
Would you like to build your controller interactively? (y/n)
[y] > y
Would you like to use scaffolding? (y/n)
[n] > y

—————————————————————
The following controller will be created:
—————————————————————
Controller Name: Telefones
var $scaffold;
—————————————————————
Look okay? (y/n)
[y] > y

Creating file /var/www/agenda/controllers/telefones_controller.php
Wrote /var/www/agenda/controllers/telefones_controller.php
Cake test suite not installed. Do you want to bake unit test files anyway? (y/n)
[y] > n
—————————————————————
Interactive Bake Shell
—————————————————————
[D]atabase Configuration
[M]odel
[V]iew
[C]ontroller
[P]roject
[Q]uit

agora veja o Seu Bolo no navegador http://localhost/agenda/telefones
sem palavras o CakePHP fez tudo , ainda deu opção de SORT
com os elementos tudo feito,edit,add,remove…
veja como ficou no meu PC

Uploaded with ImageShack.us

QuickPost Quickpost this image to Myspace, Digg, Facebook, and others!

termino o “Post” por aqui quem gosto do framework entre e veja o manual em PT no link
http://book.cakephp.org/pt

curiosidade
pra quem não entendeu a brincadeira de Bolo e de forno cozinha etc…
saiba que “Cake” em inglês é bolo os developers do CakePHP brincão
muito com estes termos querendo ai passar algumas metáforas do
aplicativos de forma mais humorada,por exemplo o site do CakePHP
onde fica plugins e dicas para o mesmo chamase “bakery” ou seja
padaria… http://bakery.cakephp.org/

 
4 Comentários

Publicado por em maio 11, 2010 em PHP