[LARAVEL] Classi View e Redirect
[LARAVEL] Classi View e Redirect
Salve forum, non mi è molto chiara una definizione.
"Le classi View e Redirect derivano dall'oggetto Response. L'oggetto Response è l'istanza di una classe che può essere passata a Laravel come risultato di una clousure oppure di una action. Gli oggetti response normalmente contengono un corpo, un codice di status e gli header HTTP."
L'oggetto Response e l'istanza della classe Response. Mentre View e Redirect derivando dall'oggetto Response ereditano la classe Response giusto?
"Le classi View e Redirect derivano dall'oggetto Response. L'oggetto Response è l'istanza di una classe che può essere passata a Laravel come risultato di una clousure oppure di una action. Gli oggetti response normalmente contengono un corpo, un codice di status e gli header HTTP."
L'oggetto Response e l'istanza della classe Response. Mentre View e Redirect derivando dall'oggetto Response ereditano la classe Response giusto?
Re: [LARAVEL] Classi View e Redirect
Non faresti prima ad andare a vedere il codice? Di che classi View e Redirect stai parlando?
Se non metti i namespace o un minimo di contesto come si fa ad aiutarti?
Le uniche classi View e Redirect che si trovano nello stesso namespace sono quelle del namespace Illuminate\Support\Facades ed estendono direttamente la classe astratta Facade
Se non metti i namespace o un minimo di contesto come si fa ad aiutarti?
Le uniche classi View e Redirect che si trovano nello stesso namespace sono quelle del namespace Illuminate\Support\Facades ed estendono direttamente la classe astratta Facade
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
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
Re: [LARAVEL] Classi View e Redirect
Zoff, lo so che a volte scoccio, ma voglio solo cercare di applicare la teoria ad oggetti al framework, per vedere se ho ben capito tutto.
Re: [LARAVEL] Classi View e Redirect
Ho dato uno sguardo. Il codice è questo:
Quindi dice: "Il metodo View::make() crea una nuova istanza di un oggetto response di classe View. Il parametro che viene passato è il nome della view stessa, senza estensione.
Codice: Seleziona tutto
<?php
// app/routes.php
Route::get ('/', function(){
return View::make('simple');
});
Re: [LARAVEL] Classi View e Redirect
Questi sono i motivi per cui preferisco Symfony a Laravel, nasconde troppa parte del codice e non ti fa capire una mazza.
Sarebbe accettabile se poi nella documentazione colmassero la lacuna ma non mi sembra sia così.
Polemiche a parte quel View non è la classe View ma è la Factory delle View (Illuminate\View\Factory.php) che restituisce un oggetto View (Illuminate\View\View.php).
Il controller poi quando riceve un oggetto View, che implementa l'interfaccia Rendable allora richiama il metodo render() per ottenere il risultato.
Come viene ottenuto il "risultato"? Interpretando la vie e un oggetto Response che viene poi tradotto in html.
Dove sta scritto tutto questo per Laravel? Non ne ho idea.
Come l'ho capito io? Il funzionamento è "simile" in Symfony e ho fatto "guessing".
Sarebbe accettabile se poi nella documentazione colmassero la lacuna ma non mi sembra sia così.
Polemiche a parte quel View non è la classe View ma è la Factory delle View (Illuminate\View\Factory.php) che restituisce un oggetto View (Illuminate\View\View.php).
Il controller poi quando riceve un oggetto View, che implementa l'interfaccia Rendable allora richiama il metodo render() per ottenere il risultato.
Come viene ottenuto il "risultato"? Interpretando la vie e un oggetto Response che viene poi tradotto in html.
Dove sta scritto tutto questo per Laravel? Non ne ho idea.
Come l'ho capito io? Il funzionamento è "simile" in Symfony e ho fatto "guessing".
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
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
Re: [LARAVEL] Classi View e Redirect
Grazie zoff. In realtà i controller sono ad uno step successivo. Qui si parla ancora di sole route.
Comunque grazie alla tua spigazione ho capito che non chiama semplicemente la view simple, ma crea un'istanza di un oggetto response di classe View e gli passa come parametro la view simple che viene "inserita" nell'oggetto.
Comunque grazie alla tua spigazione ho capito che
Codice: Seleziona tutto
return View::make('simple');
- SuperStep
- 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: [LARAVEL] Classi View e Redirect
allora, praticamente intende questo:
esiste una classe Response che astrae il concetto di risposta Http; Questa risposta puo' essere una View (Un'interfaccia HTML) oppure una Redirect (ovvero nella risposta Http e' presente un header che specifica a quale nuova pagina deve andare) oppure altre.
Ambedue le classi sono delle risposte Http, solo che si diversificano per la risposta generata.
Dal momento che Laravel utilizza il design Pattern Facade, alcuni oggetti come Response, View, Redirect, ... dovrebbero essere delle istanza statiche create dal ServiceProvider di laravel.
Diciamo che questo non ci interessa e che facciamo finta che siano dei semplici puntatori ad un'istanza di una classe (grossomodo e' cosi').
se noi andiamo a vedere i facades di view e redirect
poi ad esempio la classe view
notiamo che non estende l'oggetto risposta, semplicemente utilizza l'interfaccia Render per "interpretarne" il tipo.
il motivo credo risieda nel fatto che noi possiamo restituire ogni sorta di cosa con laravel, tipo:
credo Route passi la clousure ad una funzione che la wrappa, e se questa e' un'istanza di renderable allora passa a fare quello di cui ha bisogno una View o una Redirect oppure una Response generica o qualsiasi altra cosa...
se invece restituisci un oggetto json magari lo costruisce, non so', devo guardare.
esiste una classe Response che astrae il concetto di risposta Http; Questa risposta puo' essere una View (Un'interfaccia HTML) oppure una Redirect (ovvero nella risposta Http e' presente un header che specifica a quale nuova pagina deve andare) oppure altre.
Ambedue le classi sono delle risposte Http, solo che si diversificano per la risposta generata.
Dal momento che Laravel utilizza il design Pattern Facade, alcuni oggetti come Response, View, Redirect, ... dovrebbero essere delle istanza statiche create dal ServiceProvider di laravel.
Diciamo che questo non ci interessa e che facciamo finta che siano dei semplici puntatori ad un'istanza di una classe (grossomodo e' cosi').
se noi andiamo a vedere i facades di view e redirect
Codice: Seleziona tutto
<?php namespace Illuminate\Support\Facades;
/**
* @see \Illuminate\View\Factory
*/
class View extends Facade {
/**
* Get the registered name of the component.
*
* @return string
*/
protected static function getFacadeAccessor() { return 'view'; }
}
---
<?php namespace Illuminate\Support\Facades;
/**
* @see \Illuminate\Routing\Redirector
*/
class Redirect extends Facade {
/**
* Get the registered name of the component.
*
* @return string
*/
protected static function getFacadeAccessor() { return 'redirect'; }
}
---
Codice: Seleziona tutto
class View implements ArrayAccess, Renderable {
...
il motivo credo risieda nel fatto che noi possiamo restituire ogni sorta di cosa con laravel, tipo:
Codice: Seleziona tutto
Route::get('/', function(){ return "qualcosa"; });
se invece restituisci un oggetto json magari lo costruisce, non so', devo guardare.
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)
Re: [LARAVEL] Classi View e Redirect
Grazie SuperStep. Mi rileggerò e studierò quanto hai detto con calma. Devo ancora approfondire Laravel per capire tutto bene
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 8 ospiti