WordPress: da blogging system ad application framework
RelatoreLorenzo Giuffrida
Roma - 13/14 Giugno 2015
logiuffrida lorenzogiuffrida [email protected]
Website: www.lorenzogiuffrida.it
MI PRESENTOweb developer @Yithemes
DIFFUSIONE DI WORDPRESSQuanti siti web sono costruiti usando WordPress?
MARKET SHAREQuasi 1 sito online su 4
(poco più del 23%) è costruito con WordPress
MARKET SHARE CMS
CHANGELOG 0.70
WordPress nasce come blog system
WordPress è un blog system
WordPress è un CMS
CHANGELOG 3.0
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
DEFINIZIONE DI APPLICATION PLATFORMUn middleware per velocizzare lo sviluppo di un’applicazione.
STANDARD WEB APPQuali funzionalità devo implementare
“ogni volta” che sviluppo un nuovo progetto?
USER MANAGEMENTGestione di utenti, ruoli, permessi.
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.
MEDIA MANAGEMENTUna web app moderna fornisce interazione utente.Non solo testo, sempre più immagini, video.
FRONT END & BACK ENDGli utenti finali interagiscono con l’app tramite la User Interface.
SPEEDLa velocità di fruizione è il primo parametro con cui l’utente giudica la validità di una web app.
IL TEMPO È DENARO•Non reinventare la ruota
•Focus sul core della web app
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
WORDPRESS OUT OF THE BOX•User management
•Media upload and management
•Template engine (front end)
•User friendly, customizable back end
WORDPRESS DATABASE•Database schema
•Custom post type
•C.R.U.D. API
WORDPRESS APICore API (shortcode, widget, HTTP, settings, …)
WORDPRESS FOR WEB SERVICESXML-RPC APIWP REST API (WP API)
REST•Representational State Transfer•Definisce solo delle linee guida
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
UTILIZZO ESPLICITO DEI METODI HTTP
Accedere alle risorse usando solo metodi HTTP :
•GET
•POST
•PUT
•DELETE
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.
COLLEGAMENTI TRA RISORSE
Eventuali collegamenti tra risorse devono essere esplicitate nella rappresentazione della risorsa stessa.
COMUNICAZIONE SENZA STATO• Il risultato di una richiesta non
dipende dalle precedenti richieste.
•Scalabilità: cluster di server che possono rispondere alle richieste.
WP REST API (WP API)•REST API via HTTP
•JSON
•Espone post, pagine, commenti, custom post types..
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
JSON RESULT
WORDPRESS FOR MOBILE APPS•Oltre PHP
•Back end per app native
•Front end come opzione
•Migliore esperienza mobile
•JavaScript trend
WORDPRESS EXTENSIBILITYMVC pattern vs Plugin API
MVC PATTERN
USER
MODEL
CONTROLLERVIEW
UPDATES MANIPULATER
USESSEES
PLUGIN API
ACTION
FILTER
PLUGINPLUGIN FREE SU WORDPRESS.ORG
PLUGIN PREMIUM SUI MARKETPLACE32.000 3.500
ESEMPI•WPML
•YOAST
•Gravity Forms
•Visual Composer
•W3 Total Cache
COME SCRIVO CODICE PER WORDPRESS?
•WordPress è open source
•WordPress è PHP, JavaScript, CSS
COSA SERVE PER FAR GIRARE UN’APPLICAZIONE SU WORDPRESS?
•Apache, Nginx, IIS.
•Windows, Linux.
•MySQL.
APPLICAZIONI E PLUGIN•Che tipo di applicazioni è
possibile costruire?
•Fin dove posso personalizzare WordPress con un plugin?
E-COMMERCE•WP E-commerce•WooCommerce
FORUM•BBPress
SOCIAL NETWORK•BuddyPress
ALTRI ESEMPI•s2Member
•Booking system Pro
•Job boards
•e-learning/online courses
•Custom applications
PERCHÉ WORDPRESS?•Buona curva di apprendimento
•Back end user-friendly
•Diffusione della piattaforma
•Community
•Personalizzazione
•Redditività
E GLI ALTRI FRAMEWORK/PLATFORM?•Rails
• .NET
•Django
•Zend
•CakePHP
•Altri CMS
NON È LA SCELTA MIGLIORE...•Per applicazioni non content-driven.
•Applicazioni real-time.
•Quando un’altra tecnologia/framework porta al risultato più velocemente.
DOMANDE & RISPOSTE
GRAZIE