lunedì 27 gennaio 2014

Soppalco fai da te in solitaria

Il box è una gran comodità, se soppalcato è ancora più comodo. Premetto che non ho nessuna esperienza di saldature, soppalchi e quant'altro. D'altra parte mi sono voluto cimentare nella realizzazione del soppalco del mio box e per di più in solitaria.

martedì 14 gennaio 2014

La OOP in PHP spiegata in un esempio - Parte 18 - Costanti, late binding statico, variabili membro statiche, __destruct() e un riepilogo degli argomenti trattati


Concludiamo qui questa serie di post sulla programmazione OOP in PHP. Quelli trattati sono argomenti base dai quali non si può prescindere. Rivediamo però di cosa abbiamo parlato e cosa è rimasto fuori e merita una parolina.

venerdì 27 dicembre 2013

La OOP in PHP spiegata in un esempio - Parte 17 - Side Effect da Serializzazione di un Oggetto (deep clone alternativa)


Abbiamo visto che per mezzo della funzione serialize() si ha la possibilità di trasformare un oggetto in una stringa di testo. Tale stringa è utilizzabile con la funzione unserialize() per ottenere nuovamente l'oggetto.

Tale operazione però può avere degli effetti di cui tenere conto.

In fase di serializzazione lo stato dell'oggetto e i nomi delle classi necessarie sono trasformate in una stringa. In fase di ricostruzione è allocata della memoria per contenere l'oggetto deserializzato e, se delle sue proprietà sono degli oggetti, ulteriore memoria è allocata per contenere gli oggetti delle proprietà.

martedì 24 dicembre 2013

La OOP in PHP spiegata in un esempio - Parte 16 - Preservare gli oggetti per la durata della sessione


Il PHP è di norma utilizzato come linguaggio per applicazioni web. Ciò significa che il client (un browser) tenta di accedere ad un pagina, il server web riconosce che la pagina è uno script php e lo da in pasto al motore php, quindi l'output prodotto dallo script è trasmesso dal server web al client.

Cosa succede agli oggetti generati dalla nostra applicazione tra una chiamata e l'altra?

lunedì 23 dicembre 2013

La OOP in PHP spiegata in un esempio - Parte 15 - Side Effect da Clonazione e Funzione Speciale __clone() (deep clone)


Approfondiamo un momento la clonazione. Con tale operazione ci si aspetta di ottenere due oggetti identici nello stato ma disgiunti l'uno dall'altro. In alcuni casi potrebbe non essere proprio così.

giovedì 19 dicembre 2013

La OOP in PHP spiegata in un esempio - Parte 14 - La Clonazione (shallow clone)


Ora che abbiamo coscienza del side effect delle nostre classi possiamo pensare di risolvere il problema generando ogni volta un nuovo oggetto.

Meglio ancora, visto che abbiamo già scritto tutto il codice, sarebbe bello avere la possibilità di creare un nuovo oggetto partendo da uno esistente. Questa possibilità l'abbiamo grazie all'istruzione clone.

mercoledì 18 dicembre 2013

La OOP in PHP spiegata in un esempio - Parte 13 - Side effect


Negli ultimi posta abbiamo un po' divagato scostandoci da quelli che sono gli argomenti che fondano il nucleo della OOP. E' arrivato il momento di prendere in esame un fattore fino ad ora ignorato. In molte classi, chiediamo degli oggetti come argomenti e memorizziamo tali oggetti  all'interno della classe. Tale pratica però può essere controproducente ossia dar luogo a dei side effect, perchè il client  (colui che utilizza un oggetto) potrebbe utilizzare lo stesso oggetto come argomento per altre classi o invocarne i metodi modificandone lo stato. In tale circostanza anche l'oggetto memorizzato dalla classe cambia.

martedì 17 dicembre 2013

La OOP in PHP spiegata in un esempio - Parte 12 - Classi statiche pure


Dal post precedente possiamo osservare una cosa. La classe cCoordinateTrasformabili è una classe strana. Perché? Riguardando il suo codice possiamo notare come non abbia variabili oggetto, se non quelle definite dalla sua genitrice ossia è priva di uno stato proprio. La sua definizione si compone di soli metodi. Tali metodi fanno uso delle variabili oggetto, ma ne sono comunque disgiunti tramite i metodi d'accesso set/get.

venerdì 13 dicembre 2013

La OOP in PHP spiegata in un esempio - Parte 11 - Osservazioni su Interfacce e Classi Astratte o quasi


Nel caso trattato nella parte 10, aggiungendo dei metodi all'interfaccia iFigura abbiamo imposto che una figura debba poter essere rappresentata in un'area di disegno (metodo disegna(\iAreaDiDisegno $oAreaDiDisegno)) e debba poter essere trasformata tramite i metodi trasla, ruota e scala. In tale circostanza abbiamo, delegando tutto alla interfaccia, ossia abbiamo vincolato una figura (classe che implementa iFigura) a dover saper gestire delle trasformazioni. In più le stesse dichiarazioni di metodi di trasformazioni sono presenti uguali nell'interfaccia iCoordinate nono, nonostante la programmazione a oggetti ci dica di raggruppare comportamenti simili tramite ereditarietà.

mercoledì 11 dicembre 2013

La OOP in PHP spiegata in un esempio - Parte 10 - Ampliamo le Funzionalità


Prima di procedere oltre, realizziamo un ampliamento delle funzionalità di alcune classi. in particolare faremo definiremo delle operazioni di trasformazione per l'interfaccia iCoordinate e iFigura. Tali operazioni sono traslazione, scala e rotazione.