SlideShare una empresa de Scribd logo
1 de 34
May 16th, 2013 php|tek 2013 1
E-mail: chris@ctankersley.com
Twitter: @dragonmantank
App.net: @ctankersleyhttps://joind.in/8153
 ChrisTankersley
 Doing PHP for 9Years
 Lots of projects no one uses, and a few that
some do
 TL;DR https://github.com/dragonmantank
 Heavy Drupal Development for 2 years
May 16th, 2013 php|tek 2013 2
 Don’t use Drupal
May 16th, 2013 php|tek 2013 3
 Don’t abuse Drupal
May 16th, 2013 php|tek 2013 4
What powers your site
May 16th, 2013 php|tek 2013 5
 Pre-built *AMP Stack
 Available for Drupal 6 or 7
 Install and Ready to Go
May 16th, 2013 php|tek 2013 6
Advantages
Disadvantages
 Not built for multiple installs
 Can’t use for existing sites
 Only forWindows and Mac
 Best to use for module or theme
development
 I don’t like it for full site development
May 16th, 2013 php|tek 2013 7
 Make use of the “Sites” option to help
separate work
 On Mac, only the /sites/all/ folder is writable
 Even Sites you create are not writable
 Don’t put the entire stack inVC, just your
work
May 16th, 2013 php|tek 2013 8
May 16th, 2013 php|tek 2013 9
 Full server to run code
 Self contained and can be replicated
 Most modern machines can doVM
Advantages
Disadvantages
 Uses more resources
 Easier to break
 Best to use for full site development
 Or use it all the time, it’s nice to have an
environment you control
May 16th, 2013 php|tek 2013 10
 Try and pick a distro that is close to your production
setup. If you are running Redhat in production, set up
an CentOS box
 Set up the document root for your web server to be
the /vagrant folder (or sub folder, depending on your
site layout).This way your site will run automatically.
 If you are running CentOS and Apache, disable
SELinux so that Apache will use the /vagrant folder
 Don't use PHP 5.4 with Drupal 7 or lower
 Make sure APC, or some opcode cache, is installed
 Provide lots of RAM, at least 1GB
May 16th, 2013 php|tek 2013 11
 Run everything off of your local machine!
 Great if you can do it, I like vagrant better
May 16th, 2013 php|tek 2013 12
@grmpyprogrammer will track you down if you don’t
May 16th, 2013 php|tek 2013 13
Automatically making sure your code works
May 16th, 2013 php|tek 2013 14
 Write your tests before you code
 Watch it fail
 Write code to make your tests pass
 Feel better
May 16th, 2013 php|tek 2013 15
 Drupal ships with SimpleTest baked in
 Supports unit testing and functional testing
 Unit tests are done by extending
DrupalUnitTestCase
 Functional tests are done by extending
DrupalWebTestCase
May 16th, 2013 php|tek 2013 16
May 16th, 2013 php|tek 2013 17
 Unit tests do not bootstrap Drupal, so are
very quick
 FunctionalTests bootstrap Drupal, so are very
slow
May 16th, 2013 php|tek 2013 18
 The test runner is AJAX, so it can break very
easily
 Debugging can be hard since extra output
breaks the test runner, and since the DB is
destroyed watchdog() is useless
 You can use $this->verbose(‘message’) or
debug(‘message’) though
May 16th, 2013 php|tek 2013 19
Your command line friend
May 16th, 2013 php|tek 2013 20
Dump your database to an SQL file
$ drush sql-dump --result-file=/PATH/TO/dump.sql
Back up the entire site to a tarball
$ drush archive-dump default
View watchdog entries
$ drush watchdog-list
Update Drupal and modules
$ drush pm-update
Download module
$ drush pm-download [module_name]
May 16th, 2013 php|tek 2013 21
I couldn’t think of a good tagline that should go here
May 16th, 2013 php|tek 2013 22
 Allows you to quickly back up the DB and
move it
 No need to use a DB GUI
 Can do automatic local or remote backups
 Useful for moving databases from one server
to another
May 16th, 2013 php|tek 2013 23
 Exposes a lot of the structure of Drupal
 Things like nodes can be clicked through to see
their object structure
 Can auto-generate dummy content
 Better debugging output
 dpm() and dvm() for pretty output
 dpr(), kpr(), and dvr() will dump to the page
header
May 16th, 2013 php|tek 2013 24
 Package system for Drupal
 Takes a lot of stuff in the DB and makes it
exportable and portable via code
 Lot of stuff works out of the box, extra
modules like UUID, boxes, and features_extra
pick up the slack
 ftools makes updating features easy
May 16th, 2013 php|tek 2013 25
Understand it and harness its power
May 16th, 2013 php|tek 2013 26
 Page caching for full output caching
 Block caching so that dynamic content can
still update if it needs to
 You can configure how long to cache things
for
May 16th, 2013 php|tek 2013 27
 In Full Page Caching, most of the PHP isn’t
run
 Effectively turns your site into a static site (kind
of)
 With block caching, not all blocks will cache.
What and when to cache is up to the block
May 16th, 2013 php|tek 2013 28
It’s kind of like nuclear fusion, but without all the explosions
May 16th, 2013 php|tek 2013 29
 Will group needed JS and CSS files
together, reducing the number of HTTP
requests
 Will minify CSS, reducing some of the
transmission size
YOU have to make your modules take
advantage of it, though
May 16th, 2013 php|tek 2013 30
 Let Drupal know about your files
 drupal_add_js()
 drupal_add_css()
 Add the files to your .info file
 Don’t just add JS and CSS files via <script>
and <style> tags in your theme
May 16th, 2013 php|tek 2013 31
Really, ask.
May 16th, 2013 php|tek 2013 32
 Acquia Dev Desktop
 vagrant
 Drupal SimpleTest
 drush
 Backup and Migrate
 Devel
 Features
May 16th, 2013 php|tek 2013 33
May 16th, 2013 php|tek 2013 34
E-mail: chris@ctankersley.com
Twitter: @dragonmantank
App.net: @ctankersley
https://joind.in/8153

Más contenido relacionado

La actualidad más candente

Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress
Maurizio Pelizzone
 

La actualidad más candente (20)

Capistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient wayCapistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient way
 
WordPress security 101 - WP Turku Meetup 2.2.2017
WordPress security 101 - WP Turku Meetup 2.2.2017WordPress security 101 - WP Turku Meetup 2.2.2017
WordPress security 101 - WP Turku Meetup 2.2.2017
 
Automatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themesAutomatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themes
 
Improving WordPress performance (xdebug and profiling)
Improving WordPress performance (xdebug and profiling)Improving WordPress performance (xdebug and profiling)
Improving WordPress performance (xdebug and profiling)
 
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpOptimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
 
Why it's dangerous to turn off automatic updates and here's how to do it
Why it's dangerous to turn off automatic updates and here's how to do itWhy it's dangerous to turn off automatic updates and here's how to do it
Why it's dangerous to turn off automatic updates and here's how to do it
 
WordPress modern development
WordPress modern developmentWordPress modern development
WordPress modern development
 
Python/Flask Presentation
Python/Flask PresentationPython/Flask Presentation
Python/Flask Presentation
 
WordPress Hardening
WordPress HardeningWordPress Hardening
WordPress Hardening
 
Php Power Tools
Php Power ToolsPhp Power Tools
Php Power Tools
 
The MetaCPAN VM for Dummies Part One (Installation)
The MetaCPAN VM for Dummies Part One (Installation)The MetaCPAN VM for Dummies Part One (Installation)
The MetaCPAN VM for Dummies Part One (Installation)
 
WordPress security 101 - WP Jyväskylä Meetup 21.3.2017
WordPress security 101 - WP Jyväskylä Meetup 21.3.2017WordPress security 101 - WP Jyväskylä Meetup 21.3.2017
WordPress security 101 - WP Jyväskylä Meetup 21.3.2017
 
Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress
 
Developers, Be a Bada$$ with WP-CLI
Developers, Be a Bada$$ with WP-CLIDevelopers, Be a Bada$$ with WP-CLI
Developers, Be a Bada$$ with WP-CLI
 
Building a PWA - For Everyone Who Is Scared To
Building a PWA - For Everyone Who Is Scared ToBuilding a PWA - For Everyone Who Is Scared To
Building a PWA - For Everyone Who Is Scared To
 
Quick flask an intro to flask
Quick flask   an intro to flaskQuick flask   an intro to flask
Quick flask an intro to flask
 
WPDay Bologna 2013
WPDay Bologna 2013WPDay Bologna 2013
WPDay Bologna 2013
 
Open web mail setup
Open web mail setupOpen web mail setup
Open web mail setup
 
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
Philipp Von Weitershausen   Plone Age  Mammoths, Sabers And Caveen   Cant The...Philipp Von Weitershausen   Plone Age  Mammoths, Sabers And Caveen   Cant The...
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
 
Technical SEO for WordPress - 2017 edition
Technical SEO for WordPress - 2017 editionTechnical SEO for WordPress - 2017 edition
Technical SEO for WordPress - 2017 edition
 

Similar a Drupal Development Tips

Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group   nov 8th - drupal 7.32 security vulnerabilityHong kong drupal user group   nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Ann Lam
 
How to? Drupal developer toolkit. Dennis Povshedny.
How to? Drupal developer toolkit. Dennis Povshedny.How to? Drupal developer toolkit. Dennis Povshedny.
How to? Drupal developer toolkit. Dennis Povshedny.
DrupalCampDN
 

Similar a Drupal Development Tips (20)

Making The Drupal Pill Easier To Swallow
Making The Drupal Pill Easier To SwallowMaking The Drupal Pill Easier To Swallow
Making The Drupal Pill Easier To Swallow
 
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group   nov 8th - drupal 7.32 security vulnerabilityHong kong drupal user group   nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
 
Hong Kong Drupal User Group - Nov 8th
Hong Kong Drupal User Group - Nov 8thHong Kong Drupal User Group - Nov 8th
Hong Kong Drupal User Group - Nov 8th
 
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group   nov 8th - drupal 7.32 security vulnerabilityHong kong drupal user group   nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
 
Drupal development
Drupal development Drupal development
Drupal development
 
Drupal in Libraries
Drupal in LibrariesDrupal in Libraries
Drupal in Libraries
 
Drush for drupal website builder
Drush for drupal website builderDrush for drupal website builder
Drush for drupal website builder
 
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
 
How to? Drupal developer toolkit. Dennis Povshedny.
How to? Drupal developer toolkit. Dennis Povshedny.How to? Drupal developer toolkit. Dennis Povshedny.
How to? Drupal developer toolkit. Dennis Povshedny.
 
Drupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp NorthDrupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp North
 
DrupalCampLA 2011: Drupal backend-performance
DrupalCampLA 2011: Drupal backend-performanceDrupalCampLA 2011: Drupal backend-performance
DrupalCampLA 2011: Drupal backend-performance
 
Drupal Multi-Site Setup
Drupal Multi-Site SetupDrupal Multi-Site Setup
Drupal Multi-Site Setup
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
 
Introduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, TerminologiesIntroduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, Terminologies
 
Magento Performance Optimization 101
Magento Performance Optimization 101Magento Performance Optimization 101
Magento Performance Optimization 101
 
Towards the perfect Drupal Dev Machine
Towards the perfect Drupal Dev MachineTowards the perfect Drupal Dev Machine
Towards the perfect Drupal Dev Machine
 
Google App Engine for PHP
Google App Engine for PHP Google App Engine for PHP
Google App Engine for PHP
 
Drupal + composer = new love !?
Drupal + composer = new love !?Drupal + composer = new love !?
Drupal + composer = new love !?
 
Drupal in-depth
Drupal in-depthDrupal in-depth
Drupal in-depth
 
Performance and Scalability
Performance and ScalabilityPerformance and Scalability
Performance and Scalability
 

Más de Chris Tankersley

Más de Chris Tankersley (20)

Docker is Dead: Long Live Containers
Docker is Dead: Long Live ContainersDocker is Dead: Long Live Containers
Docker is Dead: Long Live Containers
 
Bend time to your will with git
Bend time to your will with gitBend time to your will with git
Bend time to your will with git
 
Using PHP Functions! (Not those functions, Google Cloud Functions)
Using PHP Functions! (Not those functions, Google Cloud Functions)Using PHP Functions! (Not those functions, Google Cloud Functions)
Using PHP Functions! (Not those functions, Google Cloud Functions)
 
Dead Simple APIs with OpenAPI
Dead Simple APIs with OpenAPIDead Simple APIs with OpenAPI
Dead Simple APIs with OpenAPI
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for Development
 
