Controller PHP MVC che utilizzano ajax

0

Sto imparando a utilizzare il pattern MVC per progettare il software del mio PHP. Io uso sempre ajax per inviare richieste ai miei controller così spesso ho una struttura di codice come questa:

<?php
if(isset($_POST['action']) && $_POST['action'] == 'something'){
// code goes here
}
?>

Ho letto vari articoli sul pattern MVC e tutti sembrano utilizzare controller che sono oggetti che interagiranno con la vista. Ho uno strano concetto della vista quando li progetto, preferisco creare markup html standard e, se necessario, includere alcuni oggetti php per interagire con i dati correlati estratti dal database, perché cerco di integrare jQuery ajax in quasi tutte le parti dei miei progetti. Questo approccio è sbagliato, quindi ho bisogno di spegnere ajax, per usare solo php e oop?

    
posta user9741470 19.07.2018 - 12:43
fonte

1 risposta

1

PHP consente di mixare il codice lato server e il codice lato client. Entrambi possono coesistere nello stesso file. Questa è la radice del tuo fraintendimento del pattern MVC.

Inserendo la logica lato server nello stesso file della logica lato client (le chiamate dell'API jQuery) non sei correttamente separando il tuo preoccupazioni . Separation of Concerns è il il concetto centrale dietro il modello Model-View-Controller.

Da Design Patterns - MVC Pattern : (enfasi, mia)

MVC Pattern stands for Model-View-Controller Pattern. This pattern is used to separate application's concerns.

  • Model - Model represents an object or JAVA POJO carrying data. It can also have logic to update controller if its data changes.

  • View - View represents the visualization of the data that model contains.

  • Controller - Controller acts on both model and view. It controls the data flow into model object and updates the view whenever data changes. It keeps view and model separate.

Ci sono casi d'uso per inserire il lato server e il codice lato client nello stesso file in PHP. Se hai una sceneggiatura semplice che vive da sola e non fa parte di qualcosa di più grande, allora questa strategia di programmazione può essere OK.

Questo è anche il motivo per cui PHP ha un brutto nome, ma questo è un modo di discutere oltre questo post.

Il tuo stile di codifica non è MVC. A seconda di ciò che stai costruendo, questo può essere OK.

Se vuoi aderire a MVC puoi comunque utilizzare AJAX. L'URL che risponde alla chiamata AJAX è solo un altro controller, che esegue il rendering di un'altra vista.

AJAX e MVC suonano molto bene insieme.

    
risposta data 19.07.2018 - 14:47
fonte

Leggi altre domande sui tag