2005-02-06 20:24:57 +00:00
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
2004-07-08 21:10:56 +00:00
< head >
2004-08-31 10:39:17 +00:00
< title > Moodle Docs: manual de estilo del có digo< / title >
2005-02-06 20:24:57 +00:00
< link rel = "stylesheet" href = "docstyles.css" type = "TEXT/CSS" / >
< meta http-equiv = "Content-Type" content = "text/html; charset=iso-8859-1" / >
2004-07-08 21:10:56 +00:00
< / head >
2005-02-06 20:24:57 +00:00
< body >
2004-07-08 21:10:56 +00:00
< h1 > Manual de Estilo del Có digo< / h1 >
2004-07-09 08:09:43 +00:00
< p class = "normaltext" > Cualquier proyecto colaborativo necesita que la consistencia
2004-07-08 21:10:56 +00:00
y la estabilidad sean fuertes.< / p >
2005-06-19 10:16:06 +00:00
< p class = "normaltext" > Este manual de estilo ha sido escrito para conseguir que
todo el có digo de Moodle cumpla estas caracterí sticas. Es cierto
que la parte má s antigua del có digo no cumple lo aquí especificado
en algunos casos, pero esto será solucionado gradualmente.
Todo el có digo
nuevo definitivamente deberá adherirse a estos está ndares
de la forma má s exacta posible.< / p >
2004-07-08 21:10:56 +00:00
< h2 > Reglas Generales< / h2 >
< ol class = "normaltext" >
< li class = "spaced" > Todos los archivos con có digo deberí an utilizar la extensió n
.php.< / li >
< li class = "spaced" > Todas las plantillas deberí an utilizar la extensió n .html.< / li >
< li class = "spaced" > Todos los archivos de texto deberí an utilizar el formato
de texto Unix (la mayorí a de los editores de texto tienen esto como una opció n).< / li >
< li class = "spaced" > Todas las etiquetas php deben ser 'completas' como < font color = "#339900" > < ?php
?> < / font > ... no 'reducidas' como < font color = "#339900" > < ?
?> < / font > .
< / li >
2005-06-19 10:16:06 +00:00
< li class = "spaced" > Todos los avisos de copyright deben ser mantenidos. Puede
incluir los suyos propios si resulta necesario.< / li >
2004-07-09 08:09:43 +00:00
< li class = "spaced" > Todos los archivos deben incluir el archivo principal config.php.< / li >
2004-07-08 21:10:56 +00:00
< li class = "spaced" > Cada archivo deberí a comprobar que el usuario está autenticado
correctamente, utilizando las funciones require_login() y
isadmin(),
isteacher(),
iscreator()
o isstudent().< / li >
2005-06-19 10:16:06 +00:00
< li class = "spaced" > Todos los accesos a la base de datos deberí an utilizar
las funciones definidas en lib/datalib.php cuando sea posible - esto permite
la compatibilidad con un gran nú mero de bases de datos. Deberí a
encontrar que prá cticamente todo es posible utilizando estas funciones.
Si quiere escribir có digo SQL entonces deberá comprobar
que: funciona en cualquier plataforma; restringido a funciones especí ficas
de su có digo (normalmente un archivo lib.php); y claramente comentado.< / li >
< li class = "spaced" > No cree o utilice variables globales distintas de las
2004-07-08 21:10:56 +00:00
está ndar $CFG, $SESSION, $THEME y $USER.< / li >
< li class = "spaced" > Todas las variables deberí an ser inicializadas o, al menos,
comprobada su existencia utilizando isset()
o empty()
antes de ser utilizadas.< / li >
2005-06-19 10:16:06 +00:00
< li class = "spaced" > Todas las cadenas deberí an ser traducibles - cree
nuevos textos en los archivos " lang/es" files
con palabras reducidas en inglé s y su traducció n completa al
Españ ol y recupé relas
en su có digo utilizando las funciones get_string() or print_string().< / li >
< li class = "spaced" > Todos los ficheros de ayuda deben ser traducibles - cree
nuevos textos en el directorio " en/help" y llá melos utilizando
2004-08-24 22:13:16 +00:00
la funció n helpbutton().
2005-06-19 10:16:06 +00:00
< p > Si necesita actualizar un fichero de ayuda:< / p >
2004-08-24 22:13:16 +00:00
< ul >
2005-06-19 10:16:06 +00:00
< li > para un pequeñ o cambio, donde la traducció n antigua del
fichero podrí a tener todaví a sentido, está permitido
que haga el cambio, pero deberí a notificá rselo a translation@moodle.org< / li >
< li > para un cambio importante tendrá que crear un nuevo fichero
añ adiendole
2004-08-24 22:13:16 +00:00
en el nombre un numero incrementado
(p.ej. filename2.html)
para que los traductores puedan ver facilmente que se trata de una nueva
2005-06-19 10:16:06 +00:00
versió n del archivo. Obviamente el nuevo có digo y los í ndices
de las pá ginas de ayuda deben ser modificados para apuntar a las
versiones má s
2004-08-24 22:13:16 +00:00
recientes.< / li >
< / ul >
< / li >
2004-07-09 08:09:43 +00:00
< li class = "spaced" > La informació n que llega desde el navegador (enviada
con los mé todos GET o POST) automá ticamente tiene las " magic_quotes"
aplicadas (sin importar la configuració n de PHP) por lo que puedes
insertarla con total seguridad en la base de datos. El resto de la informació n(obtenida
desde los archivos, o desde la base de datos) debe ser escapada con la funció n
< font color = "#339900" > addslashes()< / font > antes de insertarla en la base de
datos.< / li >
2004-08-24 21:51:31 +00:00
< li class = "spaced" > IMPORTANTE: Todos los textos dentro de Moodle, especialmente
2005-06-19 10:16:06 +00:00
aquellos que han sido introducidos por los usuarios, deben ser mostrados
utilizando la funció n format_text(). Esto asegura que el texto es
filtrado y limpiado correctamente.< / li >
2004-07-08 21:10:56 +00:00
< / ol >
< p > < / p >
< h2 > Estilo del Có digo< / h2 >
2005-06-19 10:16:06 +00:00
< p class = "normaltext" > Comprendo que puede ser un poco frustrante modificar su
estilo de programació n si ha trabajado en otras cosas, pero compara
esa frustració n con la frustració n de toda la gente que intente,
má s adelante, encontrar el sentido del có digo de Moodle si
es una mezcla de estilos. Obviamente, hay muchos puntos a favor y en contra
de
cada estilo que la gente utiliza, pero el que se detalla aquí es el
que deberá utilizar.< / p >
2004-07-08 21:10:56 +00:00
< ol class = "normaltext" >
< li class = "spaced" > < strong > El sangrado< / strong > del texto debe ser siempre
de 4 espacios. No utilices los tabuladosres NUNCA.< / li >
< li class = "spaced" > < strong > Los nombres de las variables< / strong > tienen que
2005-06-19 10:16:06 +00:00
ser siempre fá ciles de leer, procurando que sean palabras en minú sculas
con significado en Inglé s. Si realmente necesita má s de una
palabra, pó ngalas juntas, pero procure mantenerlas tan breves como sea posible.
Utilize nombres
2004-07-08 21:10:56 +00:00
en plural para las matrices de objetos.
< p class = "examplecode" > < font color = "#006600" > BIEN< / font > < font color = "#006600" > :
2004-09-16 17:13:57 +00:00
$quiz< br / >
BIEN< / font > < font color = "#006600" > < / font > < font color = "#006600" > : $errorstring< br / >
2004-07-08 21:10:56 +00:00
BIEN< / font > < font color = "#006600" > < / font > < font color = "#006600" > : $assignments
2004-09-16 17:13:57 +00:00
(for an array of objects)< br / >
2004-07-08 21:10:56 +00:00
BIEN< / font > < font color = "#006600" > < / font > < font color = "#006600" > : $i (but
2004-09-16 17:13:57 +00:00
only in little loops)< br / >
2004-07-08 21:10:56 +00:00
< br / >
2004-09-16 17:13:57 +00:00
MAL: $Quiz < br / >
MAL: $aReallyLongVariableNameWithoutAGoodReason< br / >
2004-07-08 21:10:56 +00:00
MAL: $error_string< / font > < / p >
< / li >
< li class = "spaced" > < strong > Las constantes< / strong > tienen que definirse siempre
en mayú sculas, y empezar siempre por el nombre del mó dulo al que pertenecen.
Deberí an tener las palabras separadas por guiones bajos.
< p class = "examplecode" > < font color = "#006600" > define(" FORUM_MODE_FLATOLDEST" ,
1);< / font > < / p >
< / li >
2005-06-19 10:16:06 +00:00
< li class = "spaced" > < strong > Los nombres de las funciones< / strong > tienen que
ser palabras sencillas en minú sculas y en Inglé s, y empezar
con el nombre del mó dulo al que pertenecen para evitar conflictos
entre mó dulos. Las palabras deberí an separarse por guiones
bajos. Los pará mentros, si es posible, tendrá n valores por
defecto. Compruebe que no haya espacio entre el nombre de la funció n
y lo siguiente (paré ntesis).< br / >
2004-07-08 21:10:56 +00:00
< p class = "examplecode" > < font color = "#007700" > function < / font > < font color = "#0000BB" > forum_set_display_mode< / font > < font color = "#007700" > (< / font > < font color = "#0000BB" > $mode< / font > < font color = "#007700" > =< / font > < font color = "#0000BB" > 0< / font > < font color = "#007700" > )
{< br / >
global < / font > < font color = "#0000BB" > $USER< / font > < font color = "#007700" > ,
< / font > < font color = "#0000BB" > $CFG< / font > < font color = "#007700" > ;< br / >
< br / >
if (< / font > < font color = "#0000BB" > $mode< / font > < font color = "#007700" > )
{< br / >
< / font > < font color = "#0000BB" > $USER< / font > < font color = "#007700" > -> < / font > < font color = "#0000BB" > mode
< / font > < font color = "#007700" > = < / font > < font color = "#0000BB" > $mode< / font > < font color = "#007700" > ;< br / >
} else if (empty(< / font > < font color = "#0000BB" > $USER< / font > < font color = "#007700" > -> < / font > < font color = "#0000BB" > mode< / font > < font color = "#007700" > ))
{< br / >
< / font > < font color = "#0000BB" > $USER< / font > < font color = "#007700" > -> < / font > < font color = "#0000BB" > mode
< / font > < font color = "#007700" > = < / font > < font color = "#0000BB" > $CFG< / font > < font color = "#007700" > -> < / font > < font color = "#0000BB" > forum_displaymode< / font > < font color = "#007700" > ;< br / >
}< br / >
}< / font > < / p >
< / li >
2004-07-09 08:09:43 +00:00
< li class = "spaced" > < strong > Los bloques de có digo< / strong > siempre deben
estar encerrados por llaves (incluso si solo constan de una lí nea).
Moodle utiliza este estilo:
2004-07-08 21:10:56 +00:00
< p class = "examplecode" > < font color = "#006600" > if (< / font > < font color = "#0000CC" > $quiz< / font > < font color = "#006600" > -> < / font > < font color = "#0000CC" > attempts< / font > < font color = "#006600" > )
{< br / >
if (< / font > < font color = "#0000CC" > $numattempts < / font > < font color = "#006600" > >
< / font > < font color = "#0000CC" > $quiz< / font > < font color = "#006600" > -> < / font > < font color = "#0000CC" > attempts< / font > < font color = "#006600" > )
{< br / >
< / font > < font color = "#0000CC" > error< / font > < font color = "#006600" > (< / font > < font color = "#0000BB" > $strtoomanyattempts< / font > < font color = "#006600" > ,
< / font > < font color = "#CC0000" > "view.php?id=$cm< / font > < font color = "#006600" > -> < / font > < font color = "#CC0000" > id"< / font > < font color = "#006600" > );< br / >
}< br / >
}< / font > < / p >
< / li >
< li class = "spaced" > < strong > Las cadenas < / strong > tienen que ser definidas utilizando
2004-09-16 17:13:57 +00:00
comillas simples siempre que sea posible, para obtener un mejor rendimiento.< br / >
2004-07-08 21:10:56 +00:00
< p class = "examplecode" > < font color = "#006600" > $var = 'some text without any
2004-09-16 17:13:57 +00:00
variables';< br / >
$var = " with special characters like a new line \n" ;< br / >
$var = 'a very, very long string with a '.$single.' variable in it';< br / >
2004-07-08 21:10:56 +00:00
$var = " some $text with $many variables $within it" ; < / font > < / p >
< / li >
2005-04-28 12:29:52 +00:00
< li class = "spaced" > < strong > Los comentarios< / strong > deben ser añ adidos de forma que resulten prá cticos, para explicar el flujo del có digo y el propó sito de las funciones y variables.
< ul >
< li > Cada funció n (y cada clase) deberí a utilizar el popular < a target = "_blank" href = "http://www.phpdoc.org/" > formato phpDoc< / a > .
Esto permite que la documentació n sea generada automá ticamente.< / li >
< li > Los comentarios en lí nea deberí an utilizar los caracteres //, alineados con cuidado por encima de las lí neas de có digo que comenta.< / li >
< / ul >
< p class = "examplecode" > < font color = "#FF8000" >
/**< br / >
* The description should be first, with asterisks laid out exactly< br / >
* like this example. If you want to refer to a another function,< br / >
* do it like this: {@link clean_param()}. Then, add descriptions < br / >
* for each parameter as follows.< br / >
*< br / >
* @param int $postid The PHP type is followed by the variable name< br / >
* @param array $scale The PHP type is followed by the variable name< br / >
* @param array $ratings The PHP type is followed by the variable name< br / >
* @return mixed< br / >
*/< / font > < br / >
< font color = "#006600" > function < / font > < font color = "#0000BB" > forum_get_ratings_mean< / font > < font color = "#007700" > (< / font > < font color = "#0000BB" > $postid< / font > < font color = "#007700" > ,
2004-07-08 21:10:56 +00:00
< / font > < font color = "#0000BB" > $scale< / font > < font color = "#007700" > , < / font > < font color = "#0000BB" > $ratings< / font > < font color = "#007700" > =< / font > < font color = "#0000BB" > NULL< / font > < font color = "#007700" > )
2005-04-28 12:29:52 +00:00
{< br / > < / font >
< font color = "#007700" > if (!< / font > < font color = "#0000BB" > $ratings< / font > < font color = "#007700" > )
2004-07-08 21:10:56 +00:00
{< br / >
< / font > < font color = "#0000BB" > $ratings
< / font > < font color = "#007700" > = array(); < / font > < font color = "#FF8000" > //
Initialize the empty array< / font > < font color = "#007700" > < br / >
if (< / font > < font color = "#0000BB" > $rates
< / font > < font color = "#007700" > = < / font > < font color = "#0000BB" > get_records< / font > < font color = "#007700" > (< / font > < font color = "#DD0000" > "forum_ratings"< / font > < font color = "#007700" > ,
< / font > < font color = "#DD0000" > "post"< / font > < font color = "#007700" > , < / font > < font color = "#0000BB" > $postid< / font > < font color = "#007700" > ))
2004-09-16 17:13:57 +00:00
{< br / >
2004-07-08 21:10:56 +00:00
< / font > < font color = "#FF8000" > //
Process each rating in turn< / font > < font color = "#007700" > < br / >
foreach
(< / font > < font color = "#0000BB" > $rates < / font > < font color = "#007700" > as < / font > < font color = "#0000BB" > $rate< / font > < font color = "#007700" > )
2004-09-16 17:13:57 +00:00
{< / font > < br / >
2004-07-08 21:10:56 +00:00
....etc < / p >
< / li >
2005-04-28 12:29:52 +00:00
2004-07-08 21:10:56 +00:00
< li class = "spaced" > < strong > El espacio en blanco< / strong > se puede utilizar
2005-06-19 10:16:06 +00:00
con bastante libertad - no se preocupe por separar las cosas un poco para
ganar en claridad. Generalmente, deberí a haber un espacio entre llaves
y lí neas normales y ninguno entre llaves y variables o funciones:< br / >
2004-07-08 21:10:56 +00:00
< p class = "examplecode" > < font color = "#007700" > foreach (< / font > < font color = "#0000BB" > $objects
< / font > < font color = "#007700" > as < / font > < font color = "#0000BB" > $key < / font > < font color = "#007700" > => < / font > < font color = "#0000BB" >
2004-09-16 17:13:57 +00:00
$thing< / font > < font color = "#007700" > )< / font > < font color = "#006600" > {< br / >
2004-07-08 21:10:56 +00:00
< / font > < font color = "#007700" > < / font > < font color = "#0000BB" > process($thing);< / font > < font color = "#006600" >
2004-09-16 17:13:57 +00:00
< br / >
} < br / >
< br / >
2004-07-08 21:10:56 +00:00
< / font > < font color = "#007700" > if (< / font > < font color = "#0000BB" > $x < / font > < font color = "#007700" > ==
< / font > < font color = "#0000BB" > $y< / font > < font color = "#007700" > )< / font > < font color = "#006600" >
2004-09-16 17:13:57 +00:00
{< br / >
2004-07-08 21:10:56 +00:00
< / font > < font color = "#007700" > < / font > < font color = "#0000BB" > $a
2004-09-16 17:13:57 +00:00
< / font > < font color = "#007700" > = < / font > < font color = "#0000BB" > $b< / font > < font color = "#007700" > ;< / font > < font color = "#006600" > < br / >
2004-07-08 21:10:56 +00:00
} else if (< / font > < font color = "#0000BB" > $x < / font > < font color = "#007700" > ==
2004-09-16 17:13:57 +00:00
< / font > < font color = "#0000BB" > $z< / font > < font color = "#006600" > ) {< br / >
2004-07-08 21:10:56 +00:00
< / font > < font color = "#007700" > < / font > < font color = "#0000BB" > $a
2004-09-16 17:13:57 +00:00
< / font > < font color = "#007700" > = < / font > < font color = "#0000BB" > $c< / font > < font color = "#007700" > ;< / font > < font color = "#006600" > < br / >
} else {< br / >
2004-07-08 21:10:56 +00:00
< / font > < font color = "#007700" > < / font > < font color = "#0000BB" > $a
2004-09-16 17:13:57 +00:00
< / font > < font color = "#007700" > = < / font > < font color = "#0000BB" > $d< / font > < font color = "#007700" > ;< / font > < font color = "#006600" > < br / >
2004-07-08 21:10:56 +00:00
} < / font > < / p >
< / li >
< / ol >
< p > < / p >
< h2 > Estructuras de la base de datos< / h2 >
< ol class = "normaltext" >
< li class = "spaced" > Cada tabla debe tener un campo autonumé rico < strong > id< / strong > (INT10)
como clave primaria.< / li >
< li class = "spaced" > La tabla principal que contiene instancias de cada mó dulo
debe tener el mismo nombre que el mó dulo y contener, por lo menos, los siguientes
campos:
< ul >
< li > < strong > id< / strong > - descrito arriba< / li >
< li > < strong > course< / strong > - el identificador del curso al que la instancia
pertenece< / li >
< li > < strong > name< / strong > - el nombre completo de la instancia< / li >
< / ul >
< / li >
2005-06-19 10:16:06 +00:00
< li class = "spaced" > El resto de las tablas asociadas con un mó dulo que
contiene informació n sobre 'cosas', deberí an ser llamandas < strong > modulo_cosas
< / strong > (fí jese en el plural!).< / li >
2004-07-08 21:10:56 +00:00
< li class = "spaced" > Los nombres de los campos (columnas) deberí an ser sencillos
y cortos, siguiendo las mismas reglas que los nombres de las variables.< / li >
< li class = "spaced" > Cuando sea posible, las columnas que contengan una referencia
al campo id de otra tabla
(por ejemplo, < strong > modulo< / strong > )
deberí a ser llamado < strong > moduloid< / strong > .
(fí jate que esta norma es nueva y no es seguida por algunas tablas antiguas).< / li >
< li class = "spaced" > Los campos booleanos será n implementados como enteros cortos
(por ejemplo, INT4) con los valores 0 o 1,
para permitir la futura expansió n de los valores si fuera necesario.< / li >
< li class = "spaced" > La mayorí a de las tablas tienen que tener un campo < strong > timemodified< / strong > (INT10)
que será actualizado con la fecha actual (timestamp de UNIX) obtenida con
la funció n < strong > time< / strong > ()
de PHP.< / li >
< / ol >
2005-06-19 10:16:06 +00:00
< p > < / p >
< h2 > Normas de Seguridad (y control de la informació n de formularios y URLs)< / h2 >
< ol class = "normaltext" >
< li class = "spaced" > No se base en 'register_globals'. < strong > Cada< / strong > variable
debe ser correctamente inicializada en < strong > cada< / strong > fichero de có digo.
Debe ser obvia la procedencia de cada variable.< / li >
< li class = "spaced" > Inicialice todos los arrays y objetos aunque esté n vací os. < code > $a
= array()< / code >
o < code > $obj = new stdClass();< / code > .< / li >
< li class = "spaced" > No utilice la funció n < code > optional_variable()< / code > .
En su lugar, utilice la funció n < code > optional_param()< / code > . Seleccione
la opció n PARAM_XXXX apropiada al tipo de pará metro que espera. Para comprobar
y definir un valor opcional para una variable, utilice la funció n < code > set_default()< / code > .< / li >
< li class = "spaced" > No utilice la funció n < code > require_variable()< / code > .
En su lugar, utilice la funció n < code > required_param()< / code > . Seleccione
la opció n PARAM_XXXX apropiada al tipo de pará metro que espera.< / li >
2005-07-07 22:36:05 +00:00
< li class = "spaced" > Utilice < code > data_submitted()< / code > , with cuidado. La informació n
todaví a debe ser limpiada antes de utilizarla.< / li >
2005-06-19 10:16:06 +00:00
< li class = "spaced" > No utilice < code > $_GET< / code > , < code > $_POST< / code > o< code > $_REQUEST< / code > .
En su lugar, utilice las funciones < code > required_param()< / code > o < code > optional_param()< / code > apropiadas.< / li >
< li class = "spaced" > No compruebe las acciones con có digo como: < code > if
(isset($_GET['algo']))< / code > .
2005-07-07 22:36:05 +00:00
Utilice, por ejemplo, < code > $algo = optional_param( algo, -1, PARAM_INT
)< / code > y entonces compruebe que está dentro de los valores esperados, por
ejemplo, < code > if ($something>=0) {...< / code > .< / li >
2005-06-19 10:16:06 +00:00
< li class = "spaced" > Cuando sea posible agrupe todas sus llamadas a < code > required_param()< / code > , < code > optional_param()< / code >
y el resto de inicializació n de variables en el principio de cada fichero
(o funció n) para que sea fá cilmenente localizable.< / li >
< li class = "spaced" > Utilice el mecanismo 'sesskey' para proteger el enví o de
formularios de ataques. Un ejemplo de uso: cuando el formulario es generado,
incluya < code > < input
type="hidden" name="sesskey" value="< ?php
echo sesskey(); ?> " /> < / code > .
Cuando el formulario es procesado, compruebe < code > if (!confirm_sesskey())
{error('Bad Session Key');}< / code > .< / li >
< li class = "spaced" > Todos los nombres de ficheros deben ser 'limpiados' utilizando
la funció n < code > clean_filename()< / code > ,
si esto no ha sido realizado con el uso de las funciones < code > required_param()< / code > o < code > optional_param()< / code >
con anterioridad. < / li >
< li class = "spaced" > Cualquier informació n leí da desde la base de datos debe
tener la funció n < code > addslashes()< / code > aplicada antes de volver
a enviar la informació n a la base de datos. Un objeto completo puede ser
procesado con la funció n < code > addslashes_object()< / code > .< / li >
< li class = "spaced" > Cuando sea posible, la informació n que se almacenará en
la base de datos debe venir de peticiones < code > POST< / code >
(por ejemplo, informació n de un formulario) en lugar de utilizar peticiones < code > GET< / code > (por
ejemplo, informació n de la URL).< / li >
< li class = "spaced" > No utilice informació n obtenida de < code > $_SERVER< / code > si
puede evitarlo. Presenta algunos problemas de portabilidad.< / li >
< li class = "spaced" > Si no ha sido realizado en ningú n otro lugar, asegurese
de que la informació n enviada a la base de datos ha sido filtrada mediante
la funció n < code > clean_param()< / code > utilizando la opció n PARAM_XXXX
apropiada.< / li >
< li class = "spaced" > Si escribe có digo SQL, asegurese completamente de que es
correcto. En particular, compruebe la falta de comillas en las variables
utilizadas.
Es un punto de entrada para ataques de tipo
'SQL injection'.< / li >
< li class = "spaced" > Compruebe toda la informació n (especialmente la que es enviada
a la base de datos) en < strong > cada< / strong >
archivo que es utilizada. Nunca confí e en que otro có digo estará haciendo
ese trabajo.< / li >
< li class = "spaced" > Los bloques de có digo que se incluyan deben presentar una
estructura PHP correcta (por ejemplo, con una declaració n de una clase,
de funció nes, etc.) -
los bloques de có digo lineales (" espagueti" ) suelen tender a utilizar variables
sin inicializar (y son menos legibles).< / li >
< / ol >
2005-02-06 20:24:57 +00:00
< hr / >
< p align = "center" > < font size = "1" > < a href = "." target = "_top" > Documentació n de Moodle< / a > < / font > < / p >
< p align = "center" > < font size = "1" > Version: $Id$< / font > < / p >
2004-07-08 21:10:56 +00:00
< / body >
< / html >