You Got Async in my PHP!
You Got Async in my PHP!You Got Async in my PHP!
You Got Async in my PHP!
 
Docker for Developers - PHP Detroit 2018
Docker for Developers - PHP Detroit 2018Docker for Developers - PHP Detroit 2018
Docker for Developers - PHP Detroit 2018
 
Docker for Developers
Docker for DevelopersDocker for Developers
Docker for Developers
 
They are Watching You
They are Watching YouThey are Watching You
They are Watching You
 
BASHing at the CLI - Midwest PHP 2018
BASHing at the CLI - Midwest PHP 2018BASHing at the CLI - Midwest PHP 2018
BASHing at the CLI - Midwest PHP 2018
 
You Were Lied To About Optimization
You Were Lied To About OptimizationYou Were Lied To About Optimization
You Were Lied To About Optimization
 
Docker for PHP Developers - php[world] 2017
Docker for PHP Developers - php[world] 2017Docker for PHP Developers - php[world] 2017
Docker for PHP Developers - php[world] 2017
 
Docker for PHP Developers - Madison PHP 2017
Docker for PHP Developers - Madison PHP 2017Docker for PHP Developers - Madison PHP 2017
Docker for PHP Developers - Madison PHP 2017
 
Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017
 
Why Docker? Dayton PHP, April 2017
Why Docker? Dayton PHP, April 2017Why Docker? Dayton PHP, April 2017
Why Docker? Dayton PHP, April 2017
 
OOP Is More Then Cars and Dogs - Midwest PHP 2017
OOP Is More Then Cars and Dogs - Midwest PHP 2017OOP Is More Then Cars and Dogs - Midwest PHP 2017
OOP Is More Then Cars and Dogs - Midwest PHP 2017
 
From Docker to Production - SunshinePHP 2017
From Docker to Production - SunshinePHP 2017From Docker to Production - SunshinePHP 2017
From Docker to Production - SunshinePHP 2017
 
Docker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPDocker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHP
 
Coming to Terms with OOP In Drupal - php[world] 2016
Coming to Terms with OOP In Drupal - php[world] 2016Coming to Terms with OOP In Drupal - php[world] 2016
Coming to Terms with OOP In Drupal - php[world] 2016
 
