TYPO3 Extbase (Italiano)
TYPO3 Extbase (Italiano)
Sviluppo Estensioni Moderne per TYPO3 CMS con Extbase & Fluid
Informazioni sul Libro
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.
Bundle che includono questo libro
Informazioni sui Collaboratori

Michael Schams is a well-known, long-term member of the TYPO3 community with many years of professional experience. He holds a master's degree in computer sciences, is an international advocate of open-source software, and a regular writer for technical journals and online media.
Currently based in Melbourne (Australia), Michael consults with clients across the globe to achieve best outcomes in the digital space. He is also a member of the TYPO3 Education Committee and an AWS certified Cloud Practitioner and an AWS certified Solutions Architect.
Indice
-
1. Prefazione
- 1.1 L’edizione TYPO3 CMS 7 LTS
- 1.2 Formazione – Esperienza di Patrick
- 1.3 Formazione – Esperienza di Gert-jan
- 1.4 Riconoscimenti
- 1.5 Traduzione
- 1.6 Registro modifiche (changelog)
-
2. Sviluppo moderno di estensioni
- 2.1 Un nuovo TYPO3 emerge
- 2.2 Il Manifesto di Berlino
- 2.3 L’ora di nascita di TYPO3 Flow (FLOW3)
- 2.4 Come la fenice (Phoenix) dalle ceneri
- 2.5 Il dilemma TYPO3
- 2.6 La divisione
-
2.7 La storia di Extbase e Fluid
- 2.7.1 Compatibilità (Backport): Extbase e Fluid
- 2.7.2 Programmazione su un livello avanzato
-
3. Programmazione orientata agli oggetti
- 3.1 Classi e oggetti
-
3.2 Metodi
- 3.2.1 L’operatore freccia (Arrow Operator)
- 3.2.2 Il costruttore (Constructor)
-
3.2.3 L’accesso mediante
$this
- 3.2.4 Caricare metodi con contenuto
-
3.3 L’ereditarietà delle classi (Inheritance)
-
3.3.1 L’accesso mediante
parent
(genitore) - 3.3.2 Verifying Class Derivation
-
3.3.1 L’accesso mediante
- 3.4 Classi astratte
- 3.5 Interfaccie (Interface)
-
3.6 Visibilità: pubblico e protetto
- 3.6.1 ‘Getter’ e ‘Setter’
- 3.7 Cenno sul genere (Type Hints)
- 3.8 Chiamate statici
- 3.9 ‘Namespaces’
-
3.10 Modelli importanti di progettazione
- 3.10.1 Singleton
- 3.10.2 Prototype
- 3.10.3 Dependency Injection
- 3.11 Annotazioni
-
4. Progettazione guidata dal Dominio
- 4.1 Ignoranza sull’infrastruttura
- 4.2 Architettura a strati verticali
-
4.3 Il modello di dominio
- 4.3.1 Linguaggio ubiquitario
- 4.3.2 Blocchi da costruzione di DDD
-
4.4 Strutturare DDD
- 4.4.1 Bounded Context(contesto delimitato)
- 4.4.2 Context Maps (contesto mappato)
- 4.4.3 Core Domain (nucleo del dominio)
- 4.4.4 Shared Kernel (kernel condiviso)
- 4.4.5 Riassunto capitolo
- 4.4.6 Ulteriori riferimenti
-
5. Panoramica di Extbase
-
5.1 Installazione di Extbase & Fluid
- 5.1.1 Conservare Commenti PHP Doc
-
5.2 Installazione del estensione
efempty
-
5.3 Perlustrazione dell’estensione
efempty
-
5.3.1 File
ext_emconf.php
eext_icon.gif
-
5.3.2 File
ext_tables.php
-
5.3.3 File
ext_localconf.php
-
5.3.4 Controller
Pluswerk\Efempty\Controller\StartController
-
5.3.5 Dominio
Pluswerk\Efempty\Domain\Model\Start
- 5.3.6 Resa Attraverso View
- 5.3.7 La Chiamata Show-Action
-
5.3.1 File
-
5.1 Installazione di Extbase & Fluid
-
6. Realizzazione del modello (Modellazione)
- 6.1 Modello usato in questo Libro
-
6.2 Concetto di base
- 6.2.1 Il glossario
- 6.2.2 Creare il modello
-
6.3 Modellazione in Extbase - Extension Builder
- 6.3.1 Proprietà dell’estensione
- 6.3.2 Modello di domonio
- 6.3.3 Proprietà del modello
- 6.3.4 Rapporti nel modello
- 6.4 Rettifiche per le classi Autoload
- 6.5 Installazione dell’estensione
- 6.6 Analisi dei file creati da Extension Builder
-
6.7 Ulteriori funzioni di Extension Builder
- 6.7.1 Duplicato di scorta (backup)
- 6.7.2 Modificare il modello
- 6.7.3 Class Builder
-
7. Preparazione
- 7.1 Frontend frameworks (strutture ‘vetrina’)
- 7.2 Caricare TypoScript statico
- 7.3 Caricare file CSS
-
7.4 Impostazioni ‘IDE’
- 7.4.1 PhpStorm: Crea progetto
- 7.4.2 PhpStorm: File core (nucleo) di Typo3 da includere
- 7.4.3 PhpStrom: Includere file schema di Fluid
- 7.4.4 PhpStorm: Consigli sulla risoluzione di classi
-
7.4.5 Estensione TYPO3
phpstorm
- 7.5 Messaggi d’errore in TYPO3
- 7.6 Svuotare la cache di sistema
-
8. Il processo CRUD
-
8.1 Creare un oggetto (Create)
- 8.1.1 Creare l’azione nel Controller
- 8.1.2 Creare il template di listAction
- 8.1.3 Creare blog statici
- 8.1.4 Persistenza dei blog
- 8.1.5 Il ‘Persistence Manager’: Persistenza Manuale
- 8.1.6 Creare un’Azione propria
- 8.1.7 Modulo per creare un oggetto
- 8.2 Visualizzare un oggetto (Read)
- 8.3 Aggiornare un oggetto (Update)
- 8.4 Eliminare un oggetto (Delete)
- 8.5 Migliorare l’aspetto
- 8.6 Riassunto capitolo
-
8.1 Creare un oggetto (Create)
-
9. Modelli in Fluid: Templates, Layouts e Partials
- 9.1 Creare e referenziare layout
-
9.2 Partials
- 9.2.1 Partials semplici
- 9.2.2 Partials complessi
-
10. Gestione query e repository
- 10.1 Struttura di un classe repository
- 10.2 Funzioni repository per operazioni di scrittura
- 10.3 Funzioni repository per operazioni di lettura
-
10.4 Struttura predefinita di una query
- 10.4.1 Approfondimento: Debugging (rimozione errori)
-
10.5 Aggiustare una query
- 10.5.1 Determinare il risultato
- 10.5.2 Manipolare il risultato
- 10.5.3 Congiunzione logica
- 10.5.4 SQL nativo
- 10.5.5 Impostazioni della query
- 10.6 Esempio: Cerca parola chiave nel titolo
- 10.7 Ricerca dinamica nel Repository
-
10.8 Approfondimento: L’oggetto
Request
-
11. Configurazione TypoScript e FlexForm
-
11.1 TypoScript
- 11.1.1 Ambito del Setup
- 11.1.2 Struttura di base
-
11.1.3 Opzioni:
view
(vista) -
11.1.4 Opzioni:
persistence
(memoria) -
11.1.5 Opzioni:
objects
(oggetti) -
11.1.6 Opzioni:
features
(funzionalità) -
11.1.7 Opzioni:
mvc
-
11.1.8 Opzioni:
settings
(impostazioni) -
11.1.9 Opzioni:
_LOCAL_LANG
-
11.1.10 Opzioni:
_CSS_DEFAULT_STYLE
-
11.2 FlexForm
- 11.2.1 Configurazione FlexForm
- 11.2.2 SCA (Controllo di Azioni commutabili)
- 11.3 TypoScript per le sezioni successive di questo Libro
- 11.4 TypoScript per i moduli di backend
-
11.1 TypoScript
-
12. Validazione e gestione errori
- 12.1 Momento di validazione
- 12.2 Gestione errori
- 12.3 Panoramica della convalida
-
12.4 Convalida delle proprietà
- 12.4.1 Validatori Incorporati
- 12.4.2 Validatori multipli
- 12.4.3 Validatori propri
- 12.5 Convalida dei oggetti
- 12.6 Convalida delle azioni
-
12.7 Visualizzazione errori nei moduli
- 12.7.1 Opzione 1: con mezzi presenti
- 12.7.2 Opzione 2: con un ViewHelper
-
13. Relazioni
- 13.1 Rapporti nel modello di dominio
-
13.2 La matrice di configurazione (TCA)
-
13.2.1 TCA:
ctrl
-
13.2.2 TCA:
interface
-
13.2.3 TCA:
types
-
13.2.4 TCA:
palettes
-
13.2.5 TCA:
columns
-
13.2.1 TCA:
-
13.3 Il processo CRUD per Post
- 13.3.1 Preparazione
- 13.3.2 Creare Post (Create)
- 13.3.3 Leggere Post (Read)
- 13.3.4 Aggiornare Post (Update)
- 13.3.5 Eliminare Post (Delete)
-
13.4 Rapporto m:n con Tag come esempio
- 13.4.1 Creare Tag nel backend
- 13.4.2 Repository per Tag
- 13.4.3 Rettifiche del Post Controller
- 13.4.4 Rettifiche dei Templates e Partials
- 13.4.5 Mostrare Tag in un elenco
-
13.5 Rapporto 1:1 con Autori come esempio
- 13.5.1 Creazione di utenti e gruppi Frontend
- 13.5.2 Collegare l’oggetto di dominio autore alla tabella fe_users
- 13.5.3 Definire l’autore per la creazione e modifica di un post
- 13.5.4 Utente connesso come autore
-
13.6 Commenti & AJAX
- 13.6.1 Registrare l’azione AJAX
- 13.6.2 Visualizzazione dei commenti
- 13.6.3 Gestore JavaScript
- 13.6.4 Azione AJAX nel Post Controller
- 13.6.5 Definire tipo di pagina AJAX in TypoScript
-
14. Creare i propri ViewHelper
- 14.1 Dichiarazione del Namespace
-
14.2 ViewHelper Testo
- 14.2.1 Parametri via attributi
- 14.2.2 Parametri via contenuto
- 14.2.3 ViewHelper ‘TSFE’
- 14.3 ViewHelper Tag
- 14.4 ViewHelper if (se)
-
14.5 ViewHelper Widget
- 14.5.1 Widget di ordinamento
- 14.5.2 Widget da A alla Z
-
15. Multi-Lingua
- 15.1 Configurazione lingua
- 15.2 Etichette in lingua
- 15.3 Etichette in lingua con segnaposti
- 15.4 Sovrascrivere etichette in lingua con TypoScript
- 15.5 Etichette in lingua in PHP
-
15.6 Multi-Lingua per oggetti del dominio
- 15.6.1 Database e TCA
- 15.6.2 Creare lingue nel Backend
- 15.6.3 Tradurre una registrazione
- 15.6.4 Indirizzare il repository correttamente
- 15.6.5 Creare registrazioni tradotte
-
16. Moduli di Backend
- 16.1 Registerare il modulo
- 16.2 Archivio per etichette in lingua
- 16.3 TypoScript
- 16.4 Repository commenti
- 16.5 Controller commenti
-
16.6 Templates
- 16.6.1 Sintassi del markup nel Backend
- 16.6.2 Azione “Index” (indicizzare)
- 16.6.3 Azione “List” (elencare)
- 16.6.4 Pulsanti CSH
- 16.6.5 Menu “Action”
- 16.6.6 Pulsante scelta rapida
- 16.6.7 Pulsante icona
-
17. Mappatore di proprietà
- 17.1 Esempio 1: Tipo semplice
- 17.2 Esempio 2: Tipo complesso
- 17.3 Configurazione del mappatore
- 17.4 Configurazione del mappatore nella Stack del MVC
- 17.5 Aspetti di sicurezza
-
17.6 Sequenza conversioni dei tipi di dati
- 17.6.1 Risoluzione automatica di TypeConverter
-
18. Best Practices
-
18.1 Messaggi flash
- 18.1.1 Code di multeplici messaggi flash
- 18.1.2 Accesso nel Controller
- 18.2 Caricare plugin con TypoScript
-
18.3 Feed RSS
- 18.3.1 Icona Font Awesome
- 18.3.2 Registrare azioni RSS
- 18.3.3 Azioni RSS nel controllore Blog
- 18.3.4 Vista in XML
-
18.3.5 Aggiungere il campo
crdate
- 18.3.6 Setup con TypoScript
- 18.4 Il UriBuilder
-
18.5 Caricare Archivi
- 18.5.1 Rettifiche al modello di dominio
- 18.5.2 Aggiunta di un campo Upload
- 18.5.3 Rettifiche al controllore Blog
- 18.5.4 Rettifiche al modello Blog
- 18.5.5 Rettifiche TCA
-
18.6 Caricare attraverso ‘FAL’
- 18.6.1 Modello di dominio Blog
- 18.6.2 Riferire ai file nel modello (FileReference)
- 18.6.3 Banca dati
- 18.6.4 TCA del modello di dominio Blog
- 18.6.5 TypoScript
- 18.6.6 Posizione di archiviazione
- 18.6.7 Campo Upload nel Template Form-
- 18.6.8 Immagine nel Template Show-
-
18.6.9 ViewHelper
Form.Upload
- 18.6.10 Controllore Blog
- 18.6.11 Registrazione del Convertitore
- 18.6.12 Convertitore FileReference Caricati
-
18.7 File Abstraction Layer (FAL)
- 18.7.1 Banca dati
- 18.7.2 Table Configuration Array (TCA)
- 18.7.3 XLIFF
- 18.7.4 Modello di dominio
- 18.7.5 Template Show- controllore Post
- 18.8 stdWrap nelle impostazioni
-
18.9 Signal Slot Dispatcher
- 18.9.1 Segnali
- 18.9.2 Slot
- 18.9.3 Segnali Incorporati
- 18.9.4 Esempio del’uso di Segnali Incorporati
- 18.9.5 Creazione dei propri Segnali
- 18.10 API Categorie
- 18.11 Modelli Extbase
- 18.12 Compiti di pianificazione
-
18.13 JSON View
- 18.13.1 Resa JSON nel esempio Blog
-
18.1 Messaggi flash
-
19. PHP 7
- 19.1 Messaggio di errore FileReference: “should be compatible”
-
20. Riferimenti
-
20.1 File
ext_emconf.php
-
20.2 Tipi di campo nel FlexForm
- 20.2.1 Campo testo
- 20.2.2 Campo Data
- 20.2.3 Casella di spunta (Checkbox)
- 20.2.4 Area di testo (Textarea)
- 20.2.5 Textarea con RTE
- 20.2.6 Pulsanti di scelta
- 20.2.7 Elenco di scelta (Selectbox)
- 20.2.8 Selectbox (Multipla)
- 20.2.9 Browser di pagine
-
20.1 File
- Glossario
- Note
La Garanzia di Soddisfazione al 100% di 60 Giorni Leanpub
Entro 60 giorni dall'acquisto puoi ottenere un rimborso del 100% su qualsiasi acquisto Leanpub, con due clic.
Tecnicamente questo è rischioso per noi, dato che avrai comunque i file del libro o del corso. Ma siamo così fiduciosi nei nostri prodotti e servizi, e nei nostri autori e lettori, che siamo felici di offrire una garanzia di rimborso totale per tutto ciò che vendiamo.
Puoi scoprire quanto è buono qualcosa solo provandolo, e grazie alla nostra garanzia di rimborso del 100% non c'è letteralmente alcun rischio nel farlo!
Quindi, non c'è motivo per non cliccare sul pulsante Aggiungi al Carrello, giusto?
Vedi i termini completi...
Guadagna 8$ su un acquisto di 10$, e 16$ su un acquisto di 20$
Paghiamo royalty dell'80% sugli acquisti di 7,99$ o superiori, e royalty dell'80% meno una commissione fissa di 50 centesimi sugli acquisti tra 0,99$ e 7,98$. Guadagni 8$ su una vendita di 10$, e 16$ su una vendita di 20$. Quindi, se vendiamo 5000 copie non rimborsate del tuo libro a 20$, guadagnerai 80.000$.
(Sì, alcuni autori hanno già guadagnato molto di più su Leanpub.)
Infatti, gli autori hanno guadagnatooltre 14 milioni di dollariscrivendo, pubblicando e vendendo su Leanpub.
Scopri di più sulla scrittura su Leanpub
Aggiornamenti Gratuiti. Senza DRM.
Se acquisti un libro Leanpub, ricevi aggiornamenti gratuiti per tutto il tempo in cui l'autore aggiorna il libro! Molti autori utilizzano Leanpub per pubblicare i loro libri durante il processo di scrittura. Tutti i lettori ricevono aggiornamenti gratuiti, indipendentemente da quando hanno acquistato il libro o quanto hanno pagato (incluso gratis).
La maggior parte dei libri Leanpub è disponibile in PDF (per computer) ed EPUB (per telefoni, tablet e Kindle). I formati inclusi in un libro sono mostrati nell'angolo in alto a destra di questa pagina.
Infine, i libri Leanpub non hanno alcuna assurda protezione DRM, quindi puoi leggerli facilmente su qualsiasi dispositivo supportato.