Foros del Web » Programando para Internet » PHP »

tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice que no

Estas en el tema de tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice que no en el foro de PHP en Foros del Web. tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice que no, pero veo en videotutoriales y en otros libros cierran la ...
  #1 (permalink)  
Antiguo 08/10/2013, 23:39
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años, 1 mes
Puntos: 8
tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice que no

tengo una duda, se debe cerrar la etiqueta <?php
en algunos manuales dice que no, pero veo en videotutoriales y
en otros libros cierran la etiqueta de esta forma ?>

Entonces yo pregunto a todos, se debe cerrar si o no ya que para esto me crea una
gran confusion
  #2 (permalink)  
Antiguo 08/10/2013, 23:55
Avatar de giancarloffi  
Fecha de Ingreso: julio-2013
Mensajes: 63
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

depende si es puro php si gustas no lo cierras pero con html insertado hay que tener cuidado.
  #3 (permalink)  
Antiguo 09/10/2013, 00:01
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años, 1 mes
Puntos: 8
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Cita:
Iniciado por giancarloffi Ver Mensaje
depende si es puro php si gustas no lo cierras pero con html insertado hay que tener cuidado.
pero cuando lo inserto con un include a una pagina de html se debe cerrar o no
  #4 (permalink)  
Antiguo 09/10/2013, 00:05
Avatar de giancarloffi  
Fecha de Ingreso: julio-2013
Mensajes: 63
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

si te refieres a esto

<?php include "pagina .php" ?>

<HTML>

pues claro que ahi tienes que cerrarlo
  #5 (permalink)  
Antiguo 09/10/2013, 00:25
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años, 1 mes
Puntos: 8
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Cita:
Iniciado por giancarloffi Ver Mensaje
si te refieres a esto

<?php include "pagina .php" ?>

<HTML>

pues claro que ahi tienes que cerrarlo
por ejemplo
tengo la pagina index.php
Código PHP:
Ver original
  1. <?php include('llamado.php'); ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>Documento sin t&iacute;tulo</title>
  7. </head>
  8. <body>
  9. <?php echo $t;?>
  10. </body>
  11. </html>


y tengo la pagina llamado.php
entonces mi pregunta en esta pagina de llamado cierro
las etiquetas o la dejo sin cerrar
ya que la pagina index la va a llamar
Código PHP:
Ver original
  1. <?php
  2. $t="hola";
  3. ?>

yo veo que todos la cierran pero realmente no lo se
aunque hay algunos que dicen que no
  #6 (permalink)  
Antiguo 09/10/2013, 02:41
Avatar de giancarloffi  
Fecha de Ingreso: julio-2013
Mensajes: 63
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

pues si en la pagina llamado.php solo va eso que es puro php puedes dejarlo sin cerrar eso depende de ti, pero la mejor forma de averiguarlo es haciendo las pruebas
  #7 (permalink)  
Antiguo 09/10/2013, 03:14
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 7 meses
Puntos: 270
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Si el código al final de un fichero es PHP, no hay obligación de cerrar el tag.Básicamente, lo que quiere esto decir es que el parser de PHP considera como código PHP todo lo que hay entre <?php y , ?> ó final de fichero.
El motivo de no cerrar PHP al final de fichero, sirve para prevenir la existencia de espacios, retornos de línea u otros caracteres invisibles, que, si están fuera del contexto PHP, se consideran HTML, y son enviados al cliente.Si esos caracteres invisibles se envían cliente, y luego se intentan enviar cabeceras HTTP, aparece el típico error de "output already started".
  #8 (permalink)  
Antiguo 09/10/2013, 03:37
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años, 1 mes
Puntos: 8
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Cita:
Iniciado por giancarloffi Ver Mensaje
pues si en la pagina llamado.php solo va eso que es puro php puedes dejarlo sin cerrar eso depende de ti, pero la mejor forma de averiguarlo es haciendo las pruebas
me muestra error e dreamweaver me sale unas lineas amarillas
pienso que me esta diciendo que no se puede pero si se ejecuta
desde la pagina index.php

Código PHP:
Ver original
  1. <?php
  2. $t="hola";


index.php jalo este archivo
Código PHP:
Ver original
  1. <?php include('llamado.php'); ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>Documento sin t&iacute;tulo</title>
  7. </head>
  8. <body>
  9. <?php echo $t;?>
  10. </body>
  11. </html>
  #9 (permalink)  
Antiguo 09/10/2013, 07:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Tip: No uses dreamweaver, realmente si vas a programar de manera profesional es mejor usar un buen IDE que no te marque problemas por cosas tan simples.

Saludos.
  #10 (permalink)  
Antiguo 09/10/2013, 13:50
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años, 1 mes
Puntos: 8
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Cita:
Iniciado por dashtrash Ver Mensaje
Si el código al final de un fichero es PHP, no hay obligación de cerrar el tag.Básicamente, lo que quiere esto decir es que el parser de PHP considera como código PHP todo lo que hay entre <?php y , ?> ó final de fichero.
El motivo de no cerrar PHP al final de fichero, sirve para prevenir la existencia de espacios, retornos de línea u otros caracteres invisibles, que, si están fuera del contexto PHP, se consideran HTML, y son enviados al cliente.Si esos caracteres invisibles se envían cliente, y luego se intentan enviar cabeceras HTTP, aparece el típico error de "output already started".
pero porque en la mayoria de libros de prestigio
cierra la etiqueta y solo unos dicen que no,
aparte
en todos los videotutoriales veo que cierran esta etiqueta y
casi en ningún curso dice de no dejarlo abierto la etiqueta de php
¿ porque?

¿acaso cerrarlo es un error y nadie se da cuenta de esto?
  #11 (permalink)  
Antiguo 09/10/2013, 14:20
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

http://manual.zfdes.com/es/coding-st...ormatting.html
Es sobre Zend Framework pero creo que sirve

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #12 (permalink)  
Antiguo 09/10/2013, 14:42
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 7 meses
Puntos: 270
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Cita:
Iniciado por jor_0203 Ver Mensaje
pero porque en la mayoria de libros de prestigio
cierra la etiqueta y solo unos dicen que no,
aparte
en todos los videotutoriales veo que cierran esta etiqueta y
casi en ningún curso dice de no dejarlo abierto la etiqueta de php
¿ porque?

¿acaso cerrarlo es un error y nadie se da cuenta de esto?
Libros de prestigio...videotutoriales..
Te he dado un motivo concreto por el que no se hace.No, no es un error cerrarlo.Es opcional.Si es algo que te viene bien, lo haces.Si no te viene bien, no lo hagas.Si entiendes para qué sirve, y te puede servir, qué más da lo que digan los videotutoriales?
  #13 (permalink)  
Antiguo 09/10/2013, 15:14
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

no creo que se pueda decir que o se cierran o no se cierran, siempre habra que ver el flujo por lo cual no siempre tendra que ser igual a veces no podras dejarlas abiertas y a veces si podras .
  #14 (permalink)  
Antiguo 09/10/2013, 15:26
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 14 años, 5 meses
Puntos: 95
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Cita:
Iniciado por dashtrash Ver Mensaje
Libros de prestigio...videotutoriales..
Te he dado un motivo concreto por el que no se hace.No, no es un error cerrarlo.Es opcional.Si es algo que te viene bien, lo haces.Si no te viene bien, no lo hagas.Si entiendes para qué sirve, y te puede servir, qué más da lo que digan los videotutoriales?
Completamente de acuerdo,

Si no produce un problema tecnico no cerrar el <?php, entonces no lo cierres. Yo nunca lo cierro.

Si ves el codigo fuente de otros frameworks como Symfony, tampoco nunca lo cierran.

Porque? yo lo encuentro totalmente innecesario.
  #15 (permalink)  
Antiguo 09/10/2013, 15:33
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Nunca lo cierras???

entonces en un codigo asi como lo haces

Código PHP:
Ver original
  1. <?php
  2. $d = 'juan';
  3. ?>
  4. el usuario se llama <?php echo $d; ?>

supongo que me diras

Código PHP:
Ver original
  1. <?php
  2. $d = 'juan';
  3. echo 'el usuario se llama '.$d;

pero si no lo haces asi dime como lo harias y si lo harias asi eso es una mala practica mezclar codigo html y php
  #16 (permalink)  
Antiguo 09/10/2013, 15:39
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 14 años, 5 meses
Puntos: 95
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Asi como dije en mi mensaje:

Si no hay un problema tecnico, nunca lo cierro.

Obviamente, en el ejemplo que tu mencionas hay un problema tecnico/sintaxis, por lo que debo cerrarlo, pero si no tengo porque cerrarlo, entonces no lo hago. Cuestion de gusto.


Cita:
Iniciado por webankenovi Ver Mensaje
Nunca lo cierras???

entonces en un codigo asi como lo haces

Código PHP:
Ver original
  1. <?php
  2. $d = 'juan';
  3. ?>
  4. el usuario se llama <?php echo $d; ?>

supongo que me diras

Código PHP:
Ver original
  1. <?php
  2. $d = 'juan';
  3. echo 'el usuario se llama '.$d;

pero si no lo haces asi dime como lo harias y si lo harias asi eso es una mala practica mezclar codigo html y php
  #17 (permalink)  
Antiguo 09/10/2013, 15:51
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 7 meses
Puntos: 270
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Repito, no es sólo una cuestión de gusto.Previene que caracteres en blanco extra al final de ficheros, inicien la salida HTML por lo que no es posible enviar posteriormente cabeceras.
Por eso, los ficheros donde nunca cierro con ?>, son en los ficheros de configuración.Se cargan antes que cualquier otra cosa.Un simple "enter" al final del fichero, o un espacio, puede darte un pequeño problema, que así te ahorras.
En un fichero cargado una vez que la salida HTML ya se ha iniciado, es cuando es simplemente una cuestión de gusto.
  #18 (permalink)  
Antiguo 09/10/2013, 16:00
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 14 años, 5 meses
Puntos: 95
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Cita:
Iniciado por dashtrash Ver Mensaje
Repito, no es sólo una cuestión de gusto.Previene que caracteres en blanco extra al final de ficheros, inicien la salida HTML por lo que no es posible enviar posteriormente cabeceras.
Por eso, los ficheros donde nunca cierro con ?>, son en los ficheros de configuración.Se cargan antes que cualquier otra cosa.Un simple "enter" al final del fichero, o un espacio, puede darte un pequeño problema, que así te ahorras.
En un fichero cargado una vez que la salida HTML ya se ha iniciado, es cuando es simplemente una cuestión de gusto.
El unico IDE que tiene ese problema (y creo que ya lo solucionaron) es DreamWeaver.

Yo utilizo capifony/capistrano para mis deploys, cuando tienes tu presentacion y tu logica separada, el problema que tu mencionas simple y sencillamente no sucede.

Ahi la cuestion realmente ya no es de si es bueno o malo cerrar o no el script php, sino mejorar tu conocimiento de arquitectura de aplicaciones (y no hablo de TU conocimiento especificamente, sino en general).
  #19 (permalink)  
Antiguo 09/10/2013, 18:40
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años, 1 mes
Puntos: 8
Cita:
Iniciado por dashtrash Ver Mensaje
Libros de prestigio...videotutoriales..
Te he dado un motivo concreto por el que no se hace.No, no es un error cerrarlo.Es opcional.Si es algo que te viene bien, lo haces.Si no te viene bien, no lo hagas.Si entiendes para qué sirve, y te puede servir, qué más da lo que digan los videotutoriales?
que buen aporte genial
gracias

Cita:
Iniciado por AlanChavez Ver Mensaje
Completamente de acuerdo,

Si no produce un problema tecnico no cerrar el <?php, entonces no lo cierres. Yo nunca lo cierro.

Si ves el codigo fuente de otros frameworks como Symfony, tampoco nunca lo cierran.

Porque? yo lo encuentro totalmente innecesario.
muy buen aporte

Cita:
Iniciado por webankenovi Ver Mensaje
no creo que se pueda decir que o se cierran o no se cierran, siempre habra que ver el flujo por lo cual no siempre tendra que ser igual a veces no podras dejarlas abiertas y a veces si podras .
me puedes dar un ejmplo de los dos casos por favor