How We Got Here: A Brief History of Open Source
How We Got Here: A Brief History of Open SourceHow We Got Here: A Brief History of Open Source
How We Got Here: A Brief History of Open Source
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Drupal Development Tips

  • 1. May 16th, 2013 php|tek 2013 1 E-mail: chris@ctankersley.com Twitter: @dragonmantank App.net: @ctankersleyhttps://joind.in/8153
  • 2.  ChrisTankersley  Doing PHP for 9Years  Lots of projects no one uses, and a few that some do  TL;DR https://github.com/dragonmantank  Heavy Drupal Development for 2 years May 16th, 2013 php|tek 2013 2
  • 3.  Don’t use Drupal May 16th, 2013 php|tek 2013 3
  • 4.  Don’t abuse Drupal May 16th, 2013 php|tek 2013 4
  • 5. What powers your site May 16th, 2013 php|tek 2013 5
  • 6.  Pre-built *AMP Stack  Available for Drupal 6 or 7  Install and Ready to Go May 16th, 2013 php|tek 2013 6 Advantages Disadvantages  Not built for multiple installs  Can’t use for existing sites  Only forWindows and Mac
  • 7.  Best to use for module or theme development  I don’t like it for full site development May 16th, 2013 php|tek 2013 7
  • 8.  Make use of the “Sites” option to help separate work  On Mac, only the /sites/all/ folder is writable  Even Sites you create are not writable  Don’t put the entire stack inVC, just your work May 16th, 2013 php|tek 2013 8
  • 9. May 16th, 2013 php|tek 2013 9  Full server to run code  Self contained and can be replicated  Most modern machines can doVM Advantages Disadvantages  Uses more resources  Easier to break
  • 10.  Best to use for full site development  Or use it all the time, it’s nice to have an environment you control May 16th, 2013 php|tek 2013 10
  • 11.  Try and pick a distro that is close to your production setup. If you are running Redhat in production, set up an CentOS box  Set up the document root for your web server to be the /vagrant folder (or sub folder, depending on your site layout).This way your site will run automatically.  If you are running CentOS and Apache, disable SELinux so that Apache will use the /vagrant folder  Don't use PHP 5.4 with Drupal 7 or lower  Make sure APC, or some opcode cache, is installed  Provide lots of RAM, at least 1GB May 16th, 2013 php|tek 2013 11
  • 12.  Run everything off of your local machine!  Great if you can do it, I like vagrant better May 16th, 2013 php|tek 2013 12
  • 13. @grmpyprogrammer will track you down if you don’t May 16th, 2013 php|tek 2013 13
  • 14. Automatically making sure your code works May 16th, 2013 php|tek 2013 14
  • 15.  Write your tests before you code  Watch it fail  Write code to make your tests pass  Feel better May 16th, 2013 php|tek 2013 15
  • 16.  Drupal ships with SimpleTest baked in  Supports unit testing and functional testing  Unit tests are done by extending DrupalUnitTestCase  Functional tests are done by extending DrupalWebTestCase May 16th, 2013 php|tek 2013 16
  • 17. May 16th, 2013 php|tek 2013 17
  • 18.  Unit tests do not bootstrap Drupal, so are very quick  FunctionalTests bootstrap Drupal, so are very slow May 16th, 2013 php|tek 2013 18
  • 19.  The test runner is AJAX, so it can break very easily  Debugging can be hard since extra output breaks the test runner, and since the DB is destroyed watchdog() is useless  You can use $this->verbose(‘message’) or debug(‘message’) though May 16th, 2013 php|tek 2013 19
  • 20. Your command line friend May 16th, 2013 php|tek 2013 20
  • 21. Dump your database to an SQL file $ drush sql-dump --result-file=/PATH/TO/dump.sql Back up the entire site to a tarball $ drush archive-dump default View watchdog entries $ drush watchdog-list Update Drupal and modules $ drush pm-update Download module $ drush pm-download [module_name] May 16th, 2013 php|tek 2013 21
  • 22. I couldn’t think of a good tagline that should go here May 16th, 2013 php|tek 2013 22
  • 23.  Allows you to quickly back up the DB and move it  No need to use a DB GUI  Can do automatic local or remote backups  Useful for moving databases from one server to another May 16th, 2013 php|tek 2013 23
  • 24.  Exposes a lot of the structure of Drupal  Things like nodes can be clicked through to see their object structure  Can auto-generate dummy content  Better debugging output  dpm() and dvm() for pretty output  dpr(), kpr(), and dvr() will dump to the page header May 16th, 2013 php|tek 2013 24
  • 25.  Package system for Drupal  Takes a lot of stuff in the DB and makes it exportable and portable via code  Lot of stuff works out of the box, extra modules like UUID, boxes, and features_extra pick up the slack  ftools makes updating features easy May 16th, 2013 php|tek 2013 25
  • 26. Understand it and harness its power May 16th, 2013 php|tek 2013 26
  • 27.  Page caching for full output caching  Block caching so that dynamic content can still update if it needs to  You can configure how long to cache things for May 16th, 2013 php|tek 2013 27
  • 28.  In Full Page Caching, most of the PHP isn’t run  Effectively turns your site into a static site (kind of)  With block caching, not all blocks will cache. What and when to cache is up to the block May 16th, 2013 php|tek 2013 28
  • 29. It’s kind of like nuclear fusion, but without all the explosions May 16th, 2013 php|tek 2013 29
  • 30.  Will group needed JS and CSS files together, reducing the number of HTTP requests  Will minify CSS, reducing some of the transmission size YOU have to make your modules take advantage of it, though May 16th, 2013 php|tek 2013 30
  • 31.  Let Drupal know about your files  drupal_add_js()  drupal_add_css()  Add the files to your .info file  Don’t just add JS and CSS files via <script> and <style> tags in your theme May 16th, 2013 php|tek 2013 31
  • 32. Really, ask. May 16th, 2013 php|tek 2013 32
  • 33.  Acquia Dev Desktop  vagrant  Drupal SimpleTest  drush  Backup and Migrate  Devel  Features May 16th, 2013 php|tek 2013 33
  • 34. May 16th, 2013 php|tek 2013 34 E-mail: chris@ctankersley.com Twitter: @dragonmantank App.net: @ctankersley https://joind.in/8153

Notas del editor

  1. Show the acquiadev desktop
  2. Show the directory structure