SlideShare uma empresa Scribd logo
1 de 23
START  WITH  BOLT
AND  GO  EZ
27.8.2015
Jani Tarvainen
About  Myself
§ Front  End  Competence  Lead  and
Senior  Developer  at  Exove
§ I  do  a  bit  everything
§ Web  Development,  (Web)  server  hacking,  SEO,  Analytics…
§ Interested  in  Commodore,  DEC  Alpha,  demo  scene,  
web  sites  built  with  frames  and  <layers>,  Web  
Components,  Google  Knowledge  Graph,  HTTP/2,  
Beowulf  Clusters...  And  everything  in  between!  :)
§ Tweets  at  @velmu
About  Exove
Exove is  a  leading  digital  services  design  and  
development  company  focusing  on  Open  
Technologies.
§ Founded  in  2006
§ Offices  in  Finland,  Estonia  and  UK
§ Over  70  people
§ Broad  technology  mix:  WordPress,  Drupal,
eZ Publish,  Symfony 2,  Node.js,  Static  HTML…
§ Awarded  among  the  best  working  places  in  Finland
Exove is  hiring
§ Finns  gave  the  world  Linux,  
IRC,  SMS,  Doctrine…  
§ Multiple  open  positions:
Test  Engineer,  DevOps
Support  Developer,  
Node.JS Developer,  Full-­
stack  Developer,  Senior  
Developer  /  Architect...
§ See  details  at  
www.exove.com/careers
SO  WHAT  IS  BOLT  AND
HOW  DOES  IT  COMPARE  
TO  EZ PLATFORM?
What  is  Bolt  CMS?
§ A  lightweight  Content  Management  System  built  
with  the  Silex Microframework
§ Quite  new  -­ in  development  since  2012
§ Similar  to  WordPress  in  many  aspects
§ A  complete  package  with  WYSIWYG,
media  management,  permission  management,  etc.
§ Very  easy  to  install,  SQLite  DB  by  default
§ Extensions  installable  via  GUI
What  is  Bolt  CMS?
§ Very  good  for  developers,  end  user  experience  
still  lacking  in  places
§ Limited  in  features,  but  a  solid  foundation
§ No  versioning,  multilingual  support  limited…
§ Quite  well  documented
§ Extensions  installed  via  admin  using  Composer
§ Commercial  support  provided  by  Two  Kings  – a  
Netherlands  webdev shop
Shared  between
eZ Platform  and  Bolt
§ Modern  PHP  apps  can  share  a  lot!
§ eZ and  Bolt  share  basic  concepts
§ Flexible  content  model
§ Both  based  on  Symfony Components
§ Configuration  formats
§ Console  feels  the  same,  etc,  etc.
§ Common  conventions  and  lingo
§ Template  format  and  practices  (thanks  Twig)
My  experience  with  Bolt
§ Very  quick  to  get  up  and  running
§ I  wish  eZ was  this  easy
§ Up  and  running  in  minutes
§ An  unknown  brand,  can’t  really  use  it  at  work  –
everyone  wants  WordPress
§ I  don’t  like  how  the  default  themes  are  built
§ Include  header,  footer  –not  extending  layout
My  experience  with  Bolt
§ I  run  three  sites  with  Bolt  now,  after  some  trolling
I’ve  hit  Hacker  News  and  Slashdot  front  pages
§ All  cool  with  default  cache  config,  no  reverse  proxy
§ Solid  with  HHVM  and  H2O  HTTP/2  web  server
§ SQLite  to  MySQL  migrations  a  bit  tricky
§ Upgrading  from  older  versions  (1.x  to  latest  2.x)  
smooth
Introduction
§ Let’s  checkout  the  common  functions  real  quick
§ Content  Entry
§ Content  Types
§ Theming
§ Permissions
§ Live  site:  https://www.symfony.fi/
SWITCH  TO  EZ PLATFORM?
WHEN,  WHY  AND  HOW?
Bolt  is  and  should
remain  simple
§ Bolt  has  a  lot  less  features  and  complexity  
compared  to  eZ Platform  /  Publish
§ Multisites not  available
§ Multilingual  possible,  but  hacky (think  Drupal  7)
§ IMO  Bolt  should  not  be  extended  too  far,  it’ll  just  
become  another  do-­it-­all  behemoth  of  a  CMS
§ Keep  Bolt  fun  to  work  with  while  teaching  you  to  
do  things  right
Integrating  Bolt  and  eZ?
§ Both  tools  are  CMSes,  so  I  would  not  go  to  far  in  
trying  to  tie  these  two  together  in  the  backend
§ Bolt  could  be  a  good  choice  if  you  want  customers  to  
have  a  simple  interface  for  blogs
§ It  seems  like  a  good  choice  to  get  started  with  
Bolt  and  then  upgrade  /  migrate  to
eZ Platform  once  you  need  the  it’s  features
eZ Platform  can  pick  up  
from  where  Bolt  leaves
§ Multilingual  sites
§ Multisite  installations
§ Versioning
§ Content  hierarchy
§ Advanced  caching
§ Introducing  more  structure  with  Symfony 2
§ Integrating  with  other  data  models
BOLT2EZ  BRIDGE
Bolt2eZ  Bundle
§ I  will  migrate  a  site  from  Bolt  CMS  to  eZ Platform  
I  thought  I’d  write  a  quick  kludge  script  to  do  this
§ But  if  there  is  demand…  why  not  make  a  more  
general  purpose  script
§ For  this  I  need  your  help
Bolt2eZ  spec  validation
§ A  bundle  with  console  scripts  to  interact  with  Bolt  
configs and  SQLite  DB
§ Import  and  convert  content  types  from  Bolt
§ Import  content,  mapping  to  content  types,  retaining  
URLs,  relations  in  content,  etc.
§ Could  be  something  along  the  lines  of  this
§ php ezpublish/console  bolt2ez:import:model  -­-­
env=prod  -­-­siteaccess=admin  -­-­boltroot=../boltsite
A  HYPOTHETICAL  STORY
Reality  bites
§ Sales  has  found  a  golden  opportunity  to  get  their  
shoe  between  the  door  of  a  great  client
§ Big  riches  await  if  we  do  pull  this  off!
§ It’s  a  salvage  project  of  a  blog  with  a  hard  deadline
§ They  call  up  some  developer,  who  estimates
“Maybe  we  can  hack  something  together  with  Bolt”
§ Project  is  sold  as  a  Bolt  project  with  schedule  set  by  
the  client.  You’re  available  so  you’ll  build  it.
§ PM  forwards  you  a  few  emails,  templates  and  says  
this  should  be  fast  since  “it’s  mostly  done  already”
Reality  bites
§ This  is  what  you  get  paid  for,  solving  problems
§ So  let’s  figure  out  how  to:
§ Install  Bolt
§ Create  the  content  model
§ Port  the  raw  theme  to  Bolt
§ Provide  an  RSS  feed  
§ Provide  an  XML  sitemap
§ Import  content  from  WordPress  (WXR)
Introduction
http://ezbolt.ezsc
END

Mais conteúdo relacionado

Mais procurados

What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?Takayuki Miyoshi
 
Modern Web App Architectures
Modern Web App ArchitecturesModern Web App Architectures
Modern Web App ArchitecturesRaphael Stary
 
11 Live Node.js CMS Frameworks
11 Live Node.js CMS Frameworks11 Live Node.js CMS Frameworks
11 Live Node.js CMS FrameworksiScripts
 
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesJoomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesAndy_Gaskell
 
How composer saved PHP
How composer saved PHPHow composer saved PHP
How composer saved PHPRyan Kilfedder
 
1ST TECH TALK: "Yii : The MVC framework" by Benedicto B. Balilo Jr.
1ST TECH TALK: "Yii : The MVC framework" by Benedicto B. Balilo Jr.1ST TECH TALK: "Yii : The MVC framework" by Benedicto B. Balilo Jr.
1ST TECH TALK: "Yii : The MVC framework" by Benedicto B. Balilo Jr.Bicol IT.org
 
The Future of-the CMS (Twin Cities DrupalCamp 2015)
The Future of-the CMS (Twin Cities DrupalCamp 2015)The Future of-the CMS (Twin Cities DrupalCamp 2015)
The Future of-the CMS (Twin Cities DrupalCamp 2015)Todd Ross Nienkerk
 
Learn How To Develop With CakePHP
Learn How To Develop With CakePHPLearn How To Develop With CakePHP
Learn How To Develop With CakePHPMichael Bourque
 
Symfony workshop introductory slides
Symfony workshop introductory slidesSymfony workshop introductory slides
Symfony workshop introductory slidesStefan Koopmanschap
 
Web Development In 2018
Web Development In 2018Web Development In 2018
Web Development In 2018Traversy Media
 
WordPress as a Service
WordPress as a ServiceWordPress as a Service
WordPress as a ServiceAndrew Bauer
 
Introduction to webassembly
Introduction to webassemblyIntroduction to webassembly
Introduction to webassemblyGabriele Falasca
 
Progressive Enhancement with Flash
Progressive Enhancement with FlashProgressive Enhancement with Flash
Progressive Enhancement with Flashspjwebster
 
Lecture 11 - Web components
Lecture 11 - Web componentsLecture 11 - Web components
Lecture 11 - Web componentsBryan Ollendyke
 
Introduction to Web Technology Stacks
Introduction to Web Technology StacksIntroduction to Web Technology Stacks
Introduction to Web Technology StacksPrakarsh -
 
Content as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMSContent as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMSPantheon
 

Mais procurados (20)

What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?
 
Modern Web App Architectures
Modern Web App ArchitecturesModern Web App Architectures
Modern Web App Architectures
 
11 Live Node.js CMS Frameworks
11 Live Node.js CMS Frameworks11 Live Node.js CMS Frameworks
11 Live Node.js CMS Frameworks
 
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesJoomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiences
 
How composer saved PHP
How composer saved PHPHow composer saved PHP
How composer saved PHP
 
1ST TECH TALK: "Yii : The MVC framework" by Benedicto B. Balilo Jr.
1ST TECH TALK: "Yii : The MVC framework" by Benedicto B. Balilo Jr.1ST TECH TALK: "Yii : The MVC framework" by Benedicto B. Balilo Jr.
1ST TECH TALK: "Yii : The MVC framework" by Benedicto B. Balilo Jr.
 
The Future of-the CMS (Twin Cities DrupalCamp 2015)
The Future of-the CMS (Twin Cities DrupalCamp 2015)The Future of-the CMS (Twin Cities DrupalCamp 2015)
The Future of-the CMS (Twin Cities DrupalCamp 2015)
 
6 web development trends to follow in 2021
6 web development trends to follow in 20216 web development trends to follow in 2021
6 web development trends to follow in 2021
 
Learn How To Develop With CakePHP
Learn How To Develop With CakePHPLearn How To Develop With CakePHP
Learn How To Develop With CakePHP
 
Php naked
Php nakedPhp naked
Php naked
 
Symfony workshop introductory slides
Symfony workshop introductory slidesSymfony workshop introductory slides
Symfony workshop introductory slides
 
Web Development In 2018
Web Development In 2018Web Development In 2018
Web Development In 2018
 
WordPress as a Service
WordPress as a ServiceWordPress as a Service
WordPress as a Service
 
WebMatrix
WebMatrixWebMatrix
WebMatrix
 
Symfony for non-techies
Symfony for non-techiesSymfony for non-techies
Symfony for non-techies
 
Introduction to webassembly
Introduction to webassemblyIntroduction to webassembly
Introduction to webassembly
 
Progressive Enhancement with Flash
Progressive Enhancement with FlashProgressive Enhancement with Flash
Progressive Enhancement with Flash
 
Lecture 11 - Web components
Lecture 11 - Web componentsLecture 11 - Web components
Lecture 11 - Web components
 
Introduction to Web Technology Stacks
Introduction to Web Technology StacksIntroduction to Web Technology Stacks
Introduction to Web Technology Stacks
 
Content as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMSContent as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMS
 

Semelhante a Start with Bolt and Go Ez - eZ Publish Summer Camp 2015

Portal - Lego set for app development
Portal - Lego set for app developmentPortal - Lego set for app development
Portal - Lego set for app developmentbdaw
 
Plone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric SteelePlone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric SteeleT. Kim Nguyen
 
Building rich interface components with SharePoint
Building rich interface components with SharePointBuilding rich interface components with SharePoint
Building rich interface components with SharePointLouis-Philippe Lavoie
 
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishContent Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishJani Tarvainen
 
Creating and Maintaining an Open Source Library
Creating and Maintaining an Open Source LibraryCreating and Maintaining an Open Source Library
Creating and Maintaining an Open Source LibraryNicholas Schweitzer
 
JS digest. Decemebr 2017
JS digest. Decemebr 2017JS digest. Decemebr 2017
JS digest. Decemebr 2017ElifTech
 
Going native with html5 web components
Going native with html5 web componentsGoing native with html5 web components
Going native with html5 web componentsJames York
 
Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...
Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...
Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...SocialBiz UserGroup
 
JS digest. May 2017
JS digest. May 2017JS digest. May 2017
JS digest. May 2017ElifTech
 
OSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projectsOSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projectsJeongkyu Shin
 
Open Apereo - Web components workshop
Open Apereo - Web components workshopOpen Apereo - Web components workshop
Open Apereo - Web components workshopbtopro
 
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017Marc D Anderson
 
Phonegap Day 2016: Ember/JS & Hybrid Apps Tips
Phonegap Day 2016: Ember/JS & Hybrid Apps TipsPhonegap Day 2016: Ember/JS & Hybrid Apps Tips
Phonegap Day 2016: Ember/JS & Hybrid Apps TipsAlex Blom
 
Training presentation.pptx
Training presentation.pptxTraining presentation.pptx
Training presentation.pptxNishchaiyaBayla1
 

Semelhante a Start with Bolt and Go Ez - eZ Publish Summer Camp 2015 (20)

Portal - Lego set for app development
Portal - Lego set for app developmentPortal - Lego set for app development
Portal - Lego set for app development
 
INTRODUCTIONS OF HTML
INTRODUCTIONS OF HTMLINTRODUCTIONS OF HTML
INTRODUCTIONS OF HTML
 
Plone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric SteelePlone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric Steele
 
Plone Futures
Plone FuturesPlone Futures
Plone Futures
 
Building rich interface components with SharePoint
Building rich interface components with SharePointBuilding rich interface components with SharePoint
Building rich interface components with SharePoint
 
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishContent Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
 
Creating and Maintaining an Open Source Library
Creating and Maintaining an Open Source LibraryCreating and Maintaining an Open Source Library
Creating and Maintaining an Open Source Library
 
JS digest. Decemebr 2017
JS digest. Decemebr 2017JS digest. Decemebr 2017
JS digest. Decemebr 2017
 
Hinting at a better web
Hinting at a better webHinting at a better web
Hinting at a better web
 
Going native with html5 web components
Going native with html5 web componentsGoing native with html5 web components
Going native with html5 web components
 
Open Source at Salesforce.com
Open Source at Salesforce.comOpen Source at Salesforce.com
Open Source at Salesforce.com
 
Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...
Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...
Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...
 
JS digest. May 2017
JS digest. May 2017JS digest. May 2017
JS digest. May 2017
 
SharePoint Framework 101 (SPFx)
SharePoint Framework 101 (SPFx)SharePoint Framework 101 (SPFx)
SharePoint Framework 101 (SPFx)
 
OSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projectsOSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projects
 
Open Apereo - Web components workshop
Open Apereo - Web components workshopOpen Apereo - Web components workshop
Open Apereo - Web components workshop
 
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
 
Whats next in templating
Whats next in templatingWhats next in templating
Whats next in templating
 
Phonegap Day 2016: Ember/JS & Hybrid Apps Tips
Phonegap Day 2016: Ember/JS & Hybrid Apps TipsPhonegap Day 2016: Ember/JS & Hybrid Apps Tips
Phonegap Day 2016: Ember/JS & Hybrid Apps Tips
 
Training presentation.pptx
Training presentation.pptxTraining presentation.pptx
Training presentation.pptx
 

Mais de Exove

Data security in the age of GDPR – most common data security problems
Data security in the age of GDPR – most common data security problemsData security in the age of GDPR – most common data security problems
Data security in the age of GDPR – most common data security problemsExove
 
Provisioning infrastructure to AWS using Terraform – Exove
Provisioning infrastructure to AWS using Terraform – ExoveProvisioning infrastructure to AWS using Terraform – Exove
Provisioning infrastructure to AWS using Terraform – ExoveExove
 
Advanced custom fields in Wordpress
Advanced custom fields in WordpressAdvanced custom fields in Wordpress
Advanced custom fields in WordpressExove
 
Introduction to Robot Framework – Exove
Introduction to Robot Framework – ExoveIntroduction to Robot Framework – Exove
Introduction to Robot Framework – ExoveExove
 
Jenkins and visual regression – Exove
Jenkins and visual regression – ExoveJenkins and visual regression – Exove
Jenkins and visual regression – ExoveExove
 
Server-side React with Headless CMS – Exove
Server-side React with Headless CMS – ExoveServer-side React with Headless CMS – Exove
Server-side React with Headless CMS – ExoveExove
 
WebSockets in Bravo Dashboard – Exove
WebSockets in Bravo Dashboard – ExoveWebSockets in Bravo Dashboard – Exove
WebSockets in Bravo Dashboard – ExoveExove
 
Diversity in recruitment
Diversity in recruitmentDiversity in recruitment
Diversity in recruitmentExove
 
Saavutettavuus liiketoimintana
Saavutettavuus liiketoimintanaSaavutettavuus liiketoimintana
Saavutettavuus liiketoimintanaExove
 
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Saavutettavuus osana Eläkeliiton verkkosivu-uudistustaSaavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Saavutettavuus osana Eläkeliiton verkkosivu-uudistustaExove
 
Mitä saavutettavuusdirektiivi pitää sisällään
Mitä saavutettavuusdirektiivi pitää sisälläänMitä saavutettavuusdirektiivi pitää sisällään
Mitä saavutettavuusdirektiivi pitää sisälläänExove
 
Creating Landing Pages for Drupal 8
Creating Landing Pages for Drupal 8Creating Landing Pages for Drupal 8
Creating Landing Pages for Drupal 8Exove
 
GDPR for developers
GDPR for developersGDPR for developers
GDPR for developersExove
 
Managing Complexity and Privacy Debt with Drupal
Managing Complexity and Privacy Debt with DrupalManaging Complexity and Privacy Debt with Drupal
Managing Complexity and Privacy Debt with DrupalExove
 
Life with digital services after GDPR
Life with digital services after GDPRLife with digital services after GDPR
Life with digital services after GDPRExove
 
GDPR - no beginning no end
GDPR - no beginning no endGDPR - no beginning no end
GDPR - no beginning no endExove
 
Developing truly personalised experiences
Developing truly personalised experiencesDeveloping truly personalised experiences
Developing truly personalised experiencesExove
 
Customer Experience and Personalisation
Customer Experience and PersonalisationCustomer Experience and Personalisation
Customer Experience and PersonalisationExove
 
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Adventures In Programmatic Branding – How To Design With Algorithms And How T...Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Adventures In Programmatic Branding – How To Design With Algorithms And How T...Exove
 
Dataohjattu asiakaskokemus
Dataohjattu asiakaskokemusDataohjattu asiakaskokemus
Dataohjattu asiakaskokemusExove
 

Mais de Exove (20)

Data security in the age of GDPR – most common data security problems
Data security in the age of GDPR – most common data security problemsData security in the age of GDPR – most common data security problems
Data security in the age of GDPR – most common data security problems
 
Provisioning infrastructure to AWS using Terraform – Exove
Provisioning infrastructure to AWS using Terraform – ExoveProvisioning infrastructure to AWS using Terraform – Exove
Provisioning infrastructure to AWS using Terraform – Exove
 
Advanced custom fields in Wordpress
Advanced custom fields in WordpressAdvanced custom fields in Wordpress
Advanced custom fields in Wordpress
 
Introduction to Robot Framework – Exove
Introduction to Robot Framework – ExoveIntroduction to Robot Framework – Exove
Introduction to Robot Framework – Exove
 
Jenkins and visual regression – Exove
Jenkins and visual regression – ExoveJenkins and visual regression – Exove
Jenkins and visual regression – Exove
 
Server-side React with Headless CMS – Exove
Server-side React with Headless CMS – ExoveServer-side React with Headless CMS – Exove
Server-side React with Headless CMS – Exove
 
WebSockets in Bravo Dashboard – Exove
WebSockets in Bravo Dashboard – ExoveWebSockets in Bravo Dashboard – Exove
WebSockets in Bravo Dashboard – Exove
 
Diversity in recruitment
Diversity in recruitmentDiversity in recruitment
Diversity in recruitment
 
Saavutettavuus liiketoimintana
Saavutettavuus liiketoimintanaSaavutettavuus liiketoimintana
Saavutettavuus liiketoimintana
 
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Saavutettavuus osana Eläkeliiton verkkosivu-uudistustaSaavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
 
Mitä saavutettavuusdirektiivi pitää sisällään
Mitä saavutettavuusdirektiivi pitää sisälläänMitä saavutettavuusdirektiivi pitää sisällään
Mitä saavutettavuusdirektiivi pitää sisällään
 
Creating Landing Pages for Drupal 8
Creating Landing Pages for Drupal 8Creating Landing Pages for Drupal 8
Creating Landing Pages for Drupal 8
 
GDPR for developers
GDPR for developersGDPR for developers
GDPR for developers
 
Managing Complexity and Privacy Debt with Drupal
Managing Complexity and Privacy Debt with DrupalManaging Complexity and Privacy Debt with Drupal
Managing Complexity and Privacy Debt with Drupal
 
Life with digital services after GDPR
Life with digital services after GDPRLife with digital services after GDPR
Life with digital services after GDPR
 
GDPR - no beginning no end
GDPR - no beginning no endGDPR - no beginning no end
GDPR - no beginning no end
 
Developing truly personalised experiences
Developing truly personalised experiencesDeveloping truly personalised experiences
Developing truly personalised experiences
 
Customer Experience and Personalisation
Customer Experience and PersonalisationCustomer Experience and Personalisation
Customer Experience and Personalisation
 
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Adventures In Programmatic Branding – How To Design With Algorithms And How T...Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
 
Dataohjattu asiakaskokemus
Dataohjattu asiakaskokemusDataohjattu asiakaskokemus
Dataohjattu asiakaskokemus
 

Último

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 

Último (20)

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 

Start with Bolt and Go Ez - eZ Publish Summer Camp 2015

  • 1. START  WITH  BOLT AND  GO  EZ 27.8.2015 Jani Tarvainen
  • 2. About  Myself § Front  End  Competence  Lead  and Senior  Developer  at  Exove § I  do  a  bit  everything § Web  Development,  (Web)  server  hacking,  SEO,  Analytics… § Interested  in  Commodore,  DEC  Alpha,  demo  scene,   web  sites  built  with  frames  and  <layers>,  Web   Components,  Google  Knowledge  Graph,  HTTP/2,   Beowulf  Clusters...  And  everything  in  between!  :) § Tweets  at  @velmu
  • 3. About  Exove Exove is  a  leading  digital  services  design  and   development  company  focusing  on  Open   Technologies. § Founded  in  2006 § Offices  in  Finland,  Estonia  and  UK § Over  70  people § Broad  technology  mix:  WordPress,  Drupal, eZ Publish,  Symfony 2,  Node.js,  Static  HTML… § Awarded  among  the  best  working  places  in  Finland
  • 4. Exove is  hiring § Finns  gave  the  world  Linux,   IRC,  SMS,  Doctrine…   § Multiple  open  positions: Test  Engineer,  DevOps Support  Developer,   Node.JS Developer,  Full-­ stack  Developer,  Senior   Developer  /  Architect... § See  details  at   www.exove.com/careers
  • 5. SO  WHAT  IS  BOLT  AND HOW  DOES  IT  COMPARE   TO  EZ PLATFORM?
  • 6. What  is  Bolt  CMS? § A  lightweight  Content  Management  System  built   with  the  Silex Microframework § Quite  new  -­ in  development  since  2012 § Similar  to  WordPress  in  many  aspects § A  complete  package  with  WYSIWYG, media  management,  permission  management,  etc. § Very  easy  to  install,  SQLite  DB  by  default § Extensions  installable  via  GUI
  • 7. What  is  Bolt  CMS? § Very  good  for  developers,  end  user  experience   still  lacking  in  places § Limited  in  features,  but  a  solid  foundation § No  versioning,  multilingual  support  limited… § Quite  well  documented § Extensions  installed  via  admin  using  Composer § Commercial  support  provided  by  Two  Kings  – a   Netherlands  webdev shop
  • 8. Shared  between eZ Platform  and  Bolt § Modern  PHP  apps  can  share  a  lot! § eZ and  Bolt  share  basic  concepts § Flexible  content  model § Both  based  on  Symfony Components § Configuration  formats § Console  feels  the  same,  etc,  etc. § Common  conventions  and  lingo § Template  format  and  practices  (thanks  Twig)
  • 9. My  experience  with  Bolt § Very  quick  to  get  up  and  running § I  wish  eZ was  this  easy § Up  and  running  in  minutes § An  unknown  brand,  can’t  really  use  it  at  work  – everyone  wants  WordPress § I  don’t  like  how  the  default  themes  are  built § Include  header,  footer  –not  extending  layout
  • 10. My  experience  with  Bolt § I  run  three  sites  with  Bolt  now,  after  some  trolling I’ve  hit  Hacker  News  and  Slashdot  front  pages § All  cool  with  default  cache  config,  no  reverse  proxy § Solid  with  HHVM  and  H2O  HTTP/2  web  server § SQLite  to  MySQL  migrations  a  bit  tricky § Upgrading  from  older  versions  (1.x  to  latest  2.x)   smooth
  • 11. Introduction § Let’s  checkout  the  common  functions  real  quick § Content  Entry § Content  Types § Theming § Permissions § Live  site:  https://www.symfony.fi/
  • 12. SWITCH  TO  EZ PLATFORM? WHEN,  WHY  AND  HOW?
  • 13. Bolt  is  and  should remain  simple § Bolt  has  a  lot  less  features  and  complexity   compared  to  eZ Platform  /  Publish § Multisites not  available § Multilingual  possible,  but  hacky (think  Drupal  7) § IMO  Bolt  should  not  be  extended  too  far,  it’ll  just   become  another  do-­it-­all  behemoth  of  a  CMS § Keep  Bolt  fun  to  work  with  while  teaching  you  to   do  things  right
  • 14. Integrating  Bolt  and  eZ? § Both  tools  are  CMSes,  so  I  would  not  go  to  far  in   trying  to  tie  these  two  together  in  the  backend § Bolt  could  be  a  good  choice  if  you  want  customers  to   have  a  simple  interface  for  blogs § It  seems  like  a  good  choice  to  get  started  with   Bolt  and  then  upgrade  /  migrate  to eZ Platform  once  you  need  the  it’s  features
  • 15. eZ Platform  can  pick  up   from  where  Bolt  leaves § Multilingual  sites § Multisite  installations § Versioning § Content  hierarchy § Advanced  caching § Introducing  more  structure  with  Symfony 2 § Integrating  with  other  data  models
  • 17. Bolt2eZ  Bundle § I  will  migrate  a  site  from  Bolt  CMS  to  eZ Platform   I  thought  I’d  write  a  quick  kludge  script  to  do  this § But  if  there  is  demand…  why  not  make  a  more   general  purpose  script § For  this  I  need  your  help
  • 18. Bolt2eZ  spec  validation § A  bundle  with  console  scripts  to  interact  with  Bolt   configs and  SQLite  DB § Import  and  convert  content  types  from  Bolt § Import  content,  mapping  to  content  types,  retaining   URLs,  relations  in  content,  etc. § Could  be  something  along  the  lines  of  this § php ezpublish/console  bolt2ez:import:model  -­-­ env=prod  -­-­siteaccess=admin  -­-­boltroot=../boltsite
  • 20. Reality  bites § Sales  has  found  a  golden  opportunity  to  get  their   shoe  between  the  door  of  a  great  client § Big  riches  await  if  we  do  pull  this  off! § It’s  a  salvage  project  of  a  blog  with  a  hard  deadline § They  call  up  some  developer,  who  estimates “Maybe  we  can  hack  something  together  with  Bolt” § Project  is  sold  as  a  Bolt  project  with  schedule  set  by   the  client.  You’re  available  so  you’ll  build  it. § PM  forwards  you  a  few  emails,  templates  and  says   this  should  be  fast  since  “it’s  mostly  done  already”
  • 21. Reality  bites § This  is  what  you  get  paid  for,  solving  problems § So  let’s  figure  out  how  to: § Install  Bolt § Create  the  content  model § Port  the  raw  theme  to  Bolt § Provide  an  RSS  feed   § Provide  an  XML  sitemap § Import  content  from  WordPress  (WXR)
  • 23. END