Cita:
Iniciado por AlanChavez Ver Mensaje
El unico IDE que tiene ese problema (y creo que ya lo solucionaron) es DreamWeaver.

Yo utilizo capifony/capistrano para mis deploys, cuando tienes tu presentacion y tu logica separada, el problema que tu mencionas simple y sencillamente no sucede.

Ahi la cuestion realmente ya no es de si es bueno o malo cerrar o no el script php, sino mejorar tu conocimiento de arquitectura de aplicaciones (y no hablo de TU conocimiento especificamente, sino en general).
muy interesante
gracias

Última edición por GatorV; 10/10/2013 a las 07:19
  #20 (permalink)  
Antiguo 10/10/2013, 01:26
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 7 meses
Puntos: 270
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Cita:
Iniciado por AlanChavez Ver Mensaje
El unico IDE que tiene ese problema (y creo que ya lo solucionaron) es DreamWeaver.

Yo utilizo capifony/capistrano para mis deploys, cuando tienes tu presentacion y tu logica separada, el problema que tu mencionas simple y sencillamente no sucede.

Ahi la cuestion realmente ya no es de si es bueno o malo cerrar o no el script php, sino mejorar tu conocimiento de arquitectura de aplicaciones (y no hablo de TU conocimiento especificamente, sino en general).
No entiendo qué tiene que ver qué IDE usas, con arquitectura de aplicaciones..Y qué tiene que ver la separación de presentación y lógica, con lo que estoy diciendo...Y, finalmente, si tienes la suerte de permitirte el lujo de siempre editar PHP desde dentro de un confortable IDE, estupendo..Pero eso no sustituye el conocimiento del lenguaje y del por qué de las cosas (o si..?)
  #21 (permalink)  
Antiguo 10/10/2013, 04:36
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Aparte de lo que menciona dashtrash acerca de prevenir errores con encabezados, no recuerdo donde fue que vi una sugerencia de marcar el final del archivo con un comentario, simplemente para asegurarnos de que la falta del ?> es intencionada y no un error.

Ejemplo:
Código PHP:
Ver original
  1. <?php
  2. echo 'Hola mundo!';
  3.  
  4. // EOF;

Por supuesto, en este caso da lo mismo si se usa el cierre de PHP o no, porque ya hay una salida previa, pero yo ya me acostumbré a no cerrar e incluir siempre ese comentario.
__________________
- León, Guanajuato
- GV-Foto
  #22 (permalink)  
Antiguo 10/10/2013, 06:11
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 14 años, 5 meses
Puntos: 95
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Cita:
Iniciado por dashtrash Ver Mensaje
No entiendo qué tiene que ver qué IDE usas, con arquitectura de aplicaciones..Y qué tiene que ver la separación de presentación y lógica, con lo que estoy diciendo...Y, finalmente, si tienes la suerte de permitirte el lujo de siempre editar PHP desde dentro de un confortable IDE, estupendo..Pero eso no sustituye el conocimiento del lenguaje y del por qué de las cosas (o si..?)
Tiene que ver que el problema que describes solo sucede cuando transfieres archivos a traves de protocolos como FTP o utilizando IDEs que tocan tu código sin que tú te des cuentas.

Que tiene que ver la arquitectura de aplicaciones? Caray....

Que si tienes tu logica separada de tu aplicacion, no tienes que utilizar cosas como:
Código PHP:
<table>
<?php
// conexion a la base de datos
// manejo de sesiones / cookies
// mas logica que no tiene porque estar aqui
// un ciclo while/for
?>
<tr>
   <td></td>
</tr>
<?php cerrar mi while, mas codigo que no tiene porque ir aqui?>
</table>
Si obviamente en algun momento vas a tener que utilizar un <?= ?> y cerrar esa etiqueta, sino vas a tener error de sintaxis y es lo que escribi al principio:

"A menos de que forzosamente tenga que cerrarla, simplemente no lo hago"

¿Por qué? Porque no tiene caso.

Y no no es ninguna suerte ni ninguna fortuna editar mi PHP en un buen editor.

Eclipse + PDT es completamente gratuito y facil de instalar,
Sublime Text 2 tambien es gratuito.
Notepad++ es gratuito

si la gente utiliza Dreamweaver para escribir en PHP es por ignorancia pura.

La gente deberia solamente subir su codigo por FTP solo si su servidor no les permite conexiones ssh

Si la gente supiera de comandos como ob_start(), el error que describes NO SUCEDERIA.

Si la gente supiera de HEREDOCs, el error que describes NO SUCEDERIA.

Asi que cuando la gente dice "es que se puede colar un caracter al final de tu archivo" simplemente me dice que es un problema con sus practicas de transferir el codigo de un lugar a otro, me dice que probablmenete no utiliza control de versiones, ni un buen IDE que detecte y corrija eso al escribir los archivos, y sobretodo que hay un factor externo que toca el codigo del programador sin la autorizacion del programador.

Porque PHP no inserta un caracter alfinal del archivo nadamas porque si, ¿o si?
  #23 (permalink)  
Antiguo 10/10/2013, 07:09
 
Fecha de Ingreso: noviembre-2008
Ubicación: Cochabamba Bolivia
Mensajes: 519
Antigüedad: 16 años
Puntos: 26
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Y tanto cuesta cerrarlo? yo siempre lo cierro y asi me evito posibles errores, o cual es la "gran" diferencia entre cerrar o no, ¿consume muchos recursos?
  #24 (permalink)  
Antiguo 10/10/2013, 07:15
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 14 años, 5 meses
Puntos: 95
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Cita:
Iniciado por fido-strike Ver Mensaje
Y tanto cuesta cerrarlo? yo siempre lo cierro y asi me evito posibles errores, o cual es la "gran" diferencia entre cerrar o no, ¿consume muchos recursos?
No es que cueste, simplemente no tiene caso hacerlo, porque PHP no lo requiere.

Incluso en frameworks como Zend, Symfony o Yii ni siquiera es permitido puede causar errores en la respuesta de un metodo a otro.

Aparte, es muy ingenuo pensar que solo porque cerraste el tag de PHP ya vas a evitar errores.

Por cierto, despues de volver a leer la conversacion, me di cuenta que todos tienen un poco entendimiento del error del espacio en blanco al final del archivo.

Cuando cierras la tag de PHP, y pones un espacio en blanco, tambien se genera el error que todos han mencionado, por lo tanto el unico argumento a favor de siempre cerrarlo, es falso.
  #25 (permalink)  
Antiguo 10/10/2013, 07:40
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 7 meses
Puntos: 270
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Cita:
Iniciado por AlanChavez Ver Mensaje
Tiene que ver que el problema que describes solo sucede cuando transfieres archivos a traves de protocolos como FTP o utilizando IDEs que tocan tu código sin que tú te des cuentas.
Y qué tiene que ver el protocolo FTP o los IDEs con la arquitectura de aplicaciones?

Cita:
Iniciado por AlanChavez Ver Mensaje
Que tiene que ver la arquitectura de aplicaciones? Caray....

Que si tienes tu logica separada de tu aplicacion, no tienes que utilizar cosas como:
....
Serie de cosas que no vienen al caso.

Cita:
Iniciado por AlanChavez Ver Mensaje
Y no no es ninguna suerte ni ninguna fortuna editar mi PHP en un buen editor.
...
Cosas que tampoco vienen al caso, y sigue sin tener nada que ver con arquitectura de aplicaciones.

Cita:
Iniciado por AlanChavez Ver Mensaje
Si la gente supiera de comandos como ob_start(), el error que describes NO SUCEDERIA.
Vaya, esto si tiene que ver con arquitectura de aplicaciones.El uso de ob_start, sobre todo para control de caracteres en blanco , y ni digo ya para hacer buffering de páginas completas, es una práctica horrenda, y que
de por sí, indica una mala arquitectura.Sí, ya sé que muchos frameworks lo hacen.

Cita:
Si la gente supiera de HEREDOCs, el error que describes NO SUCEDERIA.
No tiene nada que ver con lo que se dice.

Cita:
Asi que cuando la gente dice "es que se puede colar un caracter al final de tu archivo" simplemente me dice que es un problema con sus practicas de transferir el codigo de un lugar a otro, me dice que probablmenete no utiliza control de versiones, ni un buen IDE que detecte y corrija eso al escribir los archivos, y sobretodo que hay un factor externo que toca el codigo del programador sin la autorizacion del programador.
Sigo sin saber qué tiene que ver tu IDE, o si usas FTP o no, con la arquitectura de aplicaciones.A menos, claro, que confundas arquitectura de aplicaciones, con entorno de desarrollo, que es básicamente lo que está pasando aqui.

Y, exactamente, cuál es el problema de que lo que tú solucionas debido a un cierto entorno de desarrollo, se solucione usando características propias del lenguaje?
  #26 (permalink)  
Antiguo 10/10/2013, 07:54
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 14 años, 5 meses
Puntos: 95
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Cita:
Iniciado por dashtrash Ver Mensaje
Y qué tiene que ver el protocolo FTP o los IDEs con la arquitectura de aplicaciones?


Serie de cosas que no vienen al caso.


Cosas que tampoco vienen al caso, y sigue sin tener nada que ver con arquitectura de aplicaciones.


Vaya, esto si tiene que ver con arquitectura de aplicaciones.El uso de ob_start, sobre todo para control de caracteres en blanco , y ni digo ya para hacer buffering de páginas completas, es una práctica horrenda, y que
de por sí, indica una mala arquitectura.Sí, ya sé que muchos frameworks lo hacen.


No tiene nada que ver con lo que se dice.


Sigo sin saber qué tiene que ver tu IDE, o si usas FTP o no, con la arquitectura de aplicaciones.A menos, claro, que confundas arquitectura de aplicaciones, con entorno de desarrollo, que es básicamente lo que está pasando aqui.

Y, exactamente, cuál es el problema de que lo que tú solucionas debido a un cierto entorno de desarrollo, se solucione usando características propias del lenguaje?
Muchisimos IDEs viejos insertan una linea o un espacio en blanco al final del archivo (Algunas versiones de Dreamweaver lo hacían).

Ese espacio en blanco, produce los errores "Headers already sent".

La misma documentación de PHP recomienda no cerrar el tag de PHP porque es redundante:

http://php.net/basic-syntax.instruction-separation

Si no sabes ingles, te interpreto lo mas importante:

Cerrar el tag de PHP al final de un bloque de código es completamente opcional, y en algunos casos omitirlo te beneficia cuando utilizas "include()" o "require()" porque no encontraras espacios en blancos al final de los archivos.

ob_start mala practica?

ob_start puede aumentar la carga de tu sitio si utilizas compresión GZIP.

O como explicas la siguiente instrucción?
ob_start("ob_gzhandler");

La única desventaja que le veo a output buffering es que los headers se mantienen en el servidor en lugar de ser enviados inmediatamente, lo cual puede crear un overhead en la memoria.

El otro "problema" es simplemente ignorar que tan grande es tu buffer, y cualquier excepción o error va a hacer que pierdas toda la información que esta en tu buffer.

Otro "problema" de output buffering es que algunos programadores utilizan flush(); en el momento incorrecto. Si vas a mezclar codigo de PHP con HTML, entonces lo recomendable es poner el metodo flush() despues del tag </head> de HTML, de esta manera los navegadores pueden empezar a descargas los recursos de tu pagina en paralelo mientras tu backend sigue trabajando. Asi que no me vengas a decir que ob_start es mala practica.

Zend utiliza output buffering casi para todo, y los errores "headers already sent" no suceden si sigues las buenas practicas de programación, la cual una de ellas es NO CERRAR EL TAG DE PHP.

Aqui esta mira, por si no me crees:
http://framework.zend.com/manual/1.1...ormatting.html

THE CLOSING ?> PHP TAG IS NEVER PERMITTED.

Mas claro ni el agua.

Última edición por AlanChavez; 10/10/2013 a las 08:07
  #27 (permalink)  
Antiguo 10/10/2013, 09:15
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 7 meses
Puntos: 270
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Cita:
Iniciado por AlanChavez Ver Mensaje
Muchisimos IDEs viejos insertan una linea o un espacio en blanco al final del archivo (Algunas versiones de Dreamweaver lo hacían).
..y más asuntos de IDE's...
Cita:
Iniciado por AlanChavez Ver Mensaje
Cerrar el tag de PHP al final de un bloque de código es completamente opcional, y en algunos casos omitirlo te beneficia cuando utilizas "include()" o "require()" porque no encontraras espacios en blancos al final de los archivos.
Ah, vaya, que PHP dice exactamente lo mismo..Pues nada, será que los de PHP también usan Dreamweaver, o pasan las cosas por FTP, etc,etc.

Cita:
Iniciado por AlanChavez Ver Mensaje
ob_start mala practica?

ob_start puede aumentar la carga de tu sitio si utilizas compresión GZIP.
Eso lo hace el servidor web por tí.



Cita:
Iniciado por AlanChavez Ver Mensaje
La única desventaja que le veo a output buffering es que los headers se mantienen en el servidor en lugar de ser enviados inmediatamente, lo cual puede crear un overhead en la memoria.
No exactamente.Los headers, en caso de que de lo que hagas output buffering, sea de los headers.Y si es de la página entera?Y por qué alguien querría hacer eso? (Pista: no siempre es por evitar espacios.Es por mala arquitectura de aplicación).

Cita:
Iniciado por AlanChavez Ver Mensaje
Otro "problema" de output buffering es que algunos programadores utilizan flush(); en el momento incorrecto. .....
Y qué relación tiene una cosa con la otra!?

Cita:
Iniciado por AlanChavez Ver Mensaje
Zend utiliza output buffering casi para todo, y los errores "headers already sent" no suceden si sigues las buenas practicas de programación, la cual una de ellas es NO CERRAR EL TAG DE PHP.
Entonces!?!? Me estás dando la razón!! x-D...Pero no dices que eso no es necesario si usas un IDE que automaticamente elimine los espacios???
ok, ya no entiendo nada.
  #28 (permalink)  
Antiguo 10/10/2013, 09:36
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 14 años, 5 meses
Puntos: 95
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Cita:
Iniciado por dashtrash Ver Mensaje
..y más asuntos de IDE's...

Ah, vaya, que PHP dice exactamente lo mismo..Pues nada, será que los de PHP también usan Dreamweaver, o pasan las cosas por FTP, etc,etc.


Eso lo hace el servidor web por tí.




No exactamente.Los headers, en caso de que de lo que hagas output buffering, sea de los headers.Y si es de la página entera?Y por qué alguien querría hacer eso? (Pista: no siempre es por evitar espacios.Es por mala arquitectura de aplicación).


Y qué relación tiene una cosa con la otra!?


Entonces!?!? Me estás dando la razón!! x-D...Pero no dices que eso no es necesario si usas un IDE que automaticamente elimine los espacios???
ok, ya no entiendo nada.
Si entendieras lo que escribi y dejaras de buscarle tres pies al gato, te darias cuenta que te di la razon desde mi primer comentario....

Cita:
Iniciado por AlanChavez Ver Mensaje
Completamente de acuerdo,

Si no produce un problema tecnico no cerrar el <?php, entonces no lo cierres. Yo nunca lo cierro.

Si ves el codigo fuente de otros frameworks como Symfony, tampoco nunca lo cierran.

Porque? yo lo encuentro totalmente innecesario.
  #29 (permalink)  
Antiguo 11/10/2013, 01:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: tengo una duda, se debe cerrar la etiqueta <?php en algunos manuales dice

Lamentablemente, nos estamos saliendo del tema que, por cierto, supongo que para jor_02003 ya debió quedar claro que no es necesario y, dependiendo de cada caso, hasta no recomendable usar el cierre ?>

Parece que más que querer ayudar a quien inició el tema estamos tratando de demostrar quien sabe más, pero mezclar gimnasia con magnesia no es algo que sirva realmente a la comunidad.

Demos por terminada la discusión y el malentendido que hubo aquí sin tomarlo a modo personal.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: cerrar, etiqueta, manuales
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 09:26.