PHP  »  Articoli  »  Programmazione Php 

Codice procedurale vs OOP

di: Riccardo Degni     05 Giugno 2009

Fino al rilascio ufficiale della versione 5 di PHP, si può tranquillamente affermare che quest'ultimo era un linguaggio prettamente procedurale, nonostante la presenza di costrutti che lontanamente richiamavano i concetti della OOP.

Tuttavia, se PHP 4 è un linguaggio procedurale, lo stesso non si può affermare di PHP 5. Quest'ultima release ha portato con sé un kit di strumenti davvero completo che permette di utilizzare le tecniche della OOP all'interno degli script server-side realizzati con il linguaggio in questione. È ovviamente possibile che uno sviluppatore continui a scrivere codice precedurale anche con la versione 5 di PHP, che mantiene intatte tutte le caratteristiche della precedente versione con aggiunte davvero molto interessanti.

In questo articolo vedremo dunque i pro e i contro di entrambe le tecniche di programmazione in questione analizzando accuratamente i punti di forza delle stesse.

Codice procedurale

Il codice procedurale è un codice privo di classi ed oggetti che fa un uso massiccio delle funzioni, interne ed in particolare user-defined. I vantaggi offerti da questo modello di sviluppo sono molti.

Compatibilità. Se un'applicazione PHP è realizzata mediante codice procedurale, i possibili problemi di compatibilità sono ridotti al minimo: è possibile intercambiare la piattaforma di sviluppo dalla versione 4 alla 5 e vice versa ed ottenere i medesimi risultati. Ovviamente, bisogna essere ben consci dei possibili diversi comportamenti delle funzioni aventi stesso namespace all'interno delle differenti versioni del linguaggio, ma i più noti problemi di compatibilità sono bene elencati attraverso la documentazione ufficiale.

Facilità d'uso. È un dato di fatto: produrre codice procedurale è più semplice che produrre codice orientato agli oggetti. Questo perché il codice procedurale non richiede nessuno studio particolare, all'infuori delle basi del linguaggio e della documentazione sulle funzioni interne, cosa che non si può assolutamente affermare nel caso di codice Object-Oriented.

Quest'ultimo infatti, richiede conoscenze elevate sulle meccaniche e sulle metodologie di esecuzione, nonché su tutta la vasta gamma dei concetti in esso racchiusi. È impensabile scrivere un'applicazione OOP in PHP (e in qualsiasi altro linguaggio) senza avere esperienza in merito, dato che il risultato sarebbe un codice vulnerabile e difficilmente mantenibile.

Libertà. Questo punto è una diretta conseguenza del precedente. Se si scrive codice procedurale non si hanno molte regole da seguire: sta allo sviluppatore scegliere le sintassi, le metodologie e le tecniche di scrittura che meglio preferisce. Questa totale forma di libertà in realtà, rappresenta sia un vantaggio che uno svantaggio: molte delle accuse rivolta a PHP si riferiscono proprio a questa mancanza di regole che, parecchie volte, permette di dare vita a veri e propri "script-spazzaura", difficili da mantenere e da condividere con altri sviluppatori.

Velocità. Nella maggioranza dei casi, scrivere gerarchie orientate agli oggetti comporta più tempo sia per quanto riguarda la pianificazione della struttura che per l'effettiva mole di codice da scrivere. Senza contare le diverse ramificazioni di cartelle e script da includere risultanti. Un codice procedurale è generalmente più immediato da produrre e più veloce da scrivere.

Guide PHP

Guida Zend Framework

Diventate professionisti dello sviluppo Web. Zend Framework è lo...

Guida Applicazioni Facebook con PHP

Come realizzare un'applicazione per Facebook. Dalle basi della...

Guida PHP con Windows e IIS

Installare ambienti per lo sviluppo e la produzione di applicazioni...

Altre guide

Newsletter @PHP

Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Google AdWords Base

27 Febbraio 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

28 Marzo 2012 a Roma
Disponibilità: 7 Posti