giuffrida
TRANSCRIPT
![Page 1: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/1.jpg)
WordPress: da blogging system ad application framework
RelatoreLorenzo Giuffrida
Roma - 13/14 Giugno 2015
![Page 2: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/2.jpg)
logiuffrida lorenzogiuffrida [email protected]
Website: www.lorenzogiuffrida.it
MI PRESENTOweb developer @Yithemes
![Page 3: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/3.jpg)
DIFFUSIONE DI WORDPRESSQuanti siti web sono costruiti usando WordPress?
![Page 4: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/4.jpg)
MARKET SHAREQuasi 1 sito online su 4
(poco più del 23%) è costruito con WordPress
![Page 5: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/5.jpg)
MARKET SHARE CMS
![Page 6: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/6.jpg)
CHANGELOG 0.70
WordPress nasce come blog system
![Page 7: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/7.jpg)
WordPress è un blog system
WordPress è un CMS
CHANGELOG 3.0
![Page 8: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/8.jpg)
CHANGELOG 4.3+WordPress è un CMS
““ The future of WordPress
is in social, mobile, and as an application platform.
Matt Mullenweg State of Word 2013
![Page 9: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/9.jpg)
DEFINIZIONE DI APPLICATION PLATFORMUn middleware per velocizzare lo sviluppo di un’applicazione.
![Page 10: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/10.jpg)
STANDARD WEB APPQuali funzionalità devo implementare
“ogni volta” che sviluppo un nuovo progetto?
![Page 11: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/11.jpg)
USER MANAGEMENTGestione di utenti, ruoli, permessi.
![Page 12: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/12.jpg)
WOOCOMMERCE È LA SCELTA MIGLIORE!
La sua grande diffusione e la flessibilità che lo caratterizzano hanno permesso lo sviluppo di un numero di plugin e temi tale da renderlo adatto a praticamente ogni progetto.
LOCALIZATIONIn un mercato globale bisogna offrire accesso a una vasta platea di potenziali clienti.
![Page 13: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/13.jpg)
MEDIA MANAGEMENTUna web app moderna fornisce interazione utente.Non solo testo, sempre più immagini, video.
![Page 14: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/14.jpg)
FRONT END & BACK ENDGli utenti finali interagiscono con l’app tramite la User Interface.
![Page 15: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/15.jpg)
SPEEDLa velocità di fruizione è il primo parametro con cui l’utente giudica la validità di una web app.
![Page 16: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/16.jpg)
IL TEMPO È DENARO•Non reinventare la ruota
•Focus sul core della web app
![Page 17: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/17.jpg)
PERCHÉ SCEGLIERE UNA APPLICATION PLATFORM•Per la disponibilità di librerie, addon,
script di terze parti
•Aggiornamenti costanti
•Sample code, guide e community di user/developer
![Page 18: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/18.jpg)
WORDPRESS OUT OF THE BOX•User management
•Media upload and management
•Template engine (front end)
•User friendly, customizable back end
![Page 19: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/19.jpg)
WORDPRESS DATABASE•Database schema
•Custom post type
•C.R.U.D. API
![Page 20: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/20.jpg)
WORDPRESS APICore API (shortcode, widget, HTTP, settings, …)
![Page 21: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/21.jpg)
WORDPRESS FOR WEB SERVICESXML-RPC APIWP REST API (WP API)
![Page 22: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/22.jpg)
REST•Representational State Transfer•Definisce solo delle linee guida
![Page 23: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/23.jpg)
IDENTIFICAZIONE DELLE RISORSE
Ciascuna risorsa deve essere identificata univocamente
URI è il metodo naturale al quale siamo già abituati
Esempi :
•http://www.example.com/orders
•http://www.example.com/orders/2011
•http://www.example.com/orders?status=pending
![Page 24: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/24.jpg)
UTILIZZO ESPLICITO DEI METODI HTTP
Accedere alle risorse usando solo metodi HTTP :
•GET
•POST
•PUT
•DELETE
![Page 25: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/25.jpg)
RISORSE AUTODESCRITTIVE• I principi REST non pongono alcun vincolo sulle modalità
di rappresentazione di una risorsa.
•Opportuno usare uno standard adeguato (JSON; XML).
•Rappresentazioni multiple, il client chiederà il formato appropriato.
![Page 26: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/26.jpg)
COLLEGAMENTI TRA RISORSE
Eventuali collegamenti tra risorse devono essere esplicitate nella rappresentazione della risorsa stessa.
![Page 27: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/27.jpg)
COMUNICAZIONE SENZA STATO• Il risultato di una richiesta non
dipende dalle precedenti richieste.
•Scalabilità: cluster di server che possono rispondere alle richieste.
![Page 28: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/28.jpg)
WP REST API (WP API)•REST API via HTTP
•JSON
•Espone post, pagine, commenti, custom post types..
![Page 29: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/29.jpg)
WP REST API HTTP VERBS•GET www.example.com/wp-json/posts
•GET www.example.com/wp-json/posts?filter[s]=pretty
•POST www.example.com/wp-json/posts/4
![Page 30: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/30.jpg)
JSON RESULT
![Page 31: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/31.jpg)
WORDPRESS FOR MOBILE APPS•Oltre PHP
•Back end per app native
•Front end come opzione
•Migliore esperienza mobile
•JavaScript trend
![Page 32: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/32.jpg)
WORDPRESS EXTENSIBILITYMVC pattern vs Plugin API
![Page 33: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/33.jpg)
MVC PATTERN
USER
MODEL
CONTROLLERVIEW
UPDATES MANIPULATER
USESSEES
![Page 34: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/34.jpg)
PLUGIN API
![Page 35: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/35.jpg)
ACTION
![Page 36: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/36.jpg)
FILTER
![Page 37: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/37.jpg)
PLUGINPLUGIN FREE SU WORDPRESS.ORG
PLUGIN PREMIUM SUI MARKETPLACE32.000 3.500
![Page 38: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/38.jpg)
ESEMPI•WPML
•YOAST
•Gravity Forms
•Visual Composer
•W3 Total Cache
![Page 39: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/39.jpg)
COME SCRIVO CODICE PER WORDPRESS?
•WordPress è open source
•WordPress è PHP, JavaScript, CSS
![Page 40: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/40.jpg)
COSA SERVE PER FAR GIRARE UN’APPLICAZIONE SU WORDPRESS?
•Apache, Nginx, IIS.
•Windows, Linux.
•MySQL.
![Page 41: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/41.jpg)
APPLICAZIONI E PLUGIN•Che tipo di applicazioni è
possibile costruire?
•Fin dove posso personalizzare WordPress con un plugin?
![Page 42: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/42.jpg)
E-COMMERCE•WP E-commerce•WooCommerce
![Page 43: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/43.jpg)
FORUM•BBPress
![Page 44: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/44.jpg)
SOCIAL NETWORK•BuddyPress
![Page 45: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/45.jpg)
ALTRI ESEMPI•s2Member
•Booking system Pro
•Job boards
•e-learning/online courses
•Custom applications
![Page 46: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/46.jpg)
PERCHÉ WORDPRESS?•Buona curva di apprendimento
•Back end user-friendly
•Diffusione della piattaforma
•Community
•Personalizzazione
•Redditività
![Page 47: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/47.jpg)
E GLI ALTRI FRAMEWORK/PLATFORM?•Rails
• .NET
•Django
•Zend
•CakePHP
•Altri CMS
![Page 48: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/48.jpg)
NON È LA SCELTA MIGLIORE...•Per applicazioni non content-driven.
•Applicazioni real-time.
•Quando un’altra tecnologia/framework porta al risultato più velocemente.
![Page 49: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/49.jpg)
DOMANDE & RISPOSTE
![Page 50: Giuffrida](https://reader033.vdocuments.site/reader033/viewer/2022052700/55c365c3bb61eb8f7e8b474d/html5/thumbnails/50.jpg)
GRAZIE