[PHP]Collaction

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Schiavone
Prode Principiante
Messaggi: 27
Iscrizione: sabato 1 marzo 2014, 8:48

[PHP]Collaction

Messaggio da Schiavone »

Salve ragazzi, sto studiando Laravel. Fin qui tutto bene. Verso la fine del manuale comunque ho avuto un dubbio..

Codice: Seleziona tutto

Route::get('/', function()
{
$albums=Album::all();
var_dump($albums);
}
)
Nel manuale dice...

Il metodo all del model "Album" recupera tutti i record sulla tabella. Il metodo allnon ritorna un array ma una Collection. L'oggetto di tipo collection implementa un'interfaccia che permette agli oggetti di essere iterabili.

Qualcuno potrebbe chiarire?
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: [PHP]Collaction

Messaggio da SuperStep »

tieni presente che php non e' un linguaggio tipizzato, e come tale, una collezione di oggetti php differisce da una collezione di oggetti Java, quindi, non confonderti.

utilizzando la parola collection intende forse questo:

restituisce un array di istanze ad ogni modello di album.

quindi $albums e' effettivamente un array, dove ogni elemento, rappresenta l'istanza all'oggetto album estratto mediante Eloquent.
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Schiavone
Prode Principiante
Messaggi: 27
Iscrizione: sabato 1 marzo 2014, 8:48

Re: [PHP]Collaction

Messaggio da Schiavone »

Infatti... anche io avevo pensato alle collection in Java. Da quanto ho capito non è altro che un iterator che va a ciclare all'interno di una classe restituendone i valori. Ma devo approfondire. Se "risolvo" faccio sapere anche a beneficio di altri
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: [PHP]Collaction

Messaggio da SuperStep »

puoi ciclare con un semplice foreach($albums as $album) e becchi tutti gli album.
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP]Collaction

Messaggio da Zoff »

Le Collection in PHP sono uno strumento per effettuare il lazy-loading dei dati (es. dal DB).
Se si utilizzassero gli array si dovrebbero memorizzare in RAM tutti i dati, tramite le collection i dati vengono caricati solo quando vengono realmente utilizzati.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Schiavone
Prode Principiante
Messaggi: 27
Iscrizione: sabato 1 marzo 2014, 8:48

Re: [PHP]Collaction

Messaggio da Schiavone »

Grazie Zoff, per caso ti riferisci alla creazione essenziale delle istanze?

Comunque nel seguente manuale:

http://books.google.it/books?id=xs21zvs ... 06&f=false

al capitolo 5 viene descritta la classe Collection. E' questa la classe in cui si parla anche in Laravel?

Ho letto un tuo commento in cui dice che la guida su html.it relativa alla programmazione ad oggetti in php è mancante di alcuni argomenti recenti. Quali sono?

Grazie
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP]Collaction

Messaggio da Zoff »

Schiavone [url=http://forum.ubuntu-it.org/viewtopic.php?p=4599649#p4599649][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Grazie Zoff, per caso ti riferisci alla creazione essenziale delle istanze?

Comunque nel seguente manuale:

http://books.google.it/books?id=xs21zvs ... 06&f=false

al capitolo 5 viene descritta la classe Collection. E' questa la classe in cui si parla anche in Laravel?
Facendo riferimento alla terminologia di quel libro sì, la collection (tra le altre cose) permette la creazione essenziale delle istanze.
Quella di Lavarel a cui ti riferisci credo sia questa: http://laravel.com/api/class-Illuminate ... ction.html, cioè la collection utilizzata da Eloquent, l'ORM di Laravel.
Quella è l'implemenazione di Eloquent che non si può assumere minimamente collegata a quella del manuale che hai linkato.
In generale se non si parla esplicitamente di "pattern" o "paradigma" o non si fa riferimento ad una descrizione formale, il fatto che due classi o elementi abbiano lo stesso nome non significa nulla.
Schiavone [url=http://forum.ubuntu-it.org/viewtopic.php?p=4599649#p4599649][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: Ho letto un tuo commento in cui dice che la guida su html.it relativa alla programmazione ad oggetti in php è mancante di alcuni argomenti recenti. Quali sono?

Grazie
Sono diversi, in particolare tutte le novità a partire da PHP 5.3 (alcune anche di 5.2) e tutto quello che va oltre alla OOP di base.
In quella guida si parla unicamente dei concetti base di OOP comini a tutti i linguaggi e della sintassi per implementare quei concetti.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Schiavone
Prode Principiante
Messaggi: 27
Iscrizione: sabato 1 marzo 2014, 8:48

Re: [PHP]Collaction

Messaggio da Schiavone »

Quindi se voglio capire le collection nell'Eloquen orm di laravel leggere il capitolo 5 di quel manuale è inutile?

Quanto al resto ho visto che in molti manuali (anche in lingua inglese) sul Php la programmazione ad oggetti è trattata come la guida presente su html.it
Conosci un manuale che tratta l'OOP in Php in maniera più approfondita?
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP]Collaction

Messaggio da Zoff »

Schiavone [url=http://forum.ubuntu-it.org/viewtopic.php?p=4600040#p4600040][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Quindi se voglio capire le collection nell'Eloquen orm di laravel leggere il capitolo 5 di quel manuale è inutile?
Non è completamente inutile ma è come leggere il manuale di una McLaren mentre di deve mettere le mani su una Ferrari.
I concetti potrebbero essere quelli ma il modo in cui sono realizzati potrebbe essere completamente differente.
Schiavone [url=http://forum.ubuntu-it.org/viewtopic.php?p=4600040#p4600040][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: Quanto al resto ho visto che in molti manuali (anche in lingua inglese) sul Php la programmazione ad oggetti è trattata come la guida presente su html.it
Conosci un manuale che tratta l'OOP in Php in maniera più approfondita?
Hai già aperto una discussione sui manuali php e ce ne sono decine di altre. Usa la funzione cerca.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti