]> git.llucax.com Git - personal/documentos.git/blob - expo_gnulinux_2003_PEAR.lyx
Actualizar script para mandar attachs con mutt
[personal/documentos.git] / expo_gnulinux_2003_PEAR.lyx
1 #LyX 1.3 created this file. For more info see http://www.lyx.org/
2 \lyxformat 221
3 \textclass book
4 \language spanish
5 \inputencoding auto
6 \fontscheme default
7 \graphics default
8 \paperfontsize default
9 \spacing single 
10 \papersize a4paper
11 \paperpackage widemarginsa4
12 \use_geometry 0
13 \use_amsmath 0
14 \use_natbib 0
15 \use_numerical_citations 0
16 \paperorientation portrait
17 \secnumdepth 3
18 \tocdepth 3
19 \paragraph_separation indent
20 \defskip medskip
21 \quotes_language english
22 \quotes_times 2
23 \papercolumns 1
24 \papersides 1
25 \paperpagestyle default
26
27 \layout Title
28
29 Programación Avanzada en PHP Integrando Herramientas de Desarrollo Libres
30 \layout Author
31
32 Leandro Lucarella <luca (en) lugmen.org.ar>
33 \layout Chapter
34
35 Introducción.
36 \layout Standard
37
38 Esta charla está pensada para programadores de PHP que quieren dar un pasito
39  más adelante.
40  La idea es integrar el uso de varias herramientas libres para realizar
41  desarrollos más complejos y echar un poco de luz sobre PEAR (PHP Extension
42  and Application Repository), comentando sus pro y contra.
43 \layout Section
44
45 Prerequisitos.
46 \layout Subsection
47
48 Conocimientos necesarios para comprender la charla.
49 \layout Itemize
50
51 PHP (básico).
52 \layout Itemize
53
54 SQL (básico).
55 \layout Itemize
56
57 Nociones sobre Programación Orientada a Objetos (POO).
58 \layout Subsection
59
60 Conocimientos adicionales recomendados para comprender mejor la charla.
61 \layout Itemize
62
63 PHP (medio).
64 \layout Itemize
65
66 VIM (básico).
67 \layout Itemize
68
69 HTML (básico).
70 \layout Section
71
72 Temario tentativo.
73 \layout Enumerate
74
75 Introducción a PEAR.
76 \layout Enumerate
77
78 Manejo de bases de datos con DB.
79 \layout Enumerate
80
81 Manejo de templates con HTML_Template_Sigma.
82 \layout Enumerate
83
84 Manejo de Formularios con HTML_QuickForm.
85 \layout Enumerate
86
87 Diseño de clases con Umbrello + xmi2code.
88 \layout Enumerate
89
90 El futuro: cosas a tener en cuenta para migrar a PHP5.
91 \layout Chapter
92
93 Introducción.
94 \layout Section
95
96 ¿Qué es PEAR?
97 \layout Standard
98
99 PEAR significa PHP Extension and Application Repository; en castellano:
100  Repositorio de Extensiones y Aplicaciones de PHP.
101  Los objetivos de PEAR, según su página web
102 \begin_inset Foot
103 collapsed true
104
105 \layout Standard
106
107 http://pear.php.net/
108 \end_inset 
109
110  son generar:
111 \layout Itemize
112
113 Una biblioteca estructurada de código 
114 \emph on 
115 OpenSource
116 \emph default 
117  para usuarios de PHP.
118 \layout Itemize
119
120 Un sistema de distribución de código y mantenimiento de paquetes.
121 \layout Itemize
122
123 Un estilo de programación (
124 \emph on 
125 coding style
126 \emph default 
127 ) estándar para escribir código en PHP.
128 \layout Itemize
129
130 The PHP Foundation Classes (PFC), see more below.
131 \layout Itemize
132
133 Una Biblioteca de Código de Extensiones PHP (PHP Extension Code Library,
134  o PECL).
135 \layout Itemize
136
137 Un sitio web, listas de correo y mirrors de paquetes para apoyar la comunidad
138  PHP/PEAR.
139 \layout Section
140
141 Instalación.
142 \layout Standard
143
144 La instalación de PEAR es sumamente simple.
145  Tan simple que a partir de la versión de PHP 4.3.0 viene incluido por defecto.
146  Si tenemos una versión inferior, sigue siendo trivial instalarlo.
147  Sólo hay que tener la versión de línea de comandos de PHP y ejecutar:
148 \layout LyX-Code
149
150 # links --dump http://go-pear.org/ | php4 -q
151 \layout Standard
152
153 o
154 \layout LyX-Code
155
156 # lynx -source http://go-pear.org/ | php4 -q
157 \layout Standard
158
159 Si no tenés ningún navegador de consola, podés bajar el archivo con cualqueir
160  browser y ejecutar:
161 \layout LyX-Code
162
163 # php4 -q <archivo>
164 \layout Standard
165
166 Esto te va a hacer un par de preguntas y va a dejar instalado PEAR en tu
167  PC.
168 \layout Section
169
170 Usando el comando 
171 \family typewriter 
172 pear
173 \family default 
174 .
175 \layout Standard
176
177 Una vez instalado, tenemos un nuevo comando 
178 \family typewriter 
179 pear
180 \family default 
181  que se encarga de bajar, instalar y mantener los paquetes de PEAR, bastante
182  similar a 
183 \family typewriter 
184 apt
185 \family default 
186 .
187 \layout Standard
188
189
190 \family typewriter 
191 pear help
192 \family default 
193  nos da una lista de comandos disponibles y 
194 \family typewriter 
195 pear help <comando>
196 \family default 
197  nos da una ayuda sobre cada comando.
198 \layout Section
199
200 Lo bueno y lo malo de PEAR.
201 \layout Standard
202
203 Esta es sólo una recolección de opiniones propias.
204 \layout Subsection
205
206 Lo bueno.
207 \layout Itemize
208
209 PEAR ahora es parte de PHP.
210  Es decir, sabemos que donde tengamos PHP vamos a tener PEAR disponible.
211 \layout Itemize
212
213 El simple hecho de tener bibliotecas ya programadas listas para usar.
214 \layout Itemize
215
216 Se pone bastante énfasis en la documentación.
217 \layout Itemize
218
219 Se intenta no duplicar paquetes que hacen lo mismo.
220 \layout Itemize
221
222 Se intenta tener una interfaz común.
223 \layout Subsection
224
225 Lo malo.
226 \layout Itemize
227
228 No aceptan código GPL.
229  Sólo aceptan licencias que permitan desarrollar Software Propietario (como
230  la de PHP, LGPL, BSD, etc).
231 \layout Itemize
232
233 A pesar de poner énfasis en la documentación, hay poca documentación disponible.
234 \layout Itemize
235
236 A pesar de que se intente no duplicar paquetes y tener una interfaz, todavía
237  no se logra.
238 \layout Chapter
239
240 Diseñando la Aplicación.
241 \layout Standard
242
243 Antes de empezar a escribir código vamos a diseñar mínimamente la aplicación,
244  generando todo el 
245 \emph on 
246 esqueleto
247 \emph default 
248  donde después escribiremos nuestro código.
249  En esta charla haremos una simple agenda telefónica.
250 \layout Section
251
252 Diseño de la base de datos.
253 \layout Standard
254
255 Como no encontré una herramienta buena para esto y tampoco sé demasiado
256  de diseño de bases de datos, me voy a limitar a escribir el código SQL
257  necesario para crear las tablas que voy a usar:
258 \layout LyX-Code
259
260 CREATE TABLE persona (
261 \layout LyX-Code
262
263   id           INTEGER(10) UNSIGNED NOT NULL,
264 \layout LyX-Code
265
266   nombre       VARCHAR(25)          NOT NULL,
267 \layout LyX-Code
268
269   apellido     VARCHAR(25)          NOT NULL,
270 \layout LyX-Code
271
272   id_domicilio INTEGER(10) UNSIGNED,
273 \layout LyX-Code
274
275   nacimiento   DATE(8),
276 \layout LyX-Code
277
278   foto         BLOB,
279 \layout LyX-Code
280
281   PRIMARY KEY  (id),
282 \layout LyX-Code
283
284   UNIQUE KEY   (nombre, apellido)
285 \layout LyX-Code
286
287 );
288 \layout LyX-Code
289
290 \layout LyX-Code
291
292 CREATE TABLE domicilio (
293 \layout LyX-Code
294
295   id           INTEGER(10) UNSIGNED NOT NULL,
296 \layout LyX-Code
297
298   calle        VARCHAR(25)          NOT NULL,
299 \layout LyX-Code
300
301   numero       INTEGER(6)  UNSIGNED NOT NULL,
302 \layout LyX-Code
303
304   PRIMARY KEY  (id),
305 \layout LyX-Code
306
307   UNIQUE       (calle, numero)
308 \layout LyX-Code
309
310 );
311 \layout LyX-Code
312
313 \layout LyX-Code
314
315 CREATE TABLE telefono (
316 \layout LyX-Code
317
318   id          INTEGER(10) UNSIGNED NOT NULL,
319 \layout LyX-Code
320
321   numero      VARCHAR(25)          NOT NULL,
322 \layout LyX-Code
323
324   id_persona  INTEGER(10) UNSIGNED NOT NULL,
325 \layout LyX-Code
326
327   tipo        VARCHAR(10),
328 \layout LyX-Code
329
330   PRIMARY KEY (id),
331 \layout LyX-Code
332
333   UNIQUE      (numero, id_persona, tipo)
334 \layout LyX-Code
335
336 );
337 \layout Section
338
339 Diagramas UML con Umbrello
340 \begin_inset Foot
341 collapsed true
342
343 \layout Standard
344
345 http://uml.sourceforge.net/
346 \end_inset 
347
348 .
349 \layout Standard
350
351 Umbrello es un programa para KDE que permite realizar varios diagramas UML.
352  Es uno de los programas más completos para esta tarea en GNU/Linux.
353  A pesar de esto, esta lejos de ser 
354 \emph on 
355 bug-free
356 \emph default 
357 , y de hecho tiene un par muy molestos.
358 \layout Standard
359
360 --------- HACER DIAGRAMA UML Y PONER IMAGEN ACA ---------
361 \the_end