+ All Categories
Home > Documents > Drupal 7 as an enterprise web application framework Why as a developer you should use Drupal to...

Drupal 7 as an enterprise web application framework Why as a developer you should use Drupal to...

Date post: 15-Jan-2016
Category:
Upload: elfrieda-camilla-lucas
View: 222 times
Download: 0 times
Share this document with a friend
Popular Tags:
66
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
Transcript
Page 1: 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.

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

Page 2: 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?

Page 3: 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.

Why this talk?

1. Address some preconceptions that developers have about Drupal

2. Why should I as a developer use Drupal 7

Page 4: 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.

Part 1

Preconceptions

Page 5: 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.

Developer preconceptions

1. Drupal is just a CMS2. Drupal isn’t suitable for large enterprise sites3. It’s old fashioned procedural code4. I’ll have to learn some hideous plugin architecture5. I’ll have to fit around the Drupal data model6. What I can do is limited (it’s just a CMS)7. Theming is difficult8. Drupal is slow9. I can write something like this but better

Page 6: 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.

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

Page 7: 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.

But not this:

Drupal vs Symfony

Drupal vs Zend Framework

Page 8: 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.

And according to Wikipedia a web framework has:

• Web template system• Caching• Security• Database access, mapping and configuration• Url mapping• Ajax• Web services

http://en.wikipedia.org/wiki/Web_application_framework

Page 9: 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.

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

Page 10: 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.

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 type type

Page 11: 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.

Node Node revisions

And that data lived in two tables

Page 12: 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.

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

Page 13: 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.

So now..

node

TeaserFull

Entity

user custom

type

Top 5

RSS

comment

and…

type type type type

TeaserFull

RSS

Page 14: 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.

We aren‘t tied to the Drupal database

We can can override the data operation methods.

meaning…

Page 15: 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.

node

Entity

custom

typetype type

custom

typetype

Drupal DB

Another DB

Web service

Our data can come from anywhere…

Page 16: 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.

• 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

Page 17: 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.
Page 18: 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.

BUT!

You aren‘t tied to entities.

If you want, just write your own CRUD code.

Page 19: 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.

What else makes Drupal more web framework?

Page 20: 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.

• 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

Page 21: 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.

We use actions and triggers extensively

Great fordecoupling

Page 22: 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.

2. Drupal isn’t suitable for large enterprise sites

Wrong!

Look at big sites using it and explore case studies.

Look at the architecture.

• http://www.examiner.com/• http://www.acquia.com/resources/case-study/examinercom• http://www.govtech.com/policy-management/Why-Big-Sites-Run-Drupal.html?page=1• http://buytaert.net/tag/drupal-sites

Page 23: 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.

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.

* http://drupal.org/node/547518

Page 24: 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.

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..

Page 25: 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.

It is easy, you will like it

For example, making a module:

Page 26: 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.

Menu hook

and

page callback

Page 27: 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.

Enable the new module.

Page 28: 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.

Simple!

Page 29: 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.

Let‘s make a block

Page 30: 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.
Page 31: 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.

Simple!

Page 32: 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.

Form API is gold

Page 33: 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.
Page 34: 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.
Page 35: 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.
Page 36: 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.

As a developer you will write a LOT of form code

You should use a Form API that you like.

Page 37: 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.

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!

Page 38: 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.

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!

Page 39: 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.

This search uses Zend Framework Lucene libraries.

Don‘t forget! You can use Zend Framework components in Drupal too!

Page 40: 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.

7. Theming is difficult

No it‘s not.

• Themer - http://drupal.org/project/devel_themer • Devel - http://drupal.org/project/devel• Examples - http://drupal.org/project/examples

Try simple starter theme

• Zen theme - http://drupal.org/project/zen• Basic theme - http://drupal.org/project/basic

Page 41: 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.

Theming is easy

Page 42: 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.
Page 43: 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.

Renderable arrays, theming is even easier.

Page 44: 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.

Devel Themer module

Page 45: 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.

8. I can write something like this but better

Really?

Page 46: 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.

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

Page 47: 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.

Drupal performance greatly benefits from:

• An opcode cache like APC• Memcache

Check out the Drupal performance group: http://groups.drupal.org/high-performance

and some performance related modules such as:

• http://drupal.org/project/memcache• http://drupal.org/project/mongodb • http://drupal.org/project/varnish

Page 48: 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.

Worth looking here..

on any module page.

Page 49: 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.

Part 2

Why should I as a developer use Drupal 7?

Page 50: 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.

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?

Page 51: 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.

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

Page 52: 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.

2. What should I be aware of?

Shock!!

Zend Framework Drupal

Page 53: 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.

Organising code

Up to you

Page 54: 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.

Configuration

Page 55: 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.

And..

Works the same

Page 56: 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.

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

Page 57: 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.

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

* http://www.garfieldtech.com/blog/mvc-vs-pac http://www.dossier-andreas.net/software_architecture/pac.html

** http://drupal.org/node/547518

Page 58: 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.

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

Page 59: 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.

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..

Page 60: 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.

Drupal An established B2C website News, help

& FAQ

Main DBMain DBs

Drupal DB

IntranetInternet

Views

Multi-lingual content for news, help and FAQs built in Drupal.

Page 61: 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.

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

Page 62: 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.

It was a good decision

and is fun!

Page 63: 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.

Thank you for listening

Klaus Harris

[email protected]

www.distribly.com

Page 64: 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.

Appendix

Some good books

Drupal 6

Using Drupal - First edition 1, O'Reilly PressPro Drupal 6 Development - Second Edition Apress

Drupal 7

Drupal 7 Module Development - PacktPro Drupal 7 Development, ApressThe Definitive Guide to Drupal 7 - Apress

Page 65: 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.

Some links

http://drupal.org

Developer modules

http://drupal.org/project/admin_menu http://drupal.org/project/devel http://drupal.org/project/devel_themer http://drupal.org/project/schema http://drupal.org/project/drush http://drupal.org/project/examples

Page 66: 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.

Recommended starter themes

http://drupal.org/project/basic http://drupal.org/project/zen

MVC vs PAC

http://www.garfieldtech.com/blog/mvc-vs-pac http://www.dossier-andreas.net/software_architecture/pac.html

Drupal and OOP

http://drupal.org/node/547518


Recommended