Armado de Esquemas YML

Versión 6 (Guillermo Zdanowicz, 02/10/2015 22:18)

1 1 Guillermo Zdanowicz
h1. Armado de Esquemas YML
2 1 Guillermo Zdanowicz
3 1 Guillermo Zdanowicz
A diferencia de Symfony 1, el esquema es armado por cada clase
4 1 Guillermo Zdanowicz
5 1 Guillermo Zdanowicz
*Primero creamos la carepta doctrine*
6 1 Guillermo Zdanowicz
7 1 Guillermo Zdanowicz
mkdir src/JobeetBundle/Resources/config/doctrine
8 1 Guillermo Zdanowicz
9 1 Guillermo Zdanowicz
Creamos y editamos los archivos de esquemas
10 1 Guillermo Zdanowicz
11 6 Guillermo Zdanowicz
mcedit src/JobeetBundle/Resources/config/doctrine/Personas.orm.yml
12 1 Guillermo Zdanowicz
13 1 Guillermo Zdanowicz
<pre>
14 6 Guillermo Zdanowicz
# src/JobeetBundle/Resources/config/doctrine/Personas.orm.yml
15 6 Guillermo Zdanowicz
JobeetBundle\Entity\Personas:
16 1 Guillermo Zdanowicz
    type: entity
17 6 Guillermo Zdanowicz
    table: personas
18 1 Guillermo Zdanowicz
    id:
19 1 Guillermo Zdanowicz
        id:
20 1 Guillermo Zdanowicz
            type: integer
21 1 Guillermo Zdanowicz
            generator: { strategy: AUTO }
22 1 Guillermo Zdanowicz
    fields:
23 6 Guillermo Zdanowicz
        nombre:
24 1 Guillermo Zdanowicz
            type: string
25 1 Guillermo Zdanowicz
            length: 255
26 1 Guillermo Zdanowicz
            nullable: true
27 6 Guillermo Zdanowicz
        apellido:
28 1 Guillermo Zdanowicz
            type: string
29 1 Guillermo Zdanowicz
            length: 255
30 6 Guillermo Zdanowicz
        dni:
31 1 Guillermo Zdanowicz
            type: string
32 1 Guillermo Zdanowicz
            length: 255
33 1 Guillermo Zdanowicz
            nullable: true
34 6 Guillermo Zdanowicz
        activa:
35 1 Guillermo Zdanowicz
            type: boolean
36 1 Guillermo Zdanowicz
            nullable: true
37 1 Guillermo Zdanowicz
    manyToOne:
38 6 Guillermo Zdanowicz
        tiposdocumentos:
39 6 Guillermo Zdanowicz
            targetEntity: Tiposdocumentos
40 6 Guillermo Zdanowicz
            inversedBy: personas
41 1 Guillermo Zdanowicz
            joinColumn:
42 6 Guillermo Zdanowicz
                name: tiposdocumentos_id
43 1 Guillermo Zdanowicz
                referencedColumnName: id
44 1 Guillermo Zdanowicz
</pre>
45 1 Guillermo Zdanowicz
46 6 Guillermo Zdanowicz
mcedit src/JobeetBundle/Resources/config/doctrine/Tiposdocumentos.orm.yml
47 1 Guillermo Zdanowicz
48 1 Guillermo Zdanowicz
<pre>
49 6 Guillermo Zdanowicz
# src/JobeetBundle/Resources/config/doctrine/Tiposdocumentos.orm.yml
50 6 Guillermo Zdanowicz
JobeetBundle\Entity\Tiposdocumentos:
51 1 Guillermo Zdanowicz
    type: entity
52 6 Guillermo Zdanowicz
    table: tiposdocumentos
53 1 Guillermo Zdanowicz
    id:
54 1 Guillermo Zdanowicz
        id:
55 1 Guillermo Zdanowicz
            type: integer
56 1 Guillermo Zdanowicz
            generator: { strategy: AUTO }
57 1 Guillermo Zdanowicz
    fields:
58 6 Guillermo Zdanowicz
        name:
59 1 Guillermo Zdanowicz
            type: string
60 1 Guillermo Zdanowicz
            length: 255
61 1 Guillermo Zdanowicz
            unique: true
62 6 Guillermo Zdanowicz
    oneToMany:
63 6 Guillermo Zdanowicz
        products:
64 6 Guillermo Zdanowicz
            targetEntity: Personas
65 6 Guillermo Zdanowicz
            mappedBy: tiposdocumentos
66 1 Guillermo Zdanowicz
</pre>
67 1 Guillermo Zdanowicz
68 1 Guillermo Zdanowicz
69 6 Guillermo Zdanowicz
70 6 Guillermo Zdanowicz
71 1 Guillermo Zdanowicz
*Generamos los archivos de Entidades*
72 1 Guillermo Zdanowicz
73 1 Guillermo Zdanowicz
php app/console doctrine:generate:entities JobeetBundle
74 1 Guillermo Zdanowicz
75 1 Guillermo Zdanowicz
*Si no hemos creado la base de datos y tenemos configuraod en app/config/parameters.yml el acceso, podemos crearla*
76 1 Guillermo Zdanowicz
77 1 Guillermo Zdanowicz
ejemplo de parameters.yml
78 1 Guillermo Zdanowicz
79 1 Guillermo Zdanowicz
<pre>
80 1 Guillermo Zdanowicz
parameters:
81 1 Guillermo Zdanowicz
    database_host: 127.0.0.1
82 1 Guillermo Zdanowicz
    database_port: null
83 1 Guillermo Zdanowicz
    database_name: s27
84 1 Guillermo Zdanowicz
    database_user: root
85 1 Guillermo Zdanowicz
    database_password: MICLAVE_MYSQL
86 1 Guillermo Zdanowicz
    mailer_transport: smtp
87 1 Guillermo Zdanowicz
    mailer_host: 127.0.0.1
88 1 Guillermo Zdanowicz
    mailer_user: null
89 1 Guillermo Zdanowicz
    mailer_password: null
90 1 Guillermo Zdanowicz
    secret: dedeb278ce6f7db6ea0c78fa04499b87e418f613
91 1 Guillermo Zdanowicz
</pre>
92 1 Guillermo Zdanowicz
93 1 Guillermo Zdanowicz
php app/console doctrine:database:create
94 1 Guillermo Zdanowicz
95 1 Guillermo Zdanowicz
*Luego trasladamos a la base de datos el esquema, en este caso conviene ya tener creada la base de datos segun lo configurado en parameters.yml*
96 1 Guillermo Zdanowicz
97 1 Guillermo Zdanowicz
php app/console doctrine:schema:update --force
98 1 Guillermo Zdanowicz
99 6 Guillermo Zdanowicz
Agregamos un metodo para los combos que obtienen datos entre clases
100 1 Guillermo Zdanowicz
101 6 Guillermo Zdanowicz
en src/JobeetBundle/Entity/Tiposdocumentos.php
102 6 Guillermo Zdanowicz
103 6 Guillermo Zdanowicz
<pre>
104 6 Guillermo Zdanowicz
	public function __toString()
105 6 Guillermo Zdanowicz
	{
106 6 Guillermo Zdanowicz
	  return $this->getName();
107 6 Guillermo Zdanowicz
	}
108 6 Guillermo Zdanowicz
</pre>
109 6 Guillermo Zdanowicz
110 6 Guillermo Zdanowicz
Yo arme un archivo *generar* con el siguiente contenido
111 6 Guillermo Zdanowicz
112 6 Guillermo Zdanowicz
<pre>
113 6 Guillermo Zdanowicz
php app/console doctrine:generate:entities JobeetBundle
114 6 Guillermo Zdanowicz
php app/console doctrine:schema:update --force
115 6 Guillermo Zdanowicz
php app/console doctrine:generate:crud --entity=JobeetBundle:Personas --route-prefix=personas --with-write --format=yml --overwrite
116 6 Guillermo Zdanowicz
117 6 Guillermo Zdanowicz
php app/console cache:clear --env=prod
118 6 Guillermo Zdanowicz
php app/console cache:clear --env=dev
119 6 Guillermo Zdanowicz
</pre>
120 6 Guillermo Zdanowicz
121 6 Guillermo Zdanowicz
le di todos los permisos, incluso el de ejecucion 
122 6 Guillermo Zdanowicz
123 6 Guillermo Zdanowicz
chmod 777 generar
124 6 Guillermo Zdanowicz
125 6 Guillermo Zdanowicz
luego en consola solo corro , desde la carpeta donde se encuentra el archivo generar
126 6 Guillermo Zdanowicz
127 6 Guillermo Zdanowicz
<pre>
128 6 Guillermo Zdanowicz
./generar
129 6 Guillermo Zdanowicz
</pre>
130 6 Guillermo Zdanowicz
131 6 Guillermo Zdanowicz
le doy Enter en todas las opciones
132 6 Guillermo Zdanowicz
133 6 Guillermo Zdanowicz
*Referencias:*
134 5 Guillermo Zdanowicz
135 5 Guillermo Zdanowicz
http://symfony.com/doc/current/book/doctrine.html
Redmine Appliance - Powered by TurnKey Linux