Tutorial PHP MVC Framework: esempio CodeIgniter

Sommario:

Anonim

Cos'è il framework PHP MVC?

PHP MVC è un modello di progettazione dell'applicazione che separa i dati dell'applicazione e la logica di business (modello) dalla presentazione (vista). MVC sta per Model, View & Controller.

Il controller media tra i modelli e le visualizzazioni.

Pensa al modello di progettazione MVC come a un'auto e al conducente.

L'auto ha i parabrezza (vista) che il conducente (controller) utilizza per monitorare il traffico che precede, quindi la velocità o il freno (modello) a seconda di ciò che vede davanti.

Perché utilizzare PHP MVC Framework?

  • I framework PHP MVC semplificano il lavoro con tecnologie complesse tramite;
    • Nascondere tutti i dettagli di implementazione complessi
    • Fornire metodi standard che possiamo utilizzare per creare le nostre applicazioni.
    • Aumento della produttività degli sviluppatori, questo perché l'implementazione di base di attività come la connessione al database, la sanificazione dell'input dell'utente, ecc. Sono già parzialmente implementate.
    • Adesione a standard di codifica professionale

In questo tutorial imparerai-

  • PHP MVC Design Pattern
  • Tipi di framework PHP MVC
  • Portare l'applicazione del sondaggio d'opinione su CodeIgniter
  • Impostazioni di configurazione del database
  • Creare il nostro modello
  • Creare le nostre opinioni
  • Testare la nostra applicazione

PHP MVC Design Pattern

Discutiamo ora brevemente ogni componente del modello di progettazione MVC.

Modello : questa parte riguarda la logica aziendale e i dati dell'applicazione. Può essere utilizzato per eseguire convalide dei dati, elaborare i dati e archiviarli. I dati possono provenire da;

  • archivio base
  • Banca dati
  • Documento XML
  • Altre fonti di dati valide.

Controller : questa è la parte che si occupa delle richieste di risorse degli utenti dal server.

Ad esempio, quando gli utenti richiedono l'URL… /index.php?products=list, il controller caricherà il modello dei prodotti per recuperare i dati dei prodotti, quindi visualizzerà i risultati nella visualizzazione elenco.

In poche parole, il controller collega i modelli e le viste insieme a seconda delle risorse richieste.

Visualizzazioni : questa parte si occupa della presentazione dei dati all'utente. Di solito è sotto forma di pagine HTML.

Tipi di framework PHP MVC

Selezionare il miglior framework PHP è una sfida.

Non è necessario scrivere il proprio framework per beneficiare dei vantaggi di MVC.

Dovresti solo tentare di creare il tuo progetto di applicazione correlato a MVC per capire come funzionano i framework MVC.

Una volta che hai acquisito dimestichezza con il modo in cui funzionano i framework MVC, dovresti passare ai framework maturi e già testati.

La tabella seguente descrive brevemente alcuni dei popolari framework php e le caratteristiche che ogni framework offre.

Struttura Descrizione
CodeIgniter https://codeigniter.com/ È uno dei framework PHP MVC più popolari. È leggero e ha una breve curva di apprendimento. Ha un ricco set di librerie che aiutano a costruire rapidamente siti web e applicazioni. Possono utilizzarlo anche gli utenti con una conoscenza limitata della programmazione OOP. Le applicazioni alimentate da CodeIgniter includono;
  • https://www.pyrocms.com/
  • http://www.shopigniter.com/
Kohana http://kohanaframework.org Si tratta di un framework HMVC HMVC HMVC Hierarchical Model View Controller sicuro e leggero. Dispone di un ricco set di componenti per lo sviluppo rapido di applicazioni. Le aziende che utilizzano Kohana includono;
  • https://go.wepay.com/
  • https://kids.nationalgeographic.com/
  • https://www.sittercity.com/
CakePHP www.cakephp.org È modellato su Ruby su rotaie. È noto per concetti come modelli di progettazione software, convenzione sulla configurazione, ActiveRecord ecc. Le applicazioni alimentate da CakePHP includono;
  • http://invoicemachine.com/
  • http://www.fmylife.com/
www.framework.zend.com Zend È una struttura potente che è;
  • Sicuro, affidabile, veloce e scalabile
  • Supporta il Web 2.0 e la creazione di servizi web.
È dotato di API di fornitori come Amazon, Google, Flickr, Yahoo ecc. È ideale per lo sviluppo di applicazioni aziendali. Le applicazioni potenziate da Zend includono;
  • Pimcore CMS,
  • DotKernel.
Le aziende che utilizzano il framework Zend includono;
  • BBC
  • Cisco
  • Webex
  • Offerte.com

Portare l'applicazione del sondaggio d'opinione su CodeIgniter

In questo tutorial, abbiamo creato un'applicazione di sondaggio PHP. Qui, trasferiremo quel codice su CodeIgniter

  • Scarica l'ultima versione di CodeIgniter dal loro sito web.
  • Estrai il contenuto del file zippato nella tua directory di sviluppo nella directory del tuo server web. Useremo ciopinionpoll come nome della cartella in questa lezione.
  • Sfoglia l'URL http: // localhost / ciopinionpoll /

Ora trasferiremo la nostra applicazione per il sondaggio d'opinione su CodeIgniter. Ricordiamo che la nostra applicazione era divisa in tre componenti principali, vale a dire il;

  • Front controller: questa è la parte che risponde alle richieste di URL e restituisce la pagina richiesta. Questo codice andrà nel controller
  • Modello: questo è il codice che risponde ai dati richiesti e restituisce i dati richiesti. Questo codice entrerà nel modello
  • Visualizzazioni: questo è il codice responsabile della formattazione e della visualizzazione dei dati. Questo codice entrerà nella visualizzazione
    • Vai alla cartella ciopinionpoll
    • Apri il file database.php che si trova nella directory application / config.
    • Individua le seguenti righe di codice

Impostazioni di configurazione del database

  • Imposta il nome utente su root
  • Imposta la password sulla tua password di root dell'host locale
  • Nome del database in opinion_poll. Nota che useremo il database creato nella lezione precedente.
  • Salva le modifiche e chiudi il file.

Creare il nostro modello

Successivamente creeremo il nostro modello che estenderà CI_Model. CI_Model fa parte delle librerie CodeIgniter. Il modello si troverà in application / models opinion_poll_model.php

load->database();}public function total_votes(){$query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries');return $query->row()->choices_count;}public function get_results(){$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");$table_rows = '';for ($i = 1; $i < 5; $i++){$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt); $table_rows .= "
" . $ libraries [$i] . " Got:" . $result[0] . " votes

";}public function add_vote($choice){$ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data);}}?>

QUI,

  • "Class Opinion_poll_model extends CI_Model ..." è il nostro modello che estende CI_Model
  • "... parent :: __construct ();" chiama il costruttore CI_Model
  • "$ This-> load-> database ();" carica la libreria del database in modo che la nostra applicazione possa interagire con il database
  • "$ This-> db->" è il record attivo di CodeIgniter. Controllare questo collegamento per ulteriori informazioni sul record attivo.

Creazione del nostro controller Creiamo ora il controller. Useremo il controller CodeIgniter predefinito che si trova in application / controllers / welcome.php. Sostituisci i suoi codici sorgente con il codice seguente.

load->model('opinion_poll_model');}public function index() {if ($this->input->post('submitbutton') && !$this->input->post('vote')) {echo "";}if ($this->input->post('vote')) {$this->opinion_poll_model->add_vote($this->input->post('vote'));$data['total_votes'] = $this->opinion_poll_model->total_votes();$data['rows'] = $this->opinion_poll_model->get_results();$this->load->view('results', $data);} else {$this->load->view('opinion_poll_form');}}}/* End of file welcome.php *//* Location: ./application/controllers/welcome.php */?>

QUI,

  • “if (!defined('BASEPATH')) exit('No direct script access allowed');” ensures that users do not directly access the controller class
  • “class Welcome extends CI_Controller… ” our controller extends the CI_Controller class
  • “public function __construct()” calls CI_Controller’s class contructor method and loads our Opinion_poll_model model
  • “public function index()… ” is the function that maps to index.php. it uses CodeIgniter’s input class to check if a vote has been submitted, add it to the database then display the results. If the post array of the input class is empty, it loads the voting page.
  • “$this->input->post('… ')” is the CodeIgniter input class that grabs the contents of the $_POST global variable.
  • “$this->opinion_poll_model->add_vote($this->input->post('vote'))” calls the model’s add_vote method to add the vote into the database.

Creating Our Views

Recall from the previous example that we had two HTML pages, one for voting and the other for results. We will use the same HTML code with minimal modifications to create our views. Create the following files in application/views directory

opinion_poll_form.phpJavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript Library?

JQuery
MooTools
YUI Library
Glow

Let’s now create the results page results.php

JavaScript Libraries - Opinion Poll Results

JavaScript Libraries - Opinion Poll Results

What is your favorite JavaScript Library?

people have thus far taken part in this poll:

Return to voting page

Testing our application

Assuming the root directory of your application is ciopinion, browse to http://localhost/ciopionpoll/

Click on OK button, you will see the following alert message

Vote for your favorite candidate then click on OK You will see the following results page

Conclusion

CodeIgniter è un framework PHP MVC facile da imparare e da usare che può ridurre notevolmente il tempo dedicato allo sviluppo di applicazioni.

Sommario

  • Un framework è un insieme di librerie che forniscono un'implementazione parziale di attività comuni.
  • PHP ha una serie di framework MVC open source maturi e testati.
  • Un buon approccio di sviluppo separa i dati dalla presentazione e incoraggia l'uso di un unico punto di ingresso in un'applicazione.
  • Le applicazioni PHP tradizionali che seguono le migliori pratiche di progettazione dell'applicazione possono essere portate su framework MVC con modifiche minime.