0
@weaverryan
PHP Tutorial Screencasts
Drupal 8: Huge wins, a
Bigger Community, &
why you (and I) will
love it
PHP Tutorial Screencasts
knplabs.com
github.com/weaverryan
• Lead contributor to the Symfony documentation
!
• KnpLabs US ...
!
!
!
!
!
!
• Husband of the much more
talented @leannapelham
PHP Tutorial Screencasts
knplabs.com
github.com/weaverryan
•...
PHP Tutorial Screencasts
knplabs.com
github.com/weaverryan
• Viví en Querétaro in 2003 for 4 months

• I spoke about 5 wor...
Intro
!
PHP Before Now
(The Desert of the Real)
(1)
!
Sharing and working
together was impossible
https://www.flickr.com/photos/rossap/805947613
Every PHP Framework,
CMS and Project builds
everything from scratch
Sharing was nearly impossible
http://garfieldtech.com/presentations/sunshinephp2014-php-pie
(2)
!
If PHP is big, we’ll thrive
If PHP is small, we’ll die
@weaverryan
Communities
PHP is HUGE! Right?
http://www.flickr.com/photos/kitty-kat/
@weaverryan
PHP > Ruby
@weaverryan http://www.flickr.com/photos/slpunk99/7329609744
Fragmentation:
It makes us tiny, isolated,
and misguided trend...
@weaverryan
PHP projects vs Rails
@weaverryan
CakePHP
I don’t want a damned
CakePHP Plugin!
@weaverryan
CakePHP
CodeIgniter
I want a PHP library I can
use in any project
@weaverryan
Fragmentation
• More information we have to know
!
• Difficult to hire
!
• Disjointed forums, StackOverflow
!
...
Chapter 1
!
Drupal is PHP
PHP is Drupal
PHP is in the middle of a
Renaissance
https://www.flickr.com/photos/kafkapie/3761271639
http://knowyourmeme.com/photos/5713-copypasta
http://garfieldtech.com/presentations/sunshinephp2014-php-pie
• Shares code
!
• works together
!
• uses consistent standards
!
• projects are interoperable
Now: The Community
@weaverry...
Drupal has missed all of
the progress… until now
@weaverryan
Drupal 8 embraces the new
tools and standards…
… and has joined the
PHP community as a
member and leader
@weaverryan
@weaverryan
Chapter 2
!
Drupal 8: New Libraries
https://www.flickr.com/photos/spam/5086168739
Drupal 7:
!
drupal_http_request()
“Drupal's current outgoing-HTTP
capability is, to be polite,
minimal. We have one small
function with a lousy API that
can...
Drupal 8’s HTTP client is
*incredible*
It has been developed
for over 3 years
@weaverryan
Has 2000+ commits
@weaverryan
Was entirely sponsored
by Amazon
@weaverryan
And Drupal developers

didn’t need to waste any

time making it!
@weaverryan
Meet Guzzle!
An independent PHP library 	

that’s great at making 	

HTTP requests
drupal_http_request Guzzle
Available
Documentation
comments above the function 9 chapter book
Commits ~40 ~2000
Contributo...
Drupal 8:



What fantastic libraries
do you get for no effort?
PHPUnit
• Unit-testing library that’s used

across all of PHP

• Some cool German guy spent 

years building this for you!...
Assetic
• JavaScript and CSS processing,

minifying and compiling library

• Used in the Symfony Framework

and other plac...
• Templating engine used for

Drupal 8 theming

• Built by 163 contributors, 

with 2000 commits over 

5 years and 63 rel...
• High-Quality library for reading and

writing RSS and ATOM feeds

• Written by someone else (score!)

• A large chapter ...
And Finally…
Symfony Components
Symfony is just a
collection of decoupled
PHP libraries
Symfony libraries in Drupal
• ClassLoader
• Debug
• DependencyInjection
• EventDispatcher
• HttpFoundation
• HttpKernel
• ...
These are just tools
that Drupal uses,
instead of writing
everything from scratch
Drupal 7
!
“There’s a module for that”
… and if there’s not, the Drupal community
must write one
@weaverryan
PHP
Drupal 7
@weaverryan
Drupal 8
!
“There’s a PHP library for that”
… and if there’s not, the entire PHP community
can work on it together
@weaver...
Drupal 8
Drupal 7
@weaverryan
Chapter 3
!
Drupal 8: Hard to Learn?
https://www.flickr.com/photos/83633410@N07/7658254172
Drupal 8 is much more
object-oriented
Difficult to Learn?
Drupal 7
Deep Arrays
Drupal 8
Objectsvs.
@weaverryan
@weaverryan
Drupal 7
@weaverryan
Drupal 8
@weaverryan
Drupal 7
Drupal 8
Drupal 7
Drupal 8
• Learn Drupalisms (Drupal-specific practices)	

• Non-Drupal developers have a learning curve	

• New de...
Drupal 8: good for you
Learn these new, highly-needed skills
all at once as one big community
https://www.flickr.com/photos...
Bonus
Knowing Drupal 8 means
!
Knowing Silex
Use the same skills to build a
CMS or a custom application
If you know Drupal
!
you understand Symfony
or Drufony
@weaverryan
If you know Symfony
!
you understand Drupal
or Symfal
@weaverryan
Hundreds of pages of
documentation exist, thanks to
Symfony, Guzzle and other libraries
Drupal has a lot of work to do, 

...
Chapter 4
!
New Paradigms mean
New Possibilities
https://www.flickr.com/photos/nasamarshall/6731872025
New Paradigms
• Object-Oriented Code

• Interfaces

• Dependency Injection

• Composer

• Namespaces
@weaverryan
Possible in Drupal 8
Completely replace any
part of core. That’s
supported natively
Possible in Drupal 8
Easier Future Upgrades
Possible in Drupal 8
Add/Remove entire
systems and create
distributions
Drupal for Blogging?
Include Entity/Field, Views
Remove Most admin features
Focus Node Posting System
No blocks CMS
Remove Blocks
Focus
Use only Twig for theming/
layout
Syndication CMS
Include Atom/RSS syndication
Remove
All concepts of content
beyond feeds
Focus Process and serve feeds
One Drupal cannot work
perfectly for everyone
https://www.flickr.com/photos/generalnoir/391009102
But many Drupals
is now possible
https://www.flickr.com/photos/hjmediastudios/7883634326
One Technology
used for many
platforms?
A Proven Model
Best!
Use-Case
Uses Symfony?
Silex Small sites yes
Laravel
Quicker medium/
large sites
yes
Symfony
Framewor...
Drupal 8?
Best!
Use-Case
Uses Drupal?
Drupal Small Small sites yes
Drupal Medium
Quicker medium/
large sites
yes
Drupal En...
Will this happen?
!
It’s up to the
community, but finally
possible
Chapter 5
!
New Features/Goodies
My 9 Favorite things!
(9)
!
Spark: Inline-editing
(8)
!
Nodes available as JSON
(7)
!
Mobile Ready:
Responsive and with an API
Responsive!
(6)
!
Multilingual support
out of the box
(5)
!
Views in Core
(Drupal 8 with views on day 1)
(4)
!
CKEditor in Core
(3)
!
CMI:
Configuration Management
Configuration Management
• Configuration moved from the database

toYAML files

• Engineered with deployment in mind

• Depl...
(2)
!
HTTP Caching
(thanks to Symfony)
(1)
!
Symfony’s Web Debug
Toolbar
Via a community module
https://drupal.org/project/webprofiler
@weaverryan
@weaverryan
https://drupal.org/project/webprofiler
@weaverryan
https://drupal.org/project/webprofiler
@weaverryan
https://drupal.org/project/webprofiler
@weaverryan
https://drupal.org/project/webprofiler
https://drupal.org/project/webprofiler
Are you excited for
Drupal 8 yet?!?
Chapter 6
!
Doing things the
Drupal 7 way
The Revolutionary Tape Player
http://en.wikipedia.org/wiki/Cassette_deck
http://www.amazon.ca/MAXELL-MDV-RW1-Cassette-Rewinder/dp/B00006HOEF
Would you start a
company in 2014 that sold
Walkman ac...
PHP 4
Would you write
a PHP 4 book
today?
http://www.amazon.co.uk/Beginning-PHP4-Programmer-Wankyu-Choi/dp/0764543644
Would you build
a new CMS on
PHP 4?
Drupal 7 is a CMS
built on PHP 4 technology
Drupal 7 Drupal 8
Technology PHP 4 (2000-2007) PHP 5.4 (2011-)
Practices Outdated, Drupal-specific
Best-Practices, applicab...
Drupal 7 is good,
but we can’t keep
doing things the Drupal 7
way forever
Drupal 8:
!
Innovate away from old
technolog, or die with it
Drupal 8 chooses to
Innovate
A Stronger Community
Higher Quality
Features
New Skills for You
More Tools for You
New Possibilities
PHP Tutorial Screencasts
Ryan Weaver
@weaverryan
¡Gracias!
@weaveryan
@KnpUniversity
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Upcoming SlideShare
Loading in...5
×

Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it

2,201

Published on

It's true: Drupal 8 includes big and exciting changes to its core and how Drupal code is written. These include using outside PHP libraries (Guzzle, Symfony, etc) as well as embracing PHP 5.4 and object-oriented code.

Scary, right? Definitely not! These changes give Drupal 8 so many "wins" and new possibilities that you're going to absolutely love it.

In this keynote, we'll explore the changes together and start to realize all of the wonderful things that each will bring. These include a (much) larger community, many more libraries you can use, higher quality tools, easier future upgrades, and some fantastic new features.

And because Drupal uses Symfony, you'll easily be able to use Symfony (or its little brother Silex) for any non-CMS projects. Being a great Drupal 8 developer means being a great PHP developer.

Of course, Drupal 8 has its criticisms: it will be too hard for new developers to learn, or it will not be useable for smaller sites. We'll take on these concerns directly and see why they are valid, but exaggerated.

Published in: Software, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,201
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it"

  1. 1. @weaverryan
  2. 2. PHP Tutorial Screencasts Drupal 8: Huge wins, a Bigger Community, & why you (and I) will love it
  3. 3. PHP Tutorial Screencasts knplabs.com github.com/weaverryan • Lead contributor to the Symfony documentation ! • KnpLabs US - Symfony consulting, training, Kumbaya ! • Writer for KnpUniversity.com screencasts Buenos Dias!
  4. 4. ! ! ! ! ! ! • Husband of the much more talented @leannapelham PHP Tutorial Screencasts knplabs.com github.com/weaverryan • Lead contributor to the Symfony documentation ! • KnpLabs US - Symfony consulting, training, Kumbaya ! • Writer for KnpUniversity.com screencasts Buenos Dias!
  5. 5. PHP Tutorial Screencasts knplabs.com github.com/weaverryan • Viví en Querétaro in 2003 for 4 months
 • I spoke about 5 words of Spanish. These 5 words 
 did not include hermano nor amigo
 • Learned of the custom of kissing a
 women when greeting her… when a
 woman kissed me on the street Querétaro
  6. 6. Intro ! PHP Before Now (The Desert of the Real)
  7. 7. (1) ! Sharing and working together was impossible
  8. 8. https://www.flickr.com/photos/rossap/805947613 Every PHP Framework, CMS and Project builds everything from scratch
  9. 9. Sharing was nearly impossible
  10. 10. http://garfieldtech.com/presentations/sunshinephp2014-php-pie
  11. 11. (2) ! If PHP is big, we’ll thrive If PHP is small, we’ll die
  12. 12. @weaverryan Communities PHP is HUGE! Right? http://www.flickr.com/photos/kitty-kat/
  13. 13. @weaverryan PHP > Ruby
  14. 14. @weaverryan http://www.flickr.com/photos/slpunk99/7329609744 Fragmentation: It makes us tiny, isolated, and misguided trend-setters https://www.flickr.com/photos/horiavarlan/4273913228
  15. 15. @weaverryan PHP projects vs Rails
  16. 16. @weaverryan CakePHP I don’t want a damned CakePHP Plugin!
  17. 17. @weaverryan CakePHP CodeIgniter I want a PHP library I can use in any project
  18. 18. @weaverryan Fragmentation • More information we have to know ! • Difficult to hire ! • Disjointed forums, StackOverflow ! • Interoperability? What’s that?
  19. 19. Chapter 1 ! Drupal is PHP PHP is Drupal
  20. 20. PHP is in the middle of a Renaissance https://www.flickr.com/photos/kafkapie/3761271639
  21. 21. http://knowyourmeme.com/photos/5713-copypasta http://garfieldtech.com/presentations/sunshinephp2014-php-pie
  22. 22. • Shares code ! • works together ! • uses consistent standards ! • projects are interoperable Now: The Community @weaverryan
  23. 23. Drupal has missed all of the progress… until now @weaverryan
  24. 24. Drupal 8 embraces the new tools and standards…
  25. 25. … and has joined the PHP community as a member and leader @weaverryan
  26. 26. @weaverryan
  27. 27. Chapter 2 ! Drupal 8: New Libraries https://www.flickr.com/photos/spam/5086168739
  28. 28. Drupal 7: ! drupal_http_request()
  29. 29. “Drupal's current outgoing-HTTP capability is, to be polite, minimal. We have one small function with a lousy API that can do basic requests, but that's it. If we want to be serious about web services we need strong bidirectional HTTP support.” https://drupal.org/node/1447736
  30. 30. Drupal 8’s HTTP client is *incredible*
  31. 31. It has been developed for over 3 years @weaverryan
  32. 32. Has 2000+ commits @weaverryan
  33. 33. Was entirely sponsored by Amazon @weaverryan
  34. 34. And Drupal developers
 didn’t need to waste any
 time making it! @weaverryan
  35. 35. Meet Guzzle! An independent PHP library that’s great at making HTTP requests
  36. 36. drupal_http_request Guzzle Available Documentation comments above the function 9 chapter book Commits ~40 ~2000 Contributors ~20 131 Used by Drupal All PHP devs Features Some Many! Compare & Contrast @weaverryan
  37. 37. Drupal 8:
 
 What fantastic libraries do you get for no effort?
  38. 38. PHPUnit • Unit-testing library that’s used
 across all of PHP
 • Some cool German guy spent 
 years building this for you!
 • Core has ~5000 unit tests that
 run in 18 seconds
 • Easily use unit tests (finally) 
 in your project @weaverryan
  39. 39. Assetic • JavaScript and CSS processing,
 minifying and compiling library
 • Used in the Symfony Framework
 and other places http://www.cameronhillphotography.com/@weaverryan
  40. 40. • Templating engine used for
 Drupal 8 theming
 • Built by 163 contributors, 
 with 2000 commits over 
 5 years and 63 releases Twig Loved by:
  41. 41. • High-Quality library for reading and
 writing RSS and ATOM feeds
 • Written by someone else (score!)
 • A large chapter of already-written
 documentation Zend Feed @weaverryan
  42. 42. And Finally…
  43. 43. Symfony Components
  44. 44. Symfony is just a collection of decoupled PHP libraries
  45. 45. Symfony libraries in Drupal • ClassLoader • Debug • DependencyInjection • EventDispatcher • HttpFoundation • HttpKernel • Process • PropertyAccess • Routing • Serializer • Translation • Validator • Yaml
  46. 46. These are just tools that Drupal uses, instead of writing everything from scratch
  47. 47. Drupal 7 ! “There’s a module for that” … and if there’s not, the Drupal community must write one @weaverryan
  48. 48. PHP Drupal 7 @weaverryan
  49. 49. Drupal 8 ! “There’s a PHP library for that” … and if there’s not, the entire PHP community can work on it together @weaverryan
  50. 50. Drupal 8 Drupal 7 @weaverryan
  51. 51. Chapter 3 ! Drupal 8: Hard to Learn? https://www.flickr.com/photos/83633410@N07/7658254172
  52. 52. Drupal 8 is much more object-oriented
  53. 53. Difficult to Learn? Drupal 7 Deep Arrays Drupal 8 Objectsvs. @weaverryan
  54. 54. @weaverryan Drupal 7
  55. 55. @weaverryan Drupal 8
  56. 56. @weaverryan Drupal 7
  57. 57. Drupal 8
  58. 58. Drupal 7 Drupal 8 • Learn Drupalisms (Drupal-specific practices) • Non-Drupal developers have a learning curve • New devs will copy and paste functions and arrays • Learn practices used across almost all languages • Non-Drupal developers feel at home • New devs will copy and paste functions andYAML @weaverryan
  59. 59. Drupal 8: good for you Learn these new, highly-needed skills all at once as one big community https://www.flickr.com/photos/aussiegall/309391023
  60. 60. Bonus
  61. 61. Knowing Drupal 8 means ! Knowing Silex
  62. 62. Use the same skills to build a CMS or a custom application
  63. 63. If you know Drupal ! you understand Symfony or Drufony @weaverryan
  64. 64. If you know Symfony ! you understand Drupal or Symfal @weaverryan
  65. 65. Hundreds of pages of documentation exist, thanks to Symfony, Guzzle and other libraries Drupal has a lot of work to do, 
 but has a head-start! Learning Drupal 8 @weaverryan
  66. 66. Chapter 4 ! New Paradigms mean New Possibilities https://www.flickr.com/photos/nasamarshall/6731872025
  67. 67. New Paradigms • Object-Oriented Code
 • Interfaces
 • Dependency Injection
 • Composer
 • Namespaces @weaverryan
  68. 68. Possible in Drupal 8 Completely replace any part of core. That’s supported natively
  69. 69. Possible in Drupal 8 Easier Future Upgrades
  70. 70. Possible in Drupal 8 Add/Remove entire systems and create distributions
  71. 71. Drupal for Blogging? Include Entity/Field, Views Remove Most admin features Focus Node Posting System
  72. 72. No blocks CMS Remove Blocks Focus Use only Twig for theming/ layout
  73. 73. Syndication CMS Include Atom/RSS syndication Remove All concepts of content beyond feeds Focus Process and serve feeds
  74. 74. One Drupal cannot work perfectly for everyone https://www.flickr.com/photos/generalnoir/391009102
  75. 75. But many Drupals is now possible https://www.flickr.com/photos/hjmediastudios/7883634326
  76. 76. One Technology used for many platforms?
  77. 77. A Proven Model Best! Use-Case Uses Symfony? Silex Small sites yes Laravel Quicker medium/ large sites yes Symfony Framework Enterprise medium/ large sites yes Drupal CMS yes
  78. 78. Drupal 8? Best! Use-Case Uses Drupal? Drupal Small Small sites yes Drupal Medium Quicker medium/ large sites yes Drupal Enterprise Enterprise medium/ large sites yes
  79. 79. Will this happen? ! It’s up to the community, but finally possible
  80. 80. Chapter 5 ! New Features/Goodies
  81. 81. My 9 Favorite things!
  82. 82. (9) ! Spark: Inline-editing
  83. 83. (8) ! Nodes available as JSON
  84. 84. (7) ! Mobile Ready: Responsive and with an API
  85. 85. Responsive!
  86. 86. (6) ! Multilingual support out of the box
  87. 87. (5) ! Views in Core (Drupal 8 with views on day 1)
  88. 88. (4) ! CKEditor in Core
  89. 89. (3) ! CMI: Configuration Management
  90. 90. Configuration Management • Configuration moved from the database
 toYAML files
 • Engineered with deployment in mind
 • Deploy configuration changes from staging
 to production
 • Put configuration into version control @weaverryan
  91. 91. (2) ! HTTP Caching (thanks to Symfony)
  92. 92. (1) ! Symfony’s Web Debug Toolbar Via a community module
  93. 93. https://drupal.org/project/webprofiler @weaverryan
  94. 94. @weaverryan https://drupal.org/project/webprofiler
  95. 95. @weaverryan https://drupal.org/project/webprofiler
  96. 96. @weaverryan https://drupal.org/project/webprofiler
  97. 97. @weaverryan https://drupal.org/project/webprofiler
  98. 98. https://drupal.org/project/webprofiler
  99. 99. Are you excited for Drupal 8 yet?!?
  100. 100. Chapter 6 ! Doing things the Drupal 7 way
  101. 101. The Revolutionary Tape Player http://en.wikipedia.org/wiki/Cassette_deck
  102. 102. http://www.amazon.ca/MAXELL-MDV-RW1-Cassette-Rewinder/dp/B00006HOEF Would you start a company in 2014 that sold Walkman accessories?
  103. 103. PHP 4
  104. 104. Would you write a PHP 4 book today? http://www.amazon.co.uk/Beginning-PHP4-Programmer-Wankyu-Choi/dp/0764543644
  105. 105. Would you build a new CMS on PHP 4?
  106. 106. Drupal 7 is a CMS built on PHP 4 technology
  107. 107. Drupal 7 Drupal 8 Technology PHP 4 (2000-2007) PHP 5.4 (2011-) Practices Outdated, Drupal-specific Best-Practices, applicable across languages Non-Drupal devs Code looks unfamiliar Code feels familiar Developer Experience Arrays and hooks Interfaces, IDE code- completion, shared code
  108. 108. Drupal 7 is good, but we can’t keep doing things the Drupal 7 way forever
  109. 109. Drupal 8: ! Innovate away from old technolog, or die with it
  110. 110. Drupal 8 chooses to Innovate
  111. 111. A Stronger Community
  112. 112. Higher Quality Features
  113. 113. New Skills for You
  114. 114. More Tools for You
  115. 115. New Possibilities
  116. 116. PHP Tutorial Screencasts Ryan Weaver @weaverryan ¡Gracias!
  117. 117. @weaveryan @KnpUniversity
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×