1. Con una cuenta podrás:

    • Publicar preguntas y pedir ayuda
    • Crear tutoriales
    • Acceder a contenido privado
    • Convertirte en un Héroe de la web
    Cerrar notificación
  2. Eres nuevo en la comunidad y necesitas ayuda?
    Sigue estos pasos y recomendaciones antes de publicar tu duda:
    Cerrar notificación

Tutorial PHP: Evitar los echo/printf [nivel basico]

Tema en 'Tutoriales de PHP' comenzado por AmalecHACK, 16 de Enero de 2015.

  1. AmalecHACK

    AmalecHACK Nuevo Miembro

    Se incorporó:
    16 de Enero de 2015
    Mensajes:
    12
    Me gusta recibidos:
    10
    Puntos de trofeos:
    3
    Género:
    Hombre
    Ocupación:
    Empresa de desarrollo web
    Localización:
    Chimbarongo, Chile
    Página web:
    ¿Has oído alguna vez a alguien decir "No uses tantos echo"?, hoy te explicaré de forma amigable ésto por lo que quizá varios aprendices de PHP pasan o hemos pasado.

    Resulta que cuando comencé a agarrarle el gusto a PHP comencé a ver videos para aprender más y con ello dí con cosas como los frameworks, a los cuales no me les acercaba porque ¿qué es un framework?, pues es una librería con código, algo hecho con el mismo lenguaje pero que ahorra tiempo y líneas de programación gracias a sus funciones y clases y todo el cuento... en fin, no quería aprender frameworks porque los veía inútiles siendo hechos con el mismo lenguaje, sin embargo trataba de ver videos para entender por qué eran tan esenciales y se hizo común escuchar críticas sobre la forma de imprimir datos, y luego de escucharlo una vez parece que todos comenzaban a criticar lo mismo... "no uses tantos echo"...

    En mi mente se hizo una confusión porque nadie explicaba qué usar en lugar de echos o printfs... ¿con qué imprimiría si no era con alguna sentencia para imprimir?... consulté a google, consulté en yahoo y nada... era como que todos hablaban de algo que para mi no existía explicación. Hasta que un día lo vi... por error en mi propio código:

    Termina PHP... HTML... empieza PHP otra vez...:eek: eso era todo!!??!!

    Yo era de los que había aprendido viendo tutoriales escritos algo así:
    PHP:
    <?php
    $title = "mi web";
    $contenido = "Hola mundo...";
    $link = "miweb.com";
    echo '
    <!doctype html>
    <html>
    <head>
    <title>'
    .$title.'</title>
    </head>
    <body>
    <ul>
    <li><a href="'
    .$link.'"></a></li> <!--enredo de comillas en cada enlace-->
    </ul>
    '
    .$contenido.'
    </body>
    </html>'
    ;

    ?>
    Entonces... me resultaba magia negra pensar que se podía hacer de otra forma... hasta que lo vi en mi propio código por error... algo más o menos así:

    PHP:
    <?php
    //Código PHP en ésta parte
    $titulo = "Mi web";
    $contenido = "Hola mundo";
    ?>
    <!doctype html>
    <html lang="es">
    <head>
    <meta charset="utf-8">
    <title><?php echo $titulo; ?></title>
    </head>
    <body>
    <?php echo $contenido; ?>
    </body>
    </html>
    <?php
    //agregamos código de cierre de sesiones o conexiones a base de datos o lo que estimemos conveniente.
    ?>
    Pero como en todo, hay reglas que seguir... o al menos yo tuve que adaptarme a algunas. Es necesario explicar que en un servidor local TODO funciona bien, pero los reales host tienen sus dramas... o al menos a veces ocurren los siguientes sucesos "paranormales" que nadie te enseña ni menciona y que a todos parece no ocurrirles porque buscas y buscas info. acerca de tu problema pero no encuentras nada más que alguna conclusión tuya tras pasar varios minutos re-editando todo:

    Bueno, les recomiendo que un documento .php comience con lineas en PHP en caso de que estemos trabajando con conexión a base de datos, con session, cookies, requiriendo archivos extras, o nuestro frontend solicite archivos de terceros. ¿por qué?, pues, me ha pasado que algos servidores con apache no logran interpretar bien el código cuando trabajas con sessions o cookies, en algunos casos ni muestran el contenido y se producen error_log (archivos que registran los errores del servidor) en los cuales se señalan errores internos del servidor (error 500). Aún no encuentro del todo una explicación lógica a ese "fenómeno", en algunas ocasiones ha sido error mío por programar siempre en la última versión de PHP pero en otros casos le cargo la culpa a que quizá alguna parte del frontend puede crear conflictos de cookies...

    En fin, sea error mio o no, les recomiendo comenzar siempre con lineas en PHP... Después de todo ¿Quién usa PHP con sessions o cookies sin conectarse a una base de datos?... por eso recomiendo que primero arranquen los session, llamen los archivos de conexión a la base de datos y luego hagan todo lo que tengan pensado.
    PHP:
    <?php
    session_start();
    require_once("mi_conexion.php");
    ?>
    <!doctype html>
    <html lang="es">
    ....... etc, etc
    OJO!: no inicien session si no los utilizarán, pues podría causar dramas y es mejor evitar cualquier cosa que pueda complicarnos.

    Así que esa este es mi pequeño pero largo aporte para quienes se inician en PHP... para evitar enredos con comillas especiales y concatenar variables, mejor usen la técnica de escribir el lenguaje de hipertexto maquetado fuera del PHP siempre que puedan.

    OJO!: pero cuando hagan proyectos para clientes que crees no volverás a ver, es mejor usar los echo xD así sea quien sea que tome el proyecto para modificarlo puede empezar por la parte básica, y aunque lo tome alguien poco experimentado, sabrá entenderlo, o deberá... jajajaja :cool:
     
    A FalconMasters le gusta esto.
  2. AyuukJaay

    AyuukJaay Miembro Activo

    Se incorporó:
    8 de Enero de 2015
    Mensajes:
    149
    Me gusta recibidos:
    69
    Puntos de trofeos:
    28
    Género:
    Hombre
    Página web:
    Cierto lo que dices usar echo en php es una mala practica, lo recomendable es no mezclar html con PHP ya que HTML es del lado del front y PHP es del lado del back. entonces la forma de lograr esto es que los datos viajen en formato JSON, y asi se evita el echo en el servidor.
    Request.
    CLIENTE =>Ajax=>PHP
    Response.
    PHP =>JSON=>CLIENTE (HTML)
    Saludos.
     
    A AmalecHACK y Creigthon les gusta esto.
  3. Maddenamy

    Maddenamy Miembro conocido

    Se incorporó:
    9 de Enero de 2015
    Mensajes:
    869
    Me gusta recibidos:
    498
    Puntos de trofeos:
    63
    Ocupación:
    Estudiante
    Localización:
    México
    Página web:
    De echo no seria necesario que pongas echo.
    Puedes ponerlo así.
    PHP:
    <title><?=$titulo?></title>
    Te ahorrarías escribir el "php echo". :D

    Saludos #maddenamy
     
    Última modificación: 16 de Enero de 2015
    A DarioNahuel y AmalecHACK les gusta esto.
  4. AmalecHACK

    AmalecHACK Nuevo Miembro

    Se incorporó:
    16 de Enero de 2015
    Mensajes:
    12
    Me gusta recibidos:
    10
    Puntos de trofeos:
    3
    Género:
    Hombre
    Ocupación:
    Empresa de desarrollo web
    Localización:
    Chimbarongo, Chile
    Página web:
    Tienes razón, ese es otro método útil, pero de todas formas hay servidores que tienen configuraciones extrañas y podría no siempre funcionar ._. Creeme que he visto algunos que hasta el header("Location") tienen desactivado :| hay proveedores que no saben lo que hacen :v jajaja xD
     
  5. AmalecHACK

    AmalecHACK Nuevo Miembro

    Se incorporó:
    16 de Enero de 2015
    Mensajes:
    12
    Me gusta recibidos:
    10
    Puntos de trofeos:
    3
    Género:
    Hombre
    Ocupación:
    Empresa de desarrollo web
    Localización:
    Chimbarongo, Chile
    Página web:
    Sinceramente no tengo muchos conocimietos de JSON, sería un agrado ver tus aportes para que nos eduques acerca del tema :D pls!
     
    A FalconMasters le gusta esto.
  6. FalconMasters

    FalconMasters
    Administrador
    Miembro del Equipo

    Se incorporó:
    6 de Enero de 2015
    Mensajes:
    392
    Me gusta recibidos:
    319
    Puntos de trofeos:
    63
    Género:
    Hombre
    Ocupación:
    Diseñador Web
    Página web:
    Es cierto, aunque no en todos lo servidores esta configurado, en mi caso no lo esta.
     
  7. FalconMasters

    FalconMasters
    Administrador
    Miembro del Equipo

    Se incorporó:
    6 de Enero de 2015
    Mensajes:
    392
    Me gusta recibidos:
    319
    Puntos de trofeos:
    63
    Género:
    Hombre
    Ocupación:
    Diseñador Web
    Página web:
    A AmalecHACK le gusta esto.

Comparte esta página