Arquivo da categoria ‘crud’

Iniciando uma aplicação +CRUD

Maio 10, 2007

Apenas depois de uma aplicação criada será possível perceber as reais utilidades para o symfony, os preguiçosos de plantão vão adorar…

Quem nunca precisou criar formulários para a manipulação de dados em múltiplas tabelas? Scaffold(ing) é O nome – uma estrutura básica para execução das ações de CRUD *.
Mas não espere interfaces cleans muito menos que isso represente seu site final, você vai precisar de um design mais atrativo… :D

Vamos ao que interessa, como colocar seus próprios andâimes (tradução literal):

  1. Crie uma aplicação -
    symfony init-app minha_aplicacao
  2. Diga ao symfony que coloque um scaffold em minha_aplicacao -
    symfony propel-generate-crud minha_aplicacao autor Autor

Como temos a tabela de tarefas que faz referência ao autor, podemos também incluí-la:

symfony propel-generate-crud minha_aplicacao tarefa Tarefa

Concluído, teremos no endereço http://localhost/tarefas/web/minha_aplicacao_dev.php/tarefa (ou autor) o resultado desses comandos.

Terrivelmente, sem nenhum layout. Uma solução simples que ameniza a péssima a falta de criatividade do scaffold é copiar o diretório sf_sandbox/web/sf para seu_projeto/web/sf.
Com isso será possível usufruir de algumas informações como informações de debug.

* Ações SQL de Create, Retrieve (mais conhecido como Select), Update e Delete.

Árduo.. mas produtivo

Maio 8, 2007

Depois de navegar em alguns sites sobre como é o aprendizado do symfony, notei que assusta muita gente. Pois bem, mãos a obra e fui tentar criar o primeiro projeto.

Inicialmente, baseei-me no sf_sandbox sendo essa minha única referência comentada e realmente, funciona perfeitamente se seguidos os passos descritos na seção “Meu Primeiro Projeto“. Muito fácil… copiar e colar não ensina nada, que tal um aplicativo de “tarefas a fazer”?

Saindo do grande vazio, criei um novo projeto com o comando:

symfony init-project todo_list

Ótimo! O symfony criou como que por mágica toda a estrutura de diretórios e suas bibliotecas, conhecendo um pouco a estrutura do Propel, achei que o projeto precisaria de uma definição de quais tabelas iriam participar do aplicativo. Passeando pelo diretório config/ do sf_sandbox reparei no arquivo “schema.yml” (arquivo Yaml) e justamente nele encontra-se essa parte da configuração.

Antes disso, vamos a algo importante: o arquivo database.yml contém a configuração do seu banco e como o padrão é o MySQL, lembre-se de escrever nele seu nome de usuário, senha e nome do banco de dados.

A seguir, criei o seguinte:

propel:  autor:    _attributes: { phpName: Autor }    id:    nome:        varchar(255)    email:       varchar(255)    created_at:

  tarefa:    _attributes: { phpName: Tarefa }    id:    autor_id:    titulo:      varchar(255)    conteudo:    longvarchar    created_at:

Então os seguintes comandos são executados:

symfony propel-build-modelsymfony propel-build-sqlsymfony propel-insert-sql

Isso fez com que o symfony gerasse o SQL relativo a criação das tabelas, arquivos de classes e populasse o banco de dados local com as meta informações.

Temos já o esqueleto pronto, já podemos criar “apps” para nosso projeto.