Drupal 7 as an enterprise web application framework Why as a developer you should use Drupal to build web applications? Klaus Harris DrupalCon Munich 2012.

Slides:



Advertisements
Similar presentations
Drupal in the Enterprise
Advertisements

Become a Panels Rockstar. Audience Survey Have you tried Panels? Are you a …. –Themer / Designer? –Developer / Code Junkie? –Information Architect?
Moving stuff around on your Drupal web pages Alex Bergin / Dept. Agriculture &
JIBRAN IJAZ What is new in Drupal 8?
DOMINATE THE THEME LAYER August 21st.. Jesper Wøldiche Rahkonen Themer / architect at Bysted. Markup Marine / Journalist / Frontend United
Gallery YOUR PHOTOS ON YOUR WEBSITE Sourceforge Advisory Council Bharat Mediratta March 9 th, 2006.
Steve Kessler Denver DataMan. Our Presentation What is Drupal Drupal Core Modules Site Building Resources.
Using Drupal for Your Organizational Website (or, how to use Drupal without cursing) Michelle Murrain Nonprofit Open Source Initiative MetaCentric Technology.
Seattle Drupal Clinic Introduction to Drupal and Web Content Management.
Drupal Online Tutorial A Product of an ENGL 421 class at Purdue University Page 1.
Introducing new web content management tools for Priority...
Comparing Drupal Taking a look at Drupal for your Open Source CMS platform.
Drupal Migration Everright Chen. About Me ●Developer Master in CI&T ●Drupal (8+) ●Drupal, Magento, Wordpress, osCommerce ●PHP, Python, Java, Bash, Ruby,
Drupal Create a website/web app quickly with this Content Management System Jiaying Xu Spring 2011 COMS E6125 Web-enHanced Information.
UWWD In our quest to eliminate bad websites, we present…. HALLELUJAH!!
CONTENT MANAGEMENT SYSTEM (CMS) By Joseph Stern. Are Custom Coded Websites Dead?
The easy way to a nice looking website design By a total non-designer (Me!)
Open Source Content Management System - JOOMLA Swapnil S. Chafale Nagpur (M.S.) India Paper-Presentation For ATCON-2009 Conference.
Kentico CMS 5.0 Full-featured Flexible Web Content Management System for All Your Needs.
Build a CMS Website. The topics this chapter covers are: What is CMS ? What you can do with CMS The benefits and disadvantages of using a content management.
The Dr ü G Book: An Intro to Drupal The Dr ü G Book: An Intro to Drupal (Dr ü G: Drupal User ’ s Group - users, not developers) This is an introduction.
Justin Klein Keane Drupal Training Session 1 Introduction to Drupal.
Drupal Workshop Introduction to Drupal Part 1: Web Content Management, Advantages/Disadvantages of Drupal, Drupal terminology, Drupal technology, directories.
Walking the walk and talking the talk… T HE L ANGUAGE OF D RUPAL.
Drupal and the CMS Project. Lesson Learned #1 Keep your modules updated, especially when there are security concerns in the update notes 2010 | The Sky’s.
Hook, Drush, and Alters Oh Mai! Bryan Ollendyke.
Using Drupal to Build Applications Chris Porter Acquia, Inc. August 21,
Installing CiviCRM onto Wordpress. How does it work?
TOP 20 MISTAKES YOU WILL MAKE IN YOUR 1ST DRUPAL PROJECT IZTOK SMOLIČ, ZAGREB.
Choosing a web CMS and an introduction to Modx March 2010.
CMS Confusion….You only need one ! November 2012 Chris Schofield
Web Apps 2011 New Delhi CONFIDENTIAL NOT FOR GENERAL DISTRIBUTION © Magnon Solutions Pvt. Ltd. ALL RIGHTS RESERVED All trademarks are acknowledged to be.
WordPress Web. WordPress Blogging system with full content management Personal publishing system Built on PHP scripting language and MySQL relational.
Drupal Training Syllabus Chaitanya Lakshmi
Joomla! Day France SEBLOD Version 2.0 for Joomla! 1.6.
Content Management Systems Drupal. Content Introduction Setting up Drupal Structure Features Core functions Comparison of Joomla and Drupal Total Cost.
What is Drupal? Open Source software written in php. A CMS or content-management system. A sophisticated web application building tool.
Joomla! Reborn: coding in version 1.5. It finally works the way you always wanted Completely overhauled codebase Improved security Better menu and URL.
Revolutionizing enterprise web development Searching with Solr.
Drupal Commerce Better than Uber Andrew Root: druroot.
10 Reasons to Choose the Yii Framework. The development of Yii framework began on January 1, 2008.Yii framework It is an open source application that.
Farcry Not just a game anymore…. What is Farcry?  Farcry is a Content Management System (CMS)  It is designed to separate the jobs of site creation/design.
Proposal for the new group web infrastructure SFT Group meeting 3/7/2009 Yves Perrin.
What you don’t know you don’t know about Drupal 6 Dan Harris daneesia on drupal.org.
Drupal Overview Prepared by : Agustin D. Gumogda Jr. Instructor.
Forensic Drupal Debugging Dan Harris daneesia on drupal.org.
Basics of Drupal for Admins Rochelle Terman
Seattle Drupal Clinic Introduction to Drupal Part 1: Web Content Management, Advantages/Disadvantages of Drupal, Drupal terminology.
Web page management system Jonathan Millis Educational Design Resources NTID at RIT.
Web Analytics See what’s working… and what’s not.
Drupal for NGOs 1 Amnesty.org redesign 22 July 2008.
Are You in the Right Room?  Want to learn about Features module  Are a beginner or intermediate drupaler who hasn't really used it yet  Don't have an.
Date : 3/04/2010 Web Technology Solutions Class: PHP Web Application Frameworks.
How EPA/ORD Moved to Drupal 7 Jessica Dearie U.S. EPA, Office of Research and Development Office of Science Information Management.
Comparison B/W Word Press and Joomla By Joomdev Software Solution Pvt Ltd.
INFM 700 Project 3 (Aqua) - Akashdeep Ray - Arnaud Lawson - Neha AR - Vidisha Vedvyas.
CMS Showdown What Is A Content Management System (CMS)? CMS Website Content Outside Content Social Media Connections with CRM Programs Statistics and.
Thinking of Drupal 8? Get started with the resources.
CiviCRM Entity - Superior Drupal Integration A parallel, inclusive vision for the future. A working use case of headless CiviCRM.
How to use Drupal Awdhesh Kumar (Team Leader) Presentation Topic.
Drupal Basics May 30, 2012 By Sean Fitzpatrick. Sean Fitzpatrick | Welcome We're going to talk about Drupal We're going to keep it pretty.
Web Technology Solutions
Understanding the PaaS service model
WordPress Development
Drupal Web page management system Jonathan Millis
The Way Eryk Budi Pratama
Superior Drupal Integration for CiviCRM with a focus on Events
WordPress Development
Drupal 8: Twig and Component Libraries
WordPress Development
Presentation transcript:

Drupal 7 as an enterprise web application framework Why as a developer you should use Drupal to build web applications? Klaus Harris DrupalCon Munich 2012

Brief bio Who am I? What‘s my Drupal story?

Why this talk? 1. Address some preconceptions that developers have about Drupal 2. Why should I as a developer use Drupal 7

Part 1 Preconceptions

Developer preconceptions 1.Drupal is just a CMS 2.Drupal isn’t suitable for large enterprise sites 3.It’s old fashioned procedural code 4.I’ll have to learn some hideous plugin architecture 5.I’ll have to fit around the Drupal data model 6.What I can do is limited (it’s just a CMS) 7.Theming is difficult 8.Drupal is slow 9.I can write something like this but better

1. Drupal is just a CMS We see a lot of comparisons like this: Drupal vs Joomla vs WordPress Open Source CMS Comparison CMS Comparison: Drupal, Joomla and Wordpress by Ashleigh Davis on 27 March 2011 | 6 Comments CMS-Battle: TYPO3 vs Drupal fight over 20 rounds

But not this: Drupal vs Symfony Drupal vs Zend Framework

And according to Wikipedia a web framework has: Web template system Caching Security Database access, mapping and configuration Url mapping Ajax Web services

So why is Drupal is only seen as a CMS? Drupal‘s origins Comparisons with Joomla, Wordpress and Typo3 No comparisons with PHP frameworks like Zend Installable software on some hosters Very node centric data structure in < Drupal 7 Admin interface (horror!) All those modules, it must be a CMS Ignorance

node Teaser Full Drupal 6 was less flexible There was only really one content data type built in, namely the node. Nodes could be sub- typed and had only basic view modes. type A page is a node for example. type

NodeNode revisions And that data lived in two tables

Drupal 7 changes all this! Entity API, make: your own data table(s) different view modes sub-types fields AND you get all the goodneess you know from node API

So now.. node TeaserFull Entity usercustom type Top 5 RSS comment and… type TeaserFull RSS

We aren‘t tied to the Drupal database We can can override the data operation methods. meaning…

node Entity custom type custom type Drupal DB Another DB Web service Our data can come from anywhere…

Add fields Control displayed fields depending on view mode Get the data into search and define which fields to index Use our own view modes Add custom sub-types Be data source agnostic Use all the hooks you are used to from nodes Entities are new in Drupal 7

BUT! You aren‘t tied to entities. If you want, just write your own CRUD code.

What else makes Drupal more web framework?

URL routing / menu Actions and triggers Queue mechanism Database API Caching Form API Theme system File API Roles and permissions and more.. Internationalistion Web services Testing framework Contrib gold such as.. Views Flag Rules Search API

We use actions and triggers extensively Great for decoupling

2. Drupal isn’t suitable for large enterprise sites Wrong! Look at big sites using it and explore case studies. Look at the architecture Drupal.html?page=1http:// Drupal.html?page=1

3. It’s old fashioned procedural code „It‘s not all OOP“ True. Is that bad? * „It has global variables“ True, live with it. „There are so many arrays“ So what? It‘s PHP. *

4. I’ll have to learn some hideous plugin architecture You will find it: Well architected Simple Powerful Intuitive Wrong! Yes! You will need to learn about hooks, overrides and preprocessing but..

It is easy, you will like it For example, making a module:

Menu hook and page callback

Enable the new module.

Simple!

Let‘s make a block

Simple!

Form API is gold

As a developer you will write a LOT of form code You should use a Form API that you like.

5. I’ll have to fit around the Drupal data model Wrong! Think of Drupal as a web framework with some default data structures set up for you. Create data structures via Entities Just make DB tables and write your own CRUD code Get data from entirely different DBs Get data from web services Power to you!

6. What I can do is limited (it’s just a CMS) Wrong! Anything you can build with: Zend Framework Symfony and so on you can build with Drupal. With reduced development time!

This search uses Zend Framework Lucene libraries. Don‘t forget! You can use Zend Framework components in Drupal too!

7. Theming is difficult No it‘s not. Themer - Devel - Examples - Try simple starter theme Zen theme - Basic theme -

Theming is easy

Renderable arrays, theming is even easier.

Devel Themer module

8. I can write something like this but better Really?

9. Drupal is slow Full page caching Partial page caching e.g. blocks Static caching with function calls More efficient Entity loading Javascript aggregation CSS aggregation Master / Slave database configurations Different caching backends e.g. memcache

Drupal performance greatly benefits from: An opcode cache like APC Memcache Check out the Drupal performance group: and some performance related modules such as:

Worth looking here.. on any module page.

Part 2 Why should I as a developer use Drupal 7?

1.What is good about coding Drupal 7? 2.What should I be aware of? 3.What mindset change do I need? 4.Where do I go from here?

1. What is good about coding Drupal 7? It is amazing what you can build just with modules Rapid results Fully featured Code organisation Community and resources There‘s a module for that Really nice APIs Developer tools

2. What should I be aware of? Shock!! Zend Framework Drupal

Organising code Up to you

Configuration

And.. Works the same

Deployment can be easier and trickier Easier through hooks and install pofiles. Trickier with configuration in the DB. Explore Features module. Flush the theme registry after theme changes Flush the menu registry after menu changes

3. What mindset change do I need? You will combine modules AND custom code. Don‘t look for MVC, it‘s more PAC * Don‘t look for a Zend / Symfony file structure Understand OO principles in the API ** and see past the procedural code. Embrace the Drupal way * **

4. Where do I go from here? Explore Drupal.org Buy a book Who uses Drupal? Experiment Install Drupal Try some cookbook site builds Experiment with programming devel, drush, schema, devel_themer modules Explore the examples module Write a module

Where could you use Drupal to get started? Personal site An intranet tool e.g. wiki / bug tracker / CRM New business project Part of a business presence Or a hybrid form The trick is to gain experience. I started with Drupal via a hybrid model..

Drupal An established B2C website News, help & FAQ Main DB Main DBs Drupal DB IntranetInternet Views Multi-lingual content for news, help and FAQs built in Drupal.

I liked Drupal so much we built on it for a startup

It was a good decision and is fun!

Thank you for listening Klaus Harris

Appendix Some good books Drupal 6 Using Drupal - First edition 1, O'Reilly Press Pro Drupal 6 Development - Second Edition Apress Drupal 7 Drupal 7 Module Development - Packt Pro Drupal 7 Development, Apress The Definitive Guide to Drupal 7 - Apress

Some links Developer modules

Recommended starter themes MVC vs PAC Drupal and OOP