Leanpub Header

Skip to main content

TYPO3 Extbase (Italiano)

Sviluppo Estensioni Moderne per TYPO3 CMS con Extbase & Fluid

Edizione 2 v7

Scritto per TYPO3 7.6 LTS ma ancora di valore! Il libro per la programmazione di estensioni utilizzando Extbase & Fluid in TYPO3 CMS - per sviluppatori principianti e avanzati. Adesso a prezzo stracciato, visto che sta per uscire V10 ...

This book is a translation into Italian of TYPO3 Extbase (Deutsch) which was originally written in German

Minimum price

$7.99

$7.99

You pay

$7.99

Authors earn

$6.39
$

...Or Buy With Credits!

You can get credits monthly with a Reader Membership
PDF
EPUB
WEB
421
Pages
About

About

About the Book

Le estensioni sono il fondamento di TYPO3 CMS e una parte essenziale di ogni installazione TYPO3. Il metodo più veloce ed efficiente per lo sviluppo di estensioni è utilizzando la struttura Extbase e Il motore di template Fluid. Questo libro fornisce tutto quello che dovete sapere per operare con Extbase e Fluid in un formato facile da seguire con esempi reali. Il libro è stato scritto per aiutare gli sviluppatori di TYPO3 a produrre codice pulito a standard moderni, sostenuto da principi di programmazione contemporanei.

Scritto da Patrick Lobacher e tradotto verso l'inglese da Michael Schams, noti membri della comunità TYPO3, questa seconda edizione è stata aggiornata e copre tutti i nuovi aspetti di TYPO3 CMS 7 LTS. Questa edizione italiana è il primo libro italiano su TYPO3.

Dalle basi della programmazione orientata agli oggetti in PHP ai principi di Domain Driven Design e il concetto MVC (Model-View-Controller), gli autori spiegano fondamenti teorici e soluzioni pratiche. Tecnologie avanzate come AJAX, FAL, moduli di backend, JSON-Views, il Property Mapper di TYPO3 e più sono inclusi.

Dopo aver studiato questo libro, gli sviluppatori di estensioni hanno tutte le conoscenze a disposizione per padroneggiare progetti TYPO3 di ogni dimensione e complessità in Extbase e Fluid.

This book is a translation into Italian of TYPO3 Extbase (Deutsch) which was originally written in German

Author

About the Authors

Gert-jan Dikkescheij

A parte il mio Commodore VIC-20, l'informatica nasce per me nel 1984 quando seguo il primo corso disponibile ad indirizzo elettronico. A conclusione di questa preparazione proseguo in ingegneria meccanica che pratico per tanti anni a seguire, alternato da viaggi in luoghi lontani ed impegni saltuari dove mi avvalgo della mia dote linguistica.

In particolar modo la mia permanenza a Melbourne Australia mi conduce nell'internet, e da allora cresce la mia passione per l'IT. Questo campo è come una nuova lingua ma con una sintassi precisa e interpretazione perfettamente lineare, che si addice alla mia natura analitica. Il mio coinvolgimento con TYPO3 invece è abbastanza recente, trattandosi di uno dei CMS più prestigiosi si serve di un uso di codice notevolmente più avanzato del solito.

È per questo che mi sono sentito chiamato per tradurre quest'opera. Ho fatto un notevole sforzo tra 'stackoverflow' e vari forum per collezionare la conoscenza necessaria per operare professionalmente con TYPO3, vi voglio offrire questo 'ingresso agevolato' ... buona lettura.

Patrick Lobacher

Patrick Lobacher is Agile Coach, Consultant, Trainer, Speaker and Author and has been at home in the world of agility for 15 years. With his implementation consultancy "die.agilen GmbH" he shapes the holistic agile transformations for and with organizations of all sizes and industries.

Patrick Lobacher ist Agile Coach, Berater, Trainer, Speaker sowie Autor und ist seit 15 Jahren in der Welt der Agilität zuhause. Mit seiner Umsetzungsberatung "die.agilen GmbH" gestaltet er die ganzheitliche agile Transformationen für und mit Organisationen jeglicher Größe und Branche.

Contents

Table of Contents

1.Prefazione

  1. Aggiungi un segnalibro a questo indirizzo
  2. Il codice in questo libro
  3. 1.1L’edizione TYPO3 CMS 7 LTS
  4. 1.2Formazione – Esperienza di Patrick
  5. 1.3Formazione – Esperienza di Gert-jan
  6. 1.4Riconoscimenti
  7. 1.5Traduzione
  8. 1.6Registro modifiche (changelog)

2.Sviluppo moderno di estensioni

  1. 2.1Un nuovo TYPO3 emerge
  2. 2.2Il Manifesto di Berlino
  3. 2.3L’ora di nascita di TYPO3 Flow (FLOW3)
  4. 2.4Come la fenice (Phoenix) dalle ceneri
  5. 2.5Il dilemma TYPO3
  6. 2.6La divisione
  7. 2.7La storia di Extbase e Fluid
  8. 2.7.1Compatibilità (Backport): Extbase e Fluid
  9. 2.7.2Programmazione su un livello avanzato

3.Programmazione orientata agli oggetti

  1. OOP in Extbase e Fluid
  2. 3.1Classi e oggetti
  3. Direttive di codifica TYPO3
  4. Sintassi
  5. 3.2Metodi
  6. 3.2.1L’operatore freccia (Arrow Operator)
  7. 3.2.2Il costruttore (Constructor)
  8. 3.2.3L’accesso mediante $this
  9. 3.2.4Caricare metodi con contenuto
  10. 3.3L’ereditarietà delle classi (Inheritance)
  11. 3.3.1L’accesso mediante parent (genitore)
  12. 3.3.2Verifying Class Derivation
  13. 3.4Classi astratte
  14. 3.5Interfaccie (Interface)
  15. 3.6Visibilità: pubblico e protetto
  16. Visibilità in Extbase e Fluid
  17. 3.6.1‘Getter’ e ‘Setter’
  18. 3.7Cenno sul genere (Type Hints)
  19. 3.8Chiamate statici
  20. 3.9‘Namespaces’
  21. 3.10Modelli importanti di progettazione
  22. 3.10.1Singleton
  23. 3.10.2Prototype
  24. 3.10.3Dependency Injection
  25. 3.11Annotazioni

4.Progettazione guidata dal Dominio

  1. Definizione di DDD
  2. 4.1Ignoranza sull’infrastruttura
  3. 4.2Architettura a strati verticali
  4. 4.3Il modello di dominio
  5. 4.3.1Linguaggio ubiquitario
  6. Approccio pragmatico
  7. 4.3.2Blocchi da costruzione di DDD
  8. 4.4Strutturare DDD
  9. 4.4.1Bounded Context(contesto delimitato)
  10. 4.4.2Context Maps (contesto mappato)
  11. 4.4.3Core Domain (nucleo del dominio)
  12. 4.4.4Shared Kernel (kernel condiviso)
  13. 4.4.5Riassunto capitolo
  14. 4.4.6Ulteriori riferimenti

5.Panoramica di Extbase

  1. 5.1Installazione di Extbase & Fluid
  2. I numeri versione di estensioni del sistema
  3. 5.1.1Conservare Commenti PHP Doc
  4. 5.2Installazione del estensione efempty
  5. Extensions, Plugins and Modules
  6. 5.3Perlustrazione dell’estensione efempty
  7. 5.3.1File ext_emconf.php e ext_icon.gif
  8. 5.3.2File ext_tables.php
  9. Plugin multiple in un estensione
  10. 5.3.3File ext_localconf.php
  11. 5.3.4Controller Pluswerk\Efempty\Controller\StartController
  12. 5.3.5Dominio Pluswerk\Efempty\Domain\Model\Start
  13. 5.3.6Resa Attraverso View
  14. Annotazione dei file del template
  15. 5.3.7La Chiamata Show-Action

6.Realizzazione del modello (Modellazione)

  1. 6.1Modello usato in questo Libro
  2. 6.2Concetto di base
  3. 6.2.1Il glossario
  4. 6.2.2Creare il modello
  5. 6.3Modellazione in Extbase - Extension Builder
  6. Interamente in inglese!
  7. Non fidarti troppo dell Extension Builder!
  8. Attuale versione di sviluppo del Extension Builder
  9. 6.3.1Proprietà dell’estensione
  10. Seguire le istruzioni e gli esempi
  11. 6.3.2Modello di domonio
  12. L’ordine in qui crei fa differenza
  13. 6.3.3Proprietà del modello
  14. 6.3.4Rapporti nel modello
  15. 6.4Rettifiche per le classi Autoload
  16. 6.5Installazione dell’estensione
  17. 6.6Analisi dei file creati da Extension Builder
  18. 6.7Ulteriori funzioni di Extension Builder
  19. 6.7.1Duplicato di scorta (backup)
  20. 6.7.2Modificare il modello
  21. 6.7.3Class Builder

7.Preparazione

  1. 7.1Frontend frameworks (strutture ‘vetrina’)
  2. 7.2Caricare TypoScript statico
  3. 7.3Caricare file CSS
  4. 7.4Impostazioni ‘IDE’
  5. 7.4.1PhpStorm: Crea progetto
  6. 7.4.2PhpStorm: File core (nucleo) di Typo3 da includere
  7. 7.4.3PhpStrom: Includere file schema di Fluid
  8. 7.4.4PhpStorm: Consigli sulla risoluzione di classi
  9. 7.4.5Estensione TYPO3 phpstorm
  10. 7.5Messaggi d’errore in TYPO3
  11. 7.6Svuotare la cache di sistema

8.Il processo CRUD

  1. 8.1Creare un oggetto (Create)
  2. 8.1.1Creare l’azione nel Controller
  3. 8.1.2Creare il template di listAction
  4. Generare una View senza resa
  5. 8.1.3Creare blog statici
  6. 8.1.4Persistenza dei blog
  7. Persistenza Implicita
  8. 8.1.5Il ‘Persistence Manager’: Persistenza Manuale
  9. API pubblico
  10. 8.1.6Creare un’Azione propria
  11. Redirect
  12. 8.1.7Modulo per creare un oggetto
  13. 8.2Visualizzare un oggetto (Read)
  14. 8.3Aggiornare un oggetto (Update)
  15. 8.4Eliminare un oggetto (Delete)
  16. Esercizio
  17. 8.5Migliorare l’aspetto
  18. 8.6Riassunto capitolo

9.Modelli in Fluid: Templates, Layouts e Partials

  1. 9.1Creare e referenziare layout
  2. Sezioni facoltative
  3. 9.2Partials
  4. 9.2.1Partials semplici
  5. Sottocartelle per partial e layout e l’estensioni dei template
  6. 9.2.2Partials complessi
  7. Passare arguments a partials
  8. Esercizio

10.Gestione query e repository

  1. 10.1Struttura di un classe repository
  2. 10.2Funzioni repository per operazioni di scrittura
  3. 10.3Funzioni repository per operazioni di lettura
  4. 10.4Struttura predefinita di una query
  5. 10.4.1Approfondimento: Debugging (rimozione errori)
  6. 10.5Aggiustare una query
  7. Il codice in Extbase
  8. 10.5.1Determinare il risultato
  9. 10.5.2Manipolare il risultato
  10. 10.5.3Congiunzione logica
  11. 10.5.4SQL nativo
  12. 10.5.5Impostazioni della query
  13. 10.6Esempio: Cerca parola chiave nel titolo
  14. 10.7Ricerca dinamica nel Repository
  15. Convertire caratteri speciali (Escape)
  16. 10.8Approfondimento: L’oggetto Request

11.Configurazione TypoScript e FlexForm

  1. 11.1TypoScript
  2. 11.1.1Ambito del Setup
  3. 11.1.2Struttura di base
  4. 11.1.3Opzioni: view (vista)
  5. 11.1.4Opzioni: persistence (memoria)
  6. 11.1.5Opzioni: objects (oggetti)
  7. Classe Autoloader
  8. 11.1.6Opzioni: features (funzionalità)
  9. 11.1.7Opzioni: mvc
  10. 11.1.8Opzioni: settings (impostazioni)
  11. 11.1.9Opzioni: _LOCAL_LANG
  12. 11.1.10Opzioni: _CSS_DEFAULT_STYLE
  13. 11.2FlexForm
  14. Sovrascrivere il TCA
  15. 11.2.1Configurazione FlexForm
  16. Salvare sempre il FlexForm
  17. Errore nella determinazione della configurazione
  18. 11.2.2SCA (Controllo di Azioni commutabili)
  19. FlexForm perseveranti
  20. 11.3TypoScript per le sezioni successive di questo Libro
  21. Accesso alle impostazioni in altre aree
  22. 11.4TypoScript per i moduli di backend

12.Validazione e gestione errori

  1. 12.1Momento di validazione
  2. 12.2Gestione errori
  3. 12.3Panoramica della convalida
  4. Quando avviene una validazione?
  5. 12.4Convalida delle proprietà
  6. 12.4.1Validatori Incorporati
  7. 12.4.2Validatori multipli
  8. 12.4.3Validatori propri
  9. Valore restituito da isValid()
  10. 12.5Convalida dei oggetti
  11. Cartella differente per i validatori di oggetti
  12. 12.6Convalida delle azioni
  13. 12.7Visualizzazione errori nei moduli
  14. 12.7.1Opzione 1: con mezzi presenti
  15. 12.7.2Opzione 2: con un ViewHelper

13.Relazioni

  1. 13.1Rapporti nel modello di dominio
  2. 13.2La matrice di configurazione (TCA)
  3. 13.2.1TCA: ctrl
  4. 13.2.2TCA: interface
  5. 13.2.3TCA: types
  6. 13.2.4TCA: palettes
  7. 13.2.5TCA: columns
  8. Accesso al database di basso livello
  9. 13.3Il processo CRUD per Post
  10. 13.3.1Preparazione
  11. 13.3.2Creare Post (Create)
  12. Esercizio
  13. 13.3.3Leggere Post (Read)
  14. 13.3.4Aggiornare Post (Update)
  15. 13.3.5Eliminare Post (Delete)
  16. 13.4Rapporto m:n con Tag come esempio
  17. 13.4.1Creare Tag nel backend
  18. 13.4.2Repository per Tag
  19. 13.4.3Rettifiche del Post Controller
  20. 13.4.4Rettifiche dei Templates e Partials
  21. 13.4.5Mostrare Tag in un elenco
  22. Attributo iteration in for-ViewHelper
  23. 13.5Rapporto 1:1 con Autori come esempio
  24. 13.5.1Creazione di utenti e gruppi Frontend
  25. 13.5.2Collegare l’oggetto di dominio autore alla tabella fe_users
  26. 13.5.3Definire l’autore per la creazione e modifica di un post
  27. 13.5.4Utente connesso come autore
  28. 13.6Commenti & AJAX
  29. 13.6.1Registrare l’azione AJAX
  30. 13.6.2Visualizzazione dei commenti
  31. 13.6.3Gestore JavaScript
  32. console.log e IE
  33. 13.6.4Azione AJAX nel Post Controller
  34. 13.6.5Definire tipo di pagina AJAX in TypoScript
  35. Commenti solo per gli utenti registrati

14.Creare i propri ViewHelper

  1. 14.1Dichiarazione del Namespace
  2. 14.2ViewHelper Testo
  3. 14.2.1Parametri via attributi
  4. 14.2.2Parametri via contenuto
  5. 14.2.3ViewHelper ‘TSFE’
  6. 14.3ViewHelper Tag
  7. Argomenti tag universali
  8. 14.4ViewHelper if (se)
  9. 14.5ViewHelper Widget
  10. 14.5.1Widget di ordinamento
  11. 14.5.2Widget da A alla Z

15.Multi-Lingua

  1. 15.1Configurazione lingua
  2. 15.2Etichette in lingua
  3. 15.3Etichette in lingua con segnaposti
  4. 15.4Sovrascrivere etichette in lingua con TypoScript
  5. 15.5Etichette in lingua in PHP
  6. 15.6Multi-Lingua per oggetti del dominio
  7. 15.6.1Database e TCA
  8. 15.6.2Creare lingue nel Backend
  9. 15.6.3Tradurre una registrazione
  10. 15.6.4Indirizzare il repository correttamente
  11. 15.6.5Creare registrazioni tradotte

16.Moduli di Backend

  1. 16.1Registerare il modulo
  2. 16.2Archivio per etichette in lingua
  3. 16.3TypoScript
  4. 16.4Repository commenti
  5. 16.5Controller commenti
  6. 16.6Templates
  7. 16.6.1Sintassi del markup nel Backend
  8. 16.6.2Azione “Index” (indicizzare)
  9. 16.6.3Azione “List” (elencare)
  10. 16.6.4Pulsanti CSH
  11. 16.6.5Menu “Action”
  12. 16.6.6Pulsante scelta rapida
  13. 16.6.7Pulsante icona

17.Mappatore di proprietà

  1. 17.1Esempio 1: Tipo semplice
  2. 17.2Esempio 2: Tipo complesso
  3. 17.3Configurazione del mappatore
  4. 17.4Configurazione del mappatore nella Stack del MVC
  5. IDE sintassi conforme
  6. 17.5Aspetti di sicurezza
  7. 17.6Sequenza conversioni dei tipi di dati
  8. 17.6.1Risoluzione automatica di TypeConverter

18.Best Practices

  1. 18.1Messaggi flash
  2. 18.1.1Code di multeplici messaggi flash
  3. 18.1.2Accesso nel Controller
  4. 18.2Caricare plugin con TypoScript
  5. 18.3Feed RSS
  6. 18.3.1Icona Font Awesome
  7. 18.3.2Registrare azioni RSS
  8. 18.3.3Azioni RSS nel controllore Blog
  9. 18.3.4Vista in XML
  10. 18.3.5Aggiungere il campo crdate
  11. 18.3.6Setup con TypoScript
  12. 18.4Il UriBuilder
  13. 18.5Caricare Archivi
  14. 18.5.1Rettifiche al modello di dominio
  15. 18.5.2Aggiunta di un campo Upload
  16. 18.5.3Rettifiche al controllore Blog
  17. 18.5.4Rettifiche al modello Blog
  18. 18.5.5Rettifiche TCA
  19. 18.6Caricare attraverso ‘FAL’
  20. 18.6.1Modello di dominio Blog
  21. 18.6.2Riferire ai file nel modello (FileReference)
  22. 18.6.3Banca dati
  23. 18.6.4TCA del modello di dominio Blog
  24. 18.6.5TypoScript
  25. 18.6.6Posizione di archiviazione
  26. 18.6.7Campo Upload nel Template Form-
  27. 18.6.8Immagine nel Template Show-
  28. 18.6.9ViewHelper Form.Upload
  29. 18.6.10Controllore Blog
  30. 18.6.11Registrazione del Convertitore
  31. 18.6.12Convertitore FileReference Caricati
  32. 18.7File Abstraction Layer (FAL)
  33. 18.7.1Banca dati
  34. 18.7.2Table Configuration Array (TCA)
  35. 18.7.3XLIFF
  36. 18.7.4Modello di dominio
  37. 18.7.5Template Show- controllore Post
  38. 18.8stdWrap nelle impostazioni
  39. 18.9Signal Slot Dispatcher
  40. 18.9.1Segnali
  41. 18.9.2Slot
  42. 18.9.3Segnali Incorporati
  43. 18.9.4Esempio del’uso di Segnali Incorporati
  44. Accesso in scrittura tramite slot
  45. 18.9.5Creazione dei propri Segnali
  46. 18.10API Categorie
  47. 18.11Modelli Extbase
  48. 18.12Compiti di pianificazione
  49. 18.13JSON View
  50. 18.13.1Resa JSON nel esempio Blog

19.PHP 7

  1. 19.1Messaggio di errore FileReference: “should be compatible”

20.Riferimenti

  1. 20.1File ext_emconf.php
  2. 20.2Tipi di campo nel FlexForm
  3. 20.2.1Campo testo
  4. 20.2.2Campo Data
  5. 20.2.3Casella di spunta (Checkbox)
  6. 20.2.4Area di testo (Textarea)
  7. 20.2.5Textarea con RTE
  8. 20.2.6Pulsanti di scelta
  9. 20.2.7Elenco di scelta (Selectbox)
  10. 20.2.8Selectbox (Multipla)
  11. 20.2.9Browser di pagine

Glossario

Contributor

About the Contributors

Michael Schams is an active and long-term member of the TYPO3 community and combines extensive experience with fresh ideas. He holds a master's degree in computer sciences, is an international advocate of open-source technologies and regularly publishes articles in professional journals and online media.

Currently based in Melbourne (Australia), Michael consults with clients across the globe to achieve best outcomes in the digital space, web hosting, IT infrastructure, IT security and cloud computing/storage.

Get the free sample chapters

Click the buttons to get the free sample in PDF or EPUB, or read the sample online here

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earned over $14 million writing, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub