Breaking

Post Top Ad

Your Ad Spot

martes, 29 de septiembre de 2020

Tutorial de colecciones de Laravel

 




Tomemos una aventura en un tutorial de colecciones de Laravel. DespuĆ©s de haber usado el marco de Laravel durante algĆŗn tiempo, me he acostumbrado a trabajar con sus diversas caracterĆ­sticas. Una de las cosas en las que he querido profundizar es el aspecto de Colecciones de Laravel. EstarĆ”s lidiando con colecciones de laravel todo el tiempo, y hasta este punto, tal vez seas como yo y descubras lo que necesitabas a medida que avanzaste. ¡No mĆ”s! Ahora nos convertiremos en maestros profesionales de Laravel Collection al sumergirnos en profundidad, hacer doble clic, profundizar o cualquier otra frase de moda que le gustarĆ­a usar en Laravel Collections.


La clase de colección

Antes incluso de comenzar a ver todos los mĆ©todos que podemos usar, veamos el archivo de clase en sĆ­Podemos ver que tiene todas estas declaraciones de uso en la parte superior.

Entonces, ¿quĆ© significan todos estos y de dónde vienen? Bueno, vamos a atacarlos uno por uno. Primero, tenemos use Countable;Con PHP Storm, podemos usar la prĆ”ctica herramienta "Ir a la declaración" para ver.

usar contable

Esto nos lleva SPL.phpy nos muestra la Countableinterfaz.

interfaz contable

¡Muy genial! Podemos ver que la interfaz Contable es parte de la Biblioteca PHP estĆ”ndar (SPL) . Al utilizar esta tĆ©cnica, podemos descifrar todas estas declaraciones de uso.


Biblioteca PHP estƔndar

utilizar Contable

usar ArrayIterator

usar CachingIterator

use InvalidArgumentException


Extensión PHP JSON

utilizar JsonSerializable


Interfaces y clases predefinidas de PHP

utilizar ArrayAccess

utilizar IteratorAggregate


Iluminar la interfaz de contratos

use Illuminate \ Contracts \ Support \ Jsonable

use Illuminate \ Contracts \ Support \ Arrayable

TambiĆ©n tenga en cuenta que la clase Collection vive en el espacio de nombres Illuminate \ Support Genial, sacamos las cosas administrativas del camino y sabemos lo que significa.


Probar los ejemplos de Laravel

La documentación de Laravel es fantĆ”stica y la usaremos como guĆ­a para este tutorial de colecciones. Al leer los documentos, podemos ver que para crear una colección, podemos usar el collectayudante conveniente para hacerlo. Ahora que no soy tan bueno para aceptar que las cosas simplemente funcionan, cuando no sĆ© cómo funcionan, incluso debo indagar en cómo funciona este ayudante. Si nos ponemos nuestra gorra de detective, podemos ver que viene directamente de este código aquĆ­ .

El helpers.phparchivo tiene una use Illuminate\Support\Collection;declaración en la parte superior, por lo que nuestra función auxiliar puede crear una nueva Collectionpara nosotros usando este fragmento.

Nueva colección

Con nuestro nuevo conocimiento de esta conveniente función de ayuda, permítanos crear una Colección Laravel para divertirnos y obtener ganancias.

Como puede ver, ahora tenemos una colección con la que podemos trabajar. Una de las primeras cosas que se explicarĆ”n en la documentación es cómo mapear cada elemento de la colección y aplicarle una función mientras se rechazan los valores que no especifican un criterio determinado. Usando este ejemplo, echemos un vistazo a nuestra propia colección de sitios. Cambiaremos el formato de todas las URL para incluir un prefijo www mientras eliminamos cualquier URL que contenga la palabra facebook. Vamos a intentarlo.

¡Frio! Tenga en cuenta que en esta iteración, hacemos uso de la interfaz fluida. ¿QuĆ© significa ser fluido? Todo lo que significa es que puede encadenar comandos para obtener el resultado deseado. Es como encadenar mĆ©todos en jQuery. Aplicamos dos mĆ©todos a la colección para lograr nuestro resultado deseado. mapa y rechazo . Dentro de lamapiteración, aplicamos lastr_replacefunción a cada elemento de la colección, eliminando http: // y reemplazĆ”ndolo por http: // www. Durante larejectiteración usamos el mĆ©todo auxiliar de Laravel str_contains para filtrar cualquier elemento que contenga la palabra facebookTenga en cuenta que la expresión debe ser igual a verdadera para que el rejectmĆ©todo elimine el elemento. AsĆ­ que casi podemos leer esto como, si la cadena contiene facebook, entonces lo rechazamos. Podemos ver en la captura de pantalla anterior que obtuvimos el resultado deseado.


Los métodos de colección de Laravel

Con una comprensión bÔsica de lo que es una colección de Laravel, veamos ahora todos los métodos disponibles uno por uno.


1. todos ()

La clase Collection tiene una propiedad protegida denominada $itemsque contiene una matriz. De esto se construye la Colección. El all()mĆ©todo simplemente devuelve esa propiedad. Esto es Ćŗtil si desea cambiar una colección de Laravel en una matriz PHP nativa.

Al probar esto en nuestra propia pequeña colección, podemos ver que se nos devuelve la matriz en la que se basa la colección.


2. avg ()

El avgmĆ©todo hace exactamente lo que crees que harĆ­a, calcula el promedio de una colección. AquĆ­ estĆ” el código que lo impulsa.

Podemos hacer uso de él en una colección estrictamente numérica como tal.

TambiĆ©n puede proporcionar una clave a la que aplicar el promedio. En el ejemplo de una matriz asociativa, necesitarĆ­a hacer esto.

La visita promedio de Starbucks le costarĆ” $ 3.56.


3. trozo ()

Nunca encontrĆ© mucho uso para chunk hasta que leĆ­ la documentación, que tiene un gran caso de uso. Como era de esperar, chunk toma un grupo de cosas y lo divide en grupos mĆ”s pequeƱos. El caso de uso que menciona la documentación trata con una cuadrĆ­cula de Bootstrap, por ejemplo. Si alguna vez ha tenido una cuadrĆ­cula llena de elementos y se encuentra recorriendo un conjunto de resultados y luego verificando el valor de un iterador para determinar dónde terminar una fila, ¡este es para usted! De hecho, este es para mĆ­, ¡ya que hago esto todo el tiempo! En lugar de preocuparse por esto, simplemente use chunk () en su lugar. AsĆ­ es como funciona.

Tenga en cuenta el uso de la función PHP array_chunk () .

Probarlo por nosotros mismos produce estos resultados.

Al recorrer los resultados fragmentados, tenga en cuenta que necesitarĆ” un foreach anidado ya que ahora tiene una colección de colecciones mĆ”s pequeƱas. Por lo tanto, debe recorrer cada fragmento y luego recorrer el contenido de cada fragmento individualmente.


4. colapso ()

Este mƩtodo hace uso de una llamada a un mƩtodo estƔtico como vemos aquƭ.

El código al que hace referencia estÔ aquí.

Tome nota especial de la función PHP array_merge () .

Aquƭ estƔ nuestra pequeƱa prueba rƔpida del colapso.

Antes del colapso.

DespuƩs del colapso.


5. contiene ()

¿CuĆ”ntas veces necesita verificar si una matriz contiene un valor? Todo el tiempo, ¿verdad? El prĆ”ctico mĆ©todo contains en Laravel Collections hace que sea fĆ”cil de hacer cuando se trabaja con una matriz que ha sido recopilada.

El contiene código.

En primer lugar, podemos ver que el código hace uso del PHP nativo func_get_args () . El mĆ©todo data_get () es un mĆ©todo auxiliar personalizado en el marco de trabajo illuminate. Finalmente, podemos ver que in_array () se pone en uso. Visite cada uno de los enlaces anteriores uno por uno para asegurarse de que comprende cada paso del proceso.

Probar contiene () con la siguiente colección.

Parece que el método contiene solo verifica el valor, no la clave de la colección.

Al pasar una cadena vacƭa como segundo parƔmetro, puede verificar la existencia de una clave especƭfica.

Puede pasar dos parĆ”metros de manera sensible a mayĆŗsculas y minĆŗsculas para verificar la existencia de un par clave-valor. Tenga en cuenta que esto solo se aplica a las colecciones anidadas, por lo que el fragmento anterior funciona, pero el fragmento siguiente no.

Para ser un poco mĆ”s granular, puede hacer uso de su propia función de devolución de llamada. Echale un vistazo.

No hay ninguna clave con el nombre de hiphop en nuestra colección. Sin embargo, tenemos un valor NSX en la colección, de ahĆ­ el retorno de verdad. Esto tambiĆ©n nos permite buscar un par clave-valor en una colección plana como esta.


6. contar ()

Simple pero Ćŗtil, contar hace exactamente lo que dice, cuenta la cantidad de elementos de la colección. ¿Como funciona? Como asĆ­.

El mĆ©todo usa la función nativa de PHP count () . Entonces, en la clase Colección Laravel, simplemente miramos la propiedad $ items y devolvemos la cantidad de elementos que contiene. Observa nuestro ejemplo.


7. diff ()

Este mĆ©todo hace uso de array_diff () para comparar matrices. Este es el código que lo hace funcionar.

Por ejemplo, imagine que un candidato tiene una variedad de empresas para las que le gustarĆ­a trabajar. Ella necesita comparar esto con una variedad de empresas que actualmente no estĆ”n contratando, luego tratar de entrevistar solo a aquellas que estĆ”n contratando. ¿Cómo podrĆ­a hacer esto?


8. cada uno ()

Este método le permite aplicar una devolución de llamada a cada elemento de la colección y se alimenta con este código.

Por ejemplo, tendremos una colección de nĆŗmeros. Siempre que el nĆŗmero sea menor que 5, usaremos una devolución de llamada para cuadrarlo.

El mismo resultado con un foreach se llevarĆ­a a cabo asĆ­:

Ya ve, each()solo agregue un poco de azĆŗcar para que pueda codificar en un estilo mĆ”s moderno si lo prefiere. Elige tu veneno.


9. cada ()

Este mĆ©todo interesante se asoma a su colección y crea una nueva colección en cada enĆ©simo elemento que especifique. La fuente estĆ” aquĆ­.

A medida que probamos todos los métodos, podemos ver cómo funciona.

Al pasar un desplazamiento, podemos cambiar el punto de partida para contar.