Avançar para a área de conteúdo

Bem-vindo ao developerWorks. Se você não possui um ID IBM e senha, Registre-se aqui.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Esse perfil inclui o primeiro nome, o sobrenome e o nome de exibição identificado quando você se registrou no developerWorks. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

Prepare Web Sites com Rapidez Utilizando CakePHP, Parte 1: Introdução

Auxílio no Desenvolvimento Rápido e Fácil de PHP

Duane O'Brien, PHP developer, 自由职业者
Duane O'Brien é um canivete suíço tecnológico desde quando The Oregon Trail era somente texto. Sua comida favorita é sushi. Ele nunca esteve na lua.
(Um autor Contribuidor do IBM developerWorks)

Resumo:  CakePHP é um auxílio estável de desenvolvimento rápido e pronto de produção para a construção de Web sites em PHP. Esta série "Prepare Web Sites com Rapidez Utilizando CakePHP" mostra como construir um catálogo de produtos on-line utilizando CakePHP.

Visualizar mais conteúdo nesta série

Data:  02/Jun/2009 (Publicado em: 21/Nov/2006)
Nível:  Intermediário

Comentários:  

Instalação

O CakePHP quer facilitar sua vida, independentemente do seu nível de experiência, deixando seus aplicativos mais fáceis de manter e mais rápidos de gravar. O CakePHP é cheio de recursos legais e úteis. O CakePHP quer tratar do seu Ajax, de sua validação de dados e de suas sessões. Ele pode até fatiar um pão para você se você puder gravar um plug-in ensinando-o como fazer isso. Mas você ainda não pode utilizar o CakePHP. É preciso instalá-lo primeiro.

Descompactar e Instalar

Para o propósito deste tutorial, o diretório de instalação inteiro do CakePHP deve ser descompactado no webroot do servidor da Web. Na Listagem 1, o webroot é /webroot.


Listagem 1. Descompactando o Diretório de Instalação do CakePHP
unzip cake_1.2.2.8120.zip
cd cake_1.2.2.8120
mv * /webroot
                

Digite ls -la /webroot para listar o conteúdo do webroot e verificar se os arquivos foram movidos corretamente. A saída deve ser semelhante à Listagem 2.


Listagem 2. Saída do Comando ls
-rw-r--r--    1 YOURUSER  YOURGROUP       139 2007-12-15 22:50 htaccess
drwxr-xr-x   12 YOURUSER  YOURGROUP      4096 2007-12-15 22:50 app
drwxr-xr-x    7 YOURUSER  YOURGROUP      4096 2007-12-15 22:50 cake
-rw-r--r--    1 YOURUSER  YOURGROUP      2303 2007-12-15 22:50 index.php
drwxr-xr-x    5 YOURUSER  YOURGROUP      4096 2007-12-15 22:50 vendors

O diretório app/tmp precisa ser gravável pelo seu servidor da Web. Confirme as permissões nesta pasta digitando ls -l app. A saída provavelmente se assemelhará à Listagem 3.


Listagem 3. Confirmando as Permissões de Pasta
-rw-r--r--    1 YOURUSER  YOURGROUP       139 2007-12-15 22:50 .htaccess
drwxr-xr-x    3 YOURUSER  YOURGROUP      4096 2007-12-15 22:50 config
drwxr-xr-x    3 YOURUSER  YOURGROUP      4096 2007-12-15 22:50 controllers
-rw-r--r--    1 YOURUSER  YOURGROUP       953 2007-12-15 22:50 index.php
drwxr-xr-x    3 YOURUSER  YOURGROUP      4096 2007-12-15 22:50 locale
drwxr-xr-x    3 YOURUSER  YOURGROUP      4096 2007-12-15 22:50 models
drwxr-xr-x    2 YOURUSER  YOURGROUP      4096 2007-12-15 22:50 plugins
drwxr-xr-x    5 YOURUSER  YOURGROUP      4096 2007-12-15 22:50 tests
drwxr-xr-x    6 YOURUSER  YOURGROUP      4096 2007-12-15 22:50 tmp
drwxr-xr-x    3 YOURUSER  YOURGROUP      4096 2007-12-15 22:50 vendors
drwxr-xr-x    8 YOURUSER  YOURGROUP      4096 2007-12-15 22:50 views
drwxr-xr-x    6 YOURUSER  YOURGROUP      4096 2007-12-15 22:50 webroot
                

A maneira mais simples de se fazer isso é, provavelmente, a mais comum e menos segura: dar permissões de gravação a todos:

chmod -R 777 app/tmp
ls -l app
                

As permissões para a pasta tmp devem ter sido atualizadas, como mostrado abaixo.

drwxrwxrwx    7 YOURUSER  YOURGROUP      2007-12-15 22:50 tmp
                

Conceder permissões de gravação a todos não é recomendado para uso geral. O ideal é que você altere a propriedade desta pasta para corresponder ao usuário utilizado pelo servidor da Web, ou inclua o usuário utilizado pelo servidor da Web em um grupo para o diretório e inclua permissões de gravação de grupo. Este tutorial deve demonstrar como utilizar o CakePHP e não foi projetado para ser um guia para a construção de aplicativos seguros. Embora a segurança devesse ser prioridade no desenvolvimento de qualquer aplicativo, uma discussão completa sobre as práticas seguras de PHP estão fora do escopo deste tutorial.

Para uma instalação de produção, altere o webroot do servidor da Web para app/webroot, que irá minimizar a quantidade de código acessível via navegador da Web e ajudará a melhorar a segurança de sua instalação.


Validação 1

Em um navegador, acesse a URL que corresponde ao webroot para seu servidor da Web. Por exemplo, se você tiver instalado o CakePHP no webroot do host local, acesse http://localhost; você deverá ver a página inicial padrão do CakePHP.


Figura 1. A Página Inicial Padrão do CakePHP como Ela Deve Ser Vista
A página inicial padrão do CakePHP como ela deve ser vista

Nota: Se a página inicial padrão for mais semelhante à Figura 2, então mod_rewrite não está funcionando conforme requerido pelo CakePHP. Às vezes isso pode ser um problema para usuários iniciantes.


Figura 2. A Página Inicial com Aparência Incorreta
Página Inicial com Aparência Incorreta

A seguir estão algumas coisas que devem ser verificadas.

Seu Arquivo .htaccess Está Correto?

Você deve ter recebido acesso ao arquivo .htaccess no diretório de instalação do CakePHP. Na maioria dos sistemas *nix, isso ficará oculto da visualização por padrão. Se você não tiver o arquivo, verifique a origem que você transferiu por download ou obtenha uma nova atualização do CakePHP.org. Confirme se o arquivo existe e é válido acessando o diretório de instalação e executando cat .htaccess. Isso exibirá o conteúdo do arquivo, que deve ser semelhante à Listagem 4.


Listagem 4. Confirmando se o Arquivo .htaccess Existe
<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>
                

O mod_rewrite Está Ativado para o Servidor?

Certifique-se de que mod_rewrite esteja ativado para seu servidor da Web. Para Apache, existem duas linhas que devem aparecer no arquivo httpd.conf. Na lista LoadModule, você deve ver a seguinte linha (ou algo muito próximo disso): LoadModule rewrite_module libexec/mod_rewrite.so.

Na lista AddModule, você deve ver esta linha (ou algo muito próximo disso): AddModule mod_rewrite.c.

Se você não puder localizar essas linhas em seu arquivo httpd.conf, mod_rewrite não está ativado. Consulte a documentação do servidor para obter os detalhes sobre como fazer isso.

O Servidor Permite a Substituição de .htaccess?

Certifique-se de que seu servidor da Web esteja configurado para permitir a substituição de .htaccess. Para o Apache, cada diretório deve ser definido no arquivo httpd.conf. Essas definições podem parecer bastante diferentes de uma instalação para outra, mas ainda assim você deverá ver a linha AllowOverride All na definição. Sua definição pode ser semelhante à Listagem 5.


Listagem 5. Definições no Arquivo httpd.conf
   <Directory "/webroot">
       Options Indexes MultiViews
       AllowOverride All
       Order allow,deny
       Allow from all
   </Directory>
                

Consulte a documentação do servidor para obter mais detalhes sobre a substituição de .htaccess.


Configurando uma Conexão com o Banco de Dados

Agora que você já tem o CakePHP instalado e está se entendendo bem com seu servidor da Web, é preciso introduzir o CakePHP em seu banco de dados. Esta seção cobrirá a definição da configuração do banco de dados e verificará se o CakePHP gosta do seu banco de dados. Tor vai precisar de um lugar para armazenar seus dados de usuário e produto. Em breve, você vai criar uma tabela de usuários para ser utilizada para a construção das partes de login e registro do Tor.


Editando o Arquivo de Configuração do Banco de Dados

A definição da configuração do banco de dados é muito fácil, mas antes de você começar, certifique-se de que seu banco de dados esteja em execução, de ter criado um banco de dados para seu aplicativo e de ter um nome de usuário e uma senha para um usuário com direitos ao banco de dados.

Para começar, faça uma cópia do arquivo app/config/database.php.default e salve-o como app/config/database.php. Faça isso para preservar uma cópia do modelo original. Abra o arquivo em seu editor de texto favorito e procure a seguinte seção (ela deve estar próxima da parte inferior do arquivo).


Listagem 6. O Arquivo app/config/database.php.default
var $default = array(
                'driver' => 'mysql',
                'persistent' => false,
                'host' => 'localhost',
                'login' => 'user',
                'password' => 'password',
                'database' => 'database_name',
                'prefix' => ''
        );
                

Modifique estas informações para ajustar sua instalação:

driver
Pode ser mysql, mysqli, postgres, sqlite, mssql, db2, oracle, adodb ou pear-drivername. Este tutorial assume mysql.
persistente
Este campo diz ao CakePHP se ele deve utilizar conexão com o banco de dados persistente. Ele deve ser true ou false. Este tutorial assume false.
host
É o nome do host do servidor de banco de dados, como localhost ou mysql.yourdomain.
login
É o nome de usuário para seu login do banco de dados, como dbuser.
senha
É a senha para seu login do banco de dados, como secretsecret.
banco de dados
É o nome do banco de dados que você quer utilizar, como cakedev.
prefixo
Prefixo é uma cadeia, como cp_, que é colocada no início de nomes de tabela para qualquer chamada de banco de dados feita pelo CakePHP. O uso de um prefixo pode ser necessário se o banco de dados for compartilhado entre aplicativos para impedir que as tabelas se sobreponham umas as outras, onde dois ou mais aplicativos querem uma tabela com o mesmo nome, como usuários.

Não se esqueça de salvar o arquivo.

Qualquer número de configurações de banco de dados pode ser especificado no database.php, desde que elas tenham nomes distintos. Você pode especificar qual configuração do banco de dados o aplicativo deve utilizar nos modelos.

Algumas notas sobre bancos de dados e CakePHP:

  • As tabelas devem ter uma chave primária denominada id.
  • Se você incluir uma coluna criado ou modificado na tabela, o CakePHP irá preencher automaticamente o campo quando for apropriado.
  • Nomes de tabelas devem estar no plural (usuários, produtos, ovos, refrigerantes, vencedores, perdedores). Seus modelos correspondentes terão nomes no singular (usuário, produto, ovo, refrigerante, vencedor, perdedor).
  • Se as tabelas tiverem que ser relacionadas, as chaves estrangeiras deverão seguir o formato table_id com nomes de tabela no singular. Por exemplo, user_id, product_id, egg_id, soda_id, winner_id e loser_id seriam chaves estrangeiras para o usuário, o produto, o ovo, o refrigerante, o vencedor e o perdedor da tabela.

Validação 2

Retorne à URL que você utilizou para validar a instalação inicial. Você deverá ver que a página inicial padrão do CakePHP foi alterada para indicar o status da configuração do banco de dados.


Figura 3. Página Inicial Padrão do CakePHP Alterada para Indicar o Status da Configuração do Banco de Dados
Página Inicial Padrão do CakePHP Alterada para Indicar o Status da Configuração do Banco de Dados

Se a página inicial padrão disser que o arquivo de configuração do banco de dados não está presente, talvez você o tenha colocado no lugar errado ou nomeado incorretamente. Certifique-se de que o arquivo de configuração do banco de dados seja app/config/database.php. Se a página inicial padrão disser que o CakePHP não pode se conectar ao banco de dados, confirme se as informações de conexão inseridas são válidas e tente novamente.


Criando as Tabelas de Aplicativo

Até agora, o CakePHP, seu servidor da Web e seu banco de dados estão se comunicando bem. É hora de arregaçar as mangas e fazer o trabalho real. Tor precisa de uma tabela de usuários.

Esta tabela conterá as informações básicas necessárias para identificar e interagir com um usuário. Um simples campo de nome de usuário e senha provavelmente seria suficiente, mas outras informações podem ser úteis, como um endereço de e-mail (para o envio de pedidos de reconfiguração de senha), primeiro e último nomes (para personalização) e a data do último login (para ajudar a rastrear contas inativas). Provavelmente você quer que seus campos de nome de usuário e e-mail sejam exclusivos. E não se esqueça do campo de ID de chave primária. O SQL para a criação de sua tabela pode ser semelhante à Listagem 7.


Listagem 7. SQL para Criar Sua Tabela
CREATE TABLE 'users' (
'id' INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
'username' VARCHAR( 40 ) NOT NULL ,
'password' VARCHAR( 40 ) NOT NULL ,
'email' VARCHAR( 255 ) NOT NULL ,
'first_name' VARCHAR( 40 ) NOT NULL ,
'last_name' VARCHAR( 40 ) NOT NULL ,
    UNIQUE (
        'username' ,,
             'email'
		)
) TYPE = MYISAM ;
                

Observe que os campos username, password, first_namee last_name têm um comprimento máximo de 40 caracteres. Nós forçaremos este comprimento de caracteres no modelo de usuário. O comprimento máximo de 40 caracteres, nesse caso, é totalmente arbitrário.

2 de 10 | Anterior | Próximo

Comentários



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Software livre
ArticleID=397006
TutorialTitle=Prepare Web Sites com Rapidez Utilizando CakePHP, Parte 1: Introdução
publish-date=06022009
author1-email=d@duaneobrien.com
author1-email-cc=ruterbo@us.ibm.com

Tags

Help
Use o campo de pesquisa para encontrar todos os tipos de conteúdo no My developerWorks com essa tag.

Use a barra de rolagem para ver mais ou menos tags.

Tags populares mostra as principais tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Minhas tags mostra suas tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Use o campo de pesquisa para localizar todos os tipos de conteúdo no Meu developerWorks com essa tag. Tags populares mostra as tags principais para essa zona de conteúdo particular (por exemplo, tecnologia Java, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere). Minhas tags mostra as suas tags para essa zona de conteúdo em particular (por exemplo, tecnologia Java, Linux, WebSphere).