E_STRICT – 5 errori comuni
Quando sviluppiamo un'applicazione PHP è molto importante configurare correttamente l'error_reporting per analizzare gli errori messaggi della nostra applicazione. Dalla versione 5 si è incluso un nuovo livello denominato E_STRICT. Secondo la definizione di php.net:
Enabling E_NOTICE during development has some benefits. For debugging purposes: NOTICE messages will warn you about possible bugs in your code. For example, use of unassigned values is warned. It is extremely useful to find typos and to save time for debugging. NOTICE messages will warn you about bad style. For example, $arr[item] is better to be written as $arr['item'] since PHP tries to treat "item" as constant. If it is not a constant, PHP assumes it is a string index for the array.
Con l'inclusione di E_STRICT nel E_ALL in PHP 5.4 no avremo scuse per non guardare questi messaggi.
Design patterns – Lista dei più usati e quando utilizzarli
Possiamo definire i design pattern come soluzioni tecniche collaudate a problemi ricorrenti della programmazione.
Quali sono i più famosi e quali sono questi problemi ricorrenti? In questo articolo proporrò una lista dei più famosi design pattern associati al problema che risolvono così da trovarli rapidamente.
PHP refactoring
Ogni applicazione in continua crescita necessita modifiche per renderla più rapida, per riorganizzala o per prepararci a nuovi sviluppi a medio o lungo termine.
Questo processo prende il nome di Refactoring, parola che molti odiano in quanto prevede l'impiego di risorse per qualcosa che non è un prodotto completo o una release. È naturale, dunque, che il vostro Product Owner non lo veda di buon'occhio. Sebbene in lotta continua per il Time To Market gli sviluppatori dovrebbero prestare la dovuta attenzione a questa fase giacché si potrebbe arrivare alla classica situazione di stallo in cui modificare il codice spaghetti a cui si è arrivati presuppone un costo maggiore del refactoring stesso.
Dunque quali sono le linee guida per un buon Refactoring? Cerchiamole insieme...
Interface vs. Abstract class in PHP
Interface e Abrastract class sono concetti della OOP poco utilizzati in PHP. I motivi sono principalmente due:
- requisiti poco chiari (o idee poco chiare da parte dello sviluppatore) in fase di progettazione
- poca conoscenza di questi concetti
Vediamo dunque di fare un po' di chiarezza.
Namespaces in PHP 5.3
Fino a qualche settimana fa non conoscevo che fosse possibile in PHP (>=5.3) fare qualcosa di simile a quello che si fa in Java con i packages.
Il problema che ci si presenta è quello dei name collitions, cioè della confusione che si puó produrre parlando di due cose diverse che hanno lo stesso nome. Nel caso del PHP si potrebbero produrre sovrascrivendo nomi di classi, funzioni o costanti.
La soluzione nel PHP è tanto semplice quanto geniale e si chiama namespaces. Inoltre se si utilizza nella nuova versione del Zend Framework (2.0) sarà qualcosa di buono ![]()
PHP Output Buffering Control
Quando dopo una richiesta il server invia l'html al client no lo ritorna in un'unica volta ma a spezzoni.
Possiamo fare qualcosa per controllarlo? La risposta sta nell'Output Buffering Control di PHP.
La idea è semplice:
Conservare l'output in una variabile e ritornarla in un'unica volta.