Post Top Ad

Your Ad Spot

jueves, 14 de mayo de 2020

PHP Include Vs Requiere


4 trucos brillantes que necesitas saber para la organización del código
Un objetivo que casi todos los ingenieros de software en la tierra, independientemente de la disciplina o el idioma al que se suscriban, tiene un objetivo común en mente. Esto es para mantener las cosas SECAS. Cuando decimos SECO, no estamos hablando del tipo de Desierto de Mojave DRY, estamos hablando de No repetir. Hmmm, espera, ¿no es ese DNRY? Ok, digamos que no te repitas. Tienes la idea. Vaya, hubo una repetición allí mismo, ¡veamos que todos debemos hacer un esfuerzo para mantenerlo SECO! En este punto del juego, tenemos todo tipo de cargadores automáticos, el maravilloso Proyecto Composer e innumerables marcos que se esfuerzan por ayudarnos a organizar y mantener algún tipo de arquitectura sensible que facilite mantener su código SECO. En este episodio de PHP Tutorial Adventure, veremos las funciones brillantes que los creadores de PHP idearon desde el principio para ayudarnos con este objetivo, y esas serían las funciones include, require, include_once y require_once. Sí, es probable que ya los haya usado, pero vale la pena profundizar más para asegurarse de que entendemos los puntos clave y las diferencias de cada enfoque. Vamos a entrar

Mantenlo SECO

Una de las grandes características de PHP es la capacidad de incluir código de otros archivos en otros archivos PHP. Ok, gran grito, probablemente estés pensando. Puede que tenga razón, pero esta es una característica importante porque es mediante el uso de este enfoque que nacen los fundamentos de la organización y reutilización del código. Vamos a ir a lo básico en este momento. Olvídese de frameworks, Composer y cualquier otro método avanzado que pueda estar utilizando. Volveremos al estilo basado en funciones de procedimiento ahora mismo. Imagina que tienes una página en tu sitio web y acabas de crear una función excelente que realiza un procesamiento realmente impresionante de los datos con los que estás trabajando. Ahora, dos meses después, en una sección completamente diferente del sitio web y la base de código, tiene la necesidad de procesar esos datos de la misma manera que lo hizo su función asesina original. ¿Vas a volver a escribir esa función? ¡Podrías, si recién estás comenzando, como todos nosotros lo hemos hecho! Sin embargo, una mejor manera sería incluir o requerir un archivo que contengacódigo de función al que le gustaría acceder. Tal vez su función tiene 30 líneas de largo. En este nuevo archivo, puede incluir el archivo en una línea y luego llamarlo en la siguiente, por así decirlo. 2 líneas vs 32 líneas es un buen retorno de la inversión. La falta de tipeo no solo es un factor motivador, sino qué sucede si encuentra un error en su función súper increíble unos meses después. Supongamos que ha pegado ese código de función en diez archivos PHP diferentes dentro de su sitio web. Adivina qué, Johnny, abre tu editor favorito y prepárate para un mantenimiento de código que adormece la mente porque ahora tendrás que arreglar ese error en 10 lugares diferentes. Sabes qué, Funk That . Nos aseguraremos de que no vuelva a suceder utilizando las técnicas aquí.

1. incluir ( $path)

Hay una cosa que aún no mencionamos sobre esta fantástica función. Esta útil función no es solo para incluir el código PHP, puede colocar lo que desee en el archivo que se va a incluir, como HTML. Imagine que su página impresionante utiliza algunos elementos comunes en la sección de encabezado, y tiene 10 páginas diferentes que usan los mismos datos de encabezado. ¡No necesita reinventar la rueda cada vez! Veamos cómo funciona esto.

yourawesomepage.php

Ahora, en lugar de escribir manualmente todos esos datos en la sección de cabecera en todas sus otras páginas, creemos un DRY Maker e incluyamos eso en su lugar.

the_dry_maker.php

Ahora, cuando creas tu otra página increíble, puedes hacerlo con estilo y gracia de la misma manera.
Tenga en cuenta que el archivo Dry Maker ni siquiera tiene PHP. Simplemente estamos usando PHP en el archivo de inclusión para incluir texto que no sea PHP del archivo de inclusión. Lo que esto significa es que cuando se ejecuta la función de inclusión, PHP esencialmente se cierra dentro de ella para que pueda importar datos que no sean de PHP. Esto también trae a colación el punto de que si desea incluir PHP del otro archivo, deberá asegurarse de volver a activar PHP en ese archivo. Veamos esto al incluir una función de ejemplo.

yourawesomepage.php

the_dry_maker.php

Manteniéndolo SECO desde hace mucho tiempo. © ® ™
¿Sabes qué Jim? Eres impresionante, dame un máximo de cinco!
¡Agradable! Ahora puede incluir el archivo The Dry Maker en cualquier página de su sitio web, y darle un máximo de cinco a quien quiera, sin necesidad de escribir una nueva función cada vez. Ahora, en este momento, podrías estar dando un puntaje máximo de cinco, pero ¿qué sucede una vez que comienzas a salvar el mundo? Ahora puede comenzar a ver el poder de la función de inclusión.

2. require ( $path)

Cuando miramos require vs include, puede parecer que son básicamente lo mismo. De hecho, PHP require y PHP include hacen todas las mismas cosas, excepto con la siguiente diferencia. Si require no puede encontrar el archivo que desea cargar, PHP generará un error fatal y el script se detendrá. En algunos casos esto puede tener sentido, pero en otros, no tanto. En el ejemplo anterior, usar include tiene sentido. Es genial dar choca esos cinco, pero probablemente no sea una misión crítica para nuestra aplicación. Entonces, si no podemos incluir el archivo The Dry Maker, la página aún intentará finalizar la ejecución. Ahora, como tratamos de llamar a una función en la página que hace referencia a una definición de función de otro archivo que ahora no está incluido, obtendremos un error. Sin embargo, el punto clave es que la inclusión en sí no causará una falla.database_funcs.phpEste es un código importante, tanto que su sitio no podría ejecutarse sin él. En este caso, requerir tiene sentido. Veamos esto en acción, cambiaremos el código en yourawesomepage.php para tener un error tipográfico para el archivo que estamos buscando. Luego probaremos el require vs include y veremos qué sucede.

exigir

  • (!) Advertencia: require (tthe_dry_maker.php): no se pudo abrir la secuencia: No existe tal archivo o directorio en C: wampwwwbootstrapsandboxyourawesomepage.php en la línea 16
  • (!) Error fatal: require (): Error de apertura requerida 'tthe_dry_maker.php' (include_path = '.; C: phppear') en C: wampwwwbootstrapsandboxyourawesomepage.php en la línea 16

incluir

  • (!) Advertencia: include (tthe_dry_maker.php): no se pudo abrir la secuencia: No existe tal archivo o directorio en C: wampwwwbootstrapsandboxyourawesomepage.php en la línea 16
  • (!) Advertencia: include (): Error al abrir 'tthe_dry_maker.php' para su inclusión (include_path = '.; C: phppear') en C: wampwwwbootstrapsandboxyourawesomepage.php en la línea 16
  • (!) Error fatal: Llamada a la función indefinida highfive () en C: wampwwwbootstrapsandboxyourawesomepage.php en la línea 17
¿Ver la diferencia? Con el requerimiento, el script se detiene en cuanto no puede encontrar el archivo y se produce un error fatal. Por el contrario, la inclusión solo arroja una advertencia cuando no puede encontrar el archivo. Más adelante en la página, sin embargo, cuando intentamos llamar a la función highfive, se produce un error fatal ya que no se puede llamar a una función que no está definida.

3. include_once ( $path)

Para mostrar la diferencia entre include e include_once, modifiquemos yourawesomepage.php para hacer múltiples llamadas de inclusión al mismo archivo de fabricante en seco con el que hemos estado trabajando para ver qué sucede. Luego intentaremos la misma prueba con include_once y discutiremos los resultados.

yourawesomepage.php

Salida de página

  • Manteniéndolo SECO desde hace mucho tiempo. © ® ™
  • ¿Sabes qué Jim? Eres impresionante, dame un máximo de cinco!
  • (!) Error fatal: no se puede volver a declarar highfive () (previamente declarado en C: wampwwwbootstrapsandboxthe_dry_maker.php: 13) en C: wampwwwbootstrapsandboxthe_dry_maker.php en la línea 16
Lo que sucede aquí es que la página funciona bien hasta que llega a la segunda declaración de inclusión. En ese punto, incluya pulls en el archivo y PHP ve que highfive se declara nuevamente. Este es un gran no no y se produce un error fatal. Ahora cambiemos el código para usar include_once.

yourawesomepage.php

Salida de página

  • Manteniéndolo SECO desde hace mucho tiempo. © ® ™
  • ¿Sabes qué Jim? Eres impresionante, dame un máximo de cinco!
  • ¿Sabes qué Jim? Eres impresionante, dame un máximo de cinco!
Excelente, sin errores! Verá que cuando usamos la instrucción include_once, ya no obtenemos el error fatal y la página se ejecuta perfectamente. ¿Porqué es eso? Esto se debe a que include_once agrega la ruta original a una matriz, y si ve que esa ruta intenta ser incluida nuevamente, la ignorará. Entonces, en este código anterior, cuando se alcanza la segunda instrucción include_once, PHP ahora sabe que la ruta proporcionada ya estaba incluida, por lo que la ignora. De esta manera, nunca hay ningún intento de redeclarar la función highfive, y todo funciona sin problemas.

4. require_once ( $path)

El último en nuestra lista de funciones brillantes dentro de PHP es la función require_once. Esta opción tiene las propiedades de la función require original, además del hecho de que, al igual que include_once, se ignorarán múltiples intentos de requerir el mismo archivo. Los 4 tienen aplicaciones específicas como puede ver, por lo que ahora sabe cuál es el mejor para sus aplicaciones.

La comida para llevar brillante

Estas son funciones simples en PHP, sin embargo, son increíblemente poderosas. ¿Qué es algo simple pero increíblemente poderoso? Así es, es brillante. Vimos cómo podemos usar el php include para incluir html especificando la ruta de inclusión al archivo en cuestión. Esto se puede usar para un encabezado o pie de página, y todo funciona como magia en el lado del servidor. Al observar php require vs php include, también aprendimos las diferencias de cómo pueden arrojar o no un error fatal y cuándo es mejor usarlos. Lo mismo puede decirse de php include_once vs php require_once.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas