TYPO3 Extbase (Italiano)
TYPO3 Extbase (Italiano)
Sviluppo Estensioni Moderne per TYPO3 CMS con Extbase & Fluid
Info 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.
Questo libro è anche disponibile in questa collezione:
Info 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
Leanpub offre una garanzia di felicità. Nessun rischio, 100% di garanzia di soddisfazione
Entro 60 giorni dall'acquisto, è possibile ottenere un rimborso completo del 100% del valore su qualsiasi acquisto Leanpub. Vedi termini completi.
Guadagna $8 su un acquisto di $10 e $16 su un acquisto di $20
Paghiamo 80% di royalties sugli acquisti di $7,99 o più e 80% di royalties meno una tariffa 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 più di questo su Leanpub.)
In effetti, gli autori hanno guadagnatooltre 13 milioni di dollari scrivendo, pubblicando e vendendo su Leanpub.
Scopri di più sulla scrittura su Leanpub
Aggiornamenti gratuiti. Senza DRM.
Se acquisti un libro Leanpub, ottieni aggiornamenti gratuiti per tutto il tempo che l'autore aggiorna il libro! Molti autori usano Leanpub per pubblicare i loro libri in corso, mentre li stanno scrivendo. Tutti i lettori ricevono aggiornamenti gratuiti, indipendentemente da quando hanno acquistato il libro o quanto hanno pagato (anche gratis).
La maggior parte dei libri Leanpub sono disponibili in formato PDF (per computer) e 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 protezione DRM anti-copia, quindi puoi leggerli facilmente su qualsiasi dispositivo supportato.
Scopri di più sui formati di ebook di Leanpub e dove leggerli