lunes, 6 de junio de 2011

Comenzar un proyecto en Symfony 1.4 (part.2)

bien.. ya sabemos como comenzar un proyecto Symfony
Ahora veamos el resto de los pasos.. comencemos desde el inicio:
$ cd /var/www/
$ mkdir -p proy
$ cd proy/
$ mkdir -p lib/vendor
$ cd lib/vendor
$ tar zxpf /home/usuario/Escritorio/symfony-1.4.4.tgz 
$ mv symfony-1.4.4/ symfony
$ symfony -V
$ symfony generate:project proy
Verifica el post para crear el Comendo Symfony
PARA SEGURIDAD CONTRA ATAQUES XSS Y CSRF
symfony generate:app --escaping-strategy=on --csrf-secret=ClaveUnicaSecreta frontend
Ahora creamos el Virtual Host para nuestro proyecto proy

En el navegador
http://localhost.proy/
y para ver la aplicacion funcionando en modo desarrollo
http://localhost.proy/frontend_dev.php

Creando al estructura de datos
$ sudo su
# su - postgres
$ psql
postgres=#  create database proy_db with owner u_test;
postgres=#  CREATE TABLE persona
(
  id serial NOT NULL,
  nacionalidad character(1),
  ci numeric(10),
  nombre character varying(100) NOT NULL,
  apellido character varying(100) NOT NULL,
  sexo character(1),
  fecha_nac date,
  created_at timestamp without time zone,
  updated_at timestamp without time zone,
  CONSTRAINT persona_pkey PRIMARY KEY (id),
  CONSTRAINT persona_ci_key UNIQUE (ci)
);
ALTER TABLE persona OWNER TO u_test;
postgres=#  \q
$ exit
# exit
/// Estando nuevamente en /var/www/proy ///
$ symfony configure:database "pgsql:host=localhost;dbname=proy_db" u_test 123456
$ symfony doctrine:build-schema
//SI TIENES CAMPOS AUTO ADMINSTRABLES created_at updated_at
//debes ejecutar el comando para el schema
//buscar en el schema los campos created_at updated_at ELIMINALOS y colocar al inicio de la clase del schema actAs: { Timestampable: ~ }
Persona:
connection: doctrine
tableName: persona
actAs: { Timestampable: ~ }
columns:
id:.....
.....
luego ejecutas:
$ symfony doctrine:build --model
$ symfony doctrine:build --filters
$ symfony doctrine:build --forms
o en todo caso
$ symfony doctrine:build --all --no-confirmation
//modificar proy/lib/form/doctrine/PersonaForm.class.php y agregas lo siguiente dentro del metodo configure()
public function configure()
  {
 unset($this['created_at']);
        unset($this['updated_at']);
        .....
        ...
        ..
  }

De la sigueinte manera se crean CRUD (CREATE,RETRIEVE,UPDATE,DELETE) para los modulos de la aplicacion
// symfony doctrine:generate-module --with-show --non-verbose-templates aplicacion modulo Modelo
en nuestro caso el CRUD para la clase persona
$ symfony doctrine:generate-module --with-show --non-verbose-templates frontend persona Persona

y ahora a probar...
http://proy.localhost/frontend_dev.php/persona

No hay comentarios:

Publicar un comentario