Guida al Linguaggio PHP. Lezione 17 i Traits
Classifica Articoli e Pagine
- Wordpress Tutorial Lezioni 6.6. Salvare i dati nel Database.
- Problema Windows Defender 10 Il tuo amministratore IT ha un accesso limitato
- Lezioni di Elettrotecnica 3. I Fasori e il regime sinusoidale
- Inserire la radice quadrata da Tabella Ascii
- Lezione 2 Metodi Matematici Ingegneria. La trasformata di Laplace
Privacy e cookie: Questo sito utilizza cookie. Continuando a utilizzare questo sito web, si accetta l’utilizzo dei cookie.
Per ulteriori informazioni, anche su controllo dei cookie, leggi qui: Informativa sui cookie
Per ulteriori informazioni, anche su controllo dei cookie, leggi qui: Informativa sui cookie
Analisi SEO
Geo IP Site
Htaccess
- Redirec Nuova Directory vecchia directory
- Redirect Vecchio Url nuovo url
- Redirect Nuovo Dominio Vecchio Dominio
Tipi di articoli
Categorie
Categorie
Tag
Anno
Guida al linguaggi di programmazione PHP
La nostra Guida al linguaggio di programmazione PHP
Lezione 1 Guida introduttiva al linguaggio PHP
Lezione 2 Introduzione ai tipi di dato PHP
Lezione 3. I Cicli Iterativi
Lezione 4. Le funzioni
Lezione 5 Gli Array
Lezione 6. La programmazione a Oggetti
Lezione 7. La programmazione a Oggetti Parte 2
Lezione 8. Il Database Mysql
Lezione 9. Interazione con HTML
Lezione 10 I Cookie Session
Lezione 11 Composer Gestore delle Dipendenze
Lezione 12 Parser Feed XML
Lezione 13. Esistenza Url
Lezione 14. Esistenza Dominio
Lezione 15. Invio Email
Lezione 16. I Namespace
Lezione 17. I Traits
Lezione 18. La Cache
Lezione 19. Architetuttra Rest Api
Lezione 20. Soap WSDL
Lezione 20 BIS. SOAP WSDL ZEND Framework
Lezioni 21. Cloud Computing
Lezioni 22. Sicurezza
Lezione 23. Codice di errore Offset comuni
Composer
Guida installazione e utilizzo dell'applicazione per le dipendenze delle librerie Composer.
Che cos'è Composer
Installazione
Caricare le Librerie
Aggiornare le Librerie
Tipi di articoli
Categorie
Categorie
Tag
Anno
L | M | M | G | V | S | D |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Legge sui Cookies
Utilizziamo i cookie sul nostro sito Web per offrirti l'esperienza più pertinente ricordando le tue preferenze e ripetendo le visite. Cliccando su "Accetta" acconsenti all'uso di TUTTI i cookie. Puoi visionare la nostra politica sui Cookie alla Pagina sulla Cookie Policy . Nella pagina potrai trovare tutti i cookie che il sito utilizza e il trattamento che viene effettuato sui cookie stessi , sul sito dove vengono immagazzinati e sul trattamento a cui sono sottoposti.Per ogni dubbio o approfondimento ti invitiamo a contattarci grazie al nostro modulo di contatto
Privacy & Cookies Policy
Privacy
Questo sito Web utilizza i cookie per migliorare la tua esperienza durante la navigazione nel sito Web. Di questi cookie, i cookie classificati come necessari vengono memorizzati nel browser in quanto sono essenziali per il funzionamento delle funzionalità di base del sito Web. Utilizziamo anche cookie di terze parti che ci aiutano ad analizzare e capire come utilizzi questo sito web. Questi cookie verranno memorizzati nel tuo browser solo con il tuo consenso. Hai anche la possibilità di disattivare questi cookie. Ma la disattivazione di alcuni di questi cookie potrebbe avere un effetto sulla tua esperienza di navigazione.
I cookie necessari sono assolutamente essenziali per il corretto funzionamento del sito web. Questa categoria include solo i cookie che garantiscono funzionalità di base e caratteristiche di sicurezza del sito web. Questi cookie non memorizzano alcuna informazione personale.
Tutti i cookie che potrebbero non essere particolarmente necessari per il funzionamento del sito Web e vengono utilizzati specificamente per raccogliere dati personali dell\'utente tramite analisi, pubblicità, altri contenuti incorporati sono definiti come cookie non necessari. È obbligatorio ottenere il consenso dell\'utente prima di eseguire questi cookie sul tuo sito web.
%d blogger hanno fatto clic su Mi Piace per questo:
I Traits nascono nella versione del PHP 5.4 e sono stati introdotti per l’esigenza di superare alcuni problemi dovuti all’ereditarietà.
Infatti uno dei problemi di PHP come linguaggio di programmazione è il fatto che è possibile avere un’unica ereditarietà. Ossia una classe può ereditare solo da un’altra classe.
Tuttavia, molto spesso sarebbe utile ereditare da altre classi. Ad esempio, potrebbe essere desiderabile ereditare metodi da un paio di classi diverse al fine di prevenire la duplicazione del codice.
Per tutti questi motivi in PHP 5.4 è stata aggiunta una nuova funzionalità della lingua nota come Traits in italiano ovviamente tratto . Un Tratto è un po ‘come un Mixin in quanto ti permette di mescolare classi Trait in una classe esistente. Ciò significa che puoi ridurre la duplicazione del codice e ottenere i benefici evitando i problemi dell’ereditarietà multipla.
Quali sono i traits in PHP?
Un Trait è semplicemente un gruppo di metodi che si desidera includere in un’altra classe. Un trait, come una classe astratta , non può essere istanziato da solo.
Un esempio di un tratto potrebbe essere:
Potresti quindi includere questo Trait all’interno di altre classi come questa:
Ora se dovessi creare nuovi oggetti da queste classi, scopriresti che entrambi hanno il metodo cond disponibile
‘
Come funzionano i Traits?
Come puoi vedere dall’esempio sopra, sia Articolo che Commenta hanno metodo cond() disponibile, pur non avendo definito quel metodo.
Quindi possiamo definire un Traits come un modo per copiare e incollare il codice durante l’esecuzione.
Ciò significa che il Trait è copiato nelle classi Articolo e Commenta così quando istanziate il metodo cond() e quindi il codice al suo interno sarà disponibile.
In che modo i Traits sono diversi dalle classi astratte?
Fondamentalmente le classi astratte non si basano sull’eredità.
Immagina se le classi Articolo a Commenta dovessero ereditare da una classe astratta . Probabilmente vorremmo fare qualcosa di più della semplice condivisione di post e commenti sui siti di social media, quindi probabilmente ci ritroveremo con un complesso albero ereditario come questo:
Questa complicata ereditarietà è piuttosto sgradevole e di non immediata comprensione, ma aggiunge anche complicazioni quando un oggetto più semplice non ha una struttura di ereditarietà simile. Ad esempio, se avessimo un oggetto che non dovesse consentire la condivisione social, questo oggetto richiederebbe una struttura ereditaria leggermente diversa.
In che modo i Traits sono diversi dalle interfacce?
I Traits somigliano molto alle interfacce. Sia i Traits che le interfacce sono in genere semplici, concisi e poco utili senza una classe effettiva implementata. Tuttavia la differenza tra i due è importante.
Un’interfaccia dice “questo oggetto è in grado di fare questa cosa”, mentre un Trait sta dando all’oggetto la capacità di fare la cosa. Vediamo un esempio per comprendere meglio il concetto
In questo esempio abbiamo Sociable un’interfaccia che afferma che la classe Post è in grado di usufruire di like()e share().
Il Sharable Trait implementa il metodo share() e like() che è implementato nella classe Post
Quindi, come puoi vedere, potremmo utilizzare Post dell’oggetto per vedere se implementa l’interfaccia Sociable, mentre il Trait definisce un metodo riutilizzabile che possiamo poi mescolare ad altre classi simili. Vediamo
Quali sono i vantaggi dei Traits?
Il vantaggio dell’utilizzo dei Traits è che si riduce la duplicazione del codice, evitando al contempo complicate eredità di classe che potrebbero non avere senso nel contesto dell’applicazione.
Ciò consente di definire Traits semplici chiari e concisi e quindi di integrare tali funzionalità laddove veramente servono.
Quali sono gli svantaggi dei Traits?
Tuttavia con ciò detto, ci sono possibili inconvenienti quando si utilizzano i Traits.
I Traits rendono molto facile scrivere classi ampie che hanno molte responsabilità. Un Trait è essenzialmente un modo per “copiare e incollare” il codice tra le classi. Avendo un modo per aggiungere semplicemente un altro gruppo di metodi a una classe.
Altri svantaggi nell’usare i Traits è che non sono in grado di vedere tutti i metodi di una classe quando si guarda il codice sorgente, come pure i conflitti di metodo o la duplicazione della logica.
Penso che se usati correttamente, siano uno strumento fantastico da avere a nostra disposizione. Tuttavia, i Traits possono anche essere la stampella per la programmazione pigra. È molto semplice aggiungere un Trait per risolvere il tuo problema immediato. Spesso la composizione è l’approccio migliore sull’ereditarietà o l’utilizzo di un tratto.
Condividi:
Mi piace: