Dato questo codice dal framework Symfony :
use Symfony\Component\HttpFoundation\Request;
public function indexAction(Request $request)
{
$request->isXmlHttpRequest(); // is it an Ajax request?
$request->getPreferredLanguage(array('en', 'fr'));
// retrieve GET and POST variables respectively
$request->query->get('page');
$request->request->get('page');
// retrieve SERVER variables
$request->server->get('HTTP_HOST');
// retrieves an instance of UploadedFile identified by foo
$request->files->get('foo');
// retrieve a COOKIE value
$request->cookies->get('PHPSESSID');
// retrieve an HTTP request header, with normalized, lowercase keys
$request->headers->get('host');
$request->headers->get('content_type');
}
Penso che questo modo di accedere per esempio alle variabili GET e POST sia bello. Si chiama il metodo get () sull'oggetto query che fa parte dell'oggetto richiesta. Penso che il concetto di concatenamento dei metodi sia breve e piacevole. Tuttavia, conosco gli svantaggi di questo accoppiamento stretto. Qui, il mio controller rivendica molta conoscenza sul metodo dell'oggetto query. Cioè, quando l'oggetto query cambia il suo metodo, avrei bisogno di cambiare tutti questi script. Questi inconvenienti si manifestano nella legge di Demetra.
Quindi qual è la domanda? La mia domanda è, quando c'è così tanto descrizione delle "buone pratiche" come mai decidono tali framework popolari come Symfony contro alcune di queste regole. O interpreto male la legge di Demetra? Ho l'impressione che a volte le considerazioni sulla buona pratica di un grado dipendano dalle preferenze personali. Mi sbaglio?