SlideShare a Scribd company logo
How to? Drupal developer toolkit Dennis Povshedny http://donetsk.drupal.ua
How to? Drupal developer toolkit Drupal Camp Donetsk November 2011 Dennis Povshedny
Drupal developer toolkit Two major areas to discuss: Technical tools Organizational hints 80% is a 'should' not a 'must'
Technical tools The platform: *AMP Developer sofware toolkit
LAMP / WAMP OS Linux  / Windows /  Virtual Machine
LAMP / WAMP Webserver Apache  / nginx / Microsoft IIS Any Apache version is fine (1.3, 2.0, 2.2) . Enable mod_rewrite .
LAMP / WAMP Database MySQL  / Postgres / SQLite SQLite implementation is still weak; Postgres users may have problem with some modules
Tune MySQL Adjust default MySQL 5.x settings innodb_buffer_pool_size = 256M innodb_flush_log_at_trx_commit=2 innodb_flush_method=O_DIRECT innodb_log_file_size = 128M innodb_log_buffer_size = 4M
LAMP / WAMP
Tune PHP Tune PHP modules / settings php5-gd, php5-xdebug, php5-pdo, php5-mysql(i), php5-xml memory_limit 128M (check) register_global off max_execution_time 30 sendmail or module SMTP
Development tools: debugging Use xdebug (default port: 9000) Use the 'watchdog' function watchdog( 'Apache Solr', 'Adding @count documents.', array('@count' => count($documents)) );
'watchdog' function result http://example/admin/reports/dblog
Arrays, arrays, more arrays, nested arrays, ... object(stdClass)[57] … public 'rdf_mapping' =>  array  'rdftype' =>    array   0 => string 'sioc:UserAccount' (length=16)  'name' =>    array   'predicates' =>    array   …  'homepage' =>    array   'predicates' =>    array   …   'type' => string 'rel' (length=3) Use  dpm()  function from the module 'devel'
Need to run quick PHP snippet? Such things are nice:  http://ideone.com  (no Drupal there) However this is better: http://example.local/devel/php (by devel module, with Drupal stuff)
Environment tools Version control system Integrated development environment Drupal ecosystem We're at 50% of slides!
Version control system Git  / SVN / Mercurial SVN – simple, centralized Git – complicated, native for Drupal,   powerful Mercurial – in between CVS – outdated! Other: Bazaar, MS TFS (former VSS)
Use IDE IDE NetBeans  /  Eclipse  /  CodeLobster Provides syntax highlighting, autocompletion, integration with debugging and VCS.
Environment tools Install several browsers for different user roles or use Masquerade module Often you'll need to see the site by different groups of users – administrators, anonymous users, registered users, etc . Several browsers is more preferable – this have other usage as well.
Respect Drupal ecosystem Drupal directory structure PHP/Drupal coding style Doxygen
Location of custom code / themes Place all downloaded and handmade packages under sites/all/modules/ , sites/all/themes/ Even better is to split sites/all/modules/contrib/ sites/all/modules/custom/
Drupal ecosystem Follow the coding style. Use correct variable_names, ClassNames,tab settings, comments. see http://drupal.org/coding-standards
Respect Doxygen headers. That is the reason why do we have nice documentation out-of-box at  http://api.drupal.org  . /**  * Fetches a user object based on   * an external authentication source.  *  *  @param  string $authname  *  The external authentication username.  *  *  @return  *  A fully-loaded user object if the user  *  is found or FALSE if not found.  */ function user_external_load($authname) {
BONUS TRACK: I NEED MORE!!
What's next? Nice FF plugins like Poster  https://addons.mozilla.org/en-US/firefox/addon/poster/ Firebug, extended integration  http://drupal.org/project/drupalforfirebug Drush – DRUpal Shell TRAC/RedMine PHP 5.2/PHP 5.3 on the same machine APC/xCache/eAccelerator Contribute! Make session
Useful links http://drupal.org/requirements http://www.denwer.ru http://drupal.org/requirements http://drupal.org/project/smtp http://localhost/phpinfo.php :) http://drupal.org/project/devel http://drupal.org/project/coder http://git-scm.com/ http://drupal.org/project/masquerade http://ideone.com http://example.local/devel/php http://drupal.org/coding-standards http://api.drupal.org http://drupal.org/project/drupalforfirebug
Thank you! Dennis Povshedny Freelance IT expert +38 096 2323346 Skype: djdenikin http://drupal.org/user/117896

More Related Content

ODP
Drupal development
PPT
Build your own PHP extension
PPT
Heavy Web Optimization: Backend
ODP
WP Sandbox Presentation WordCamp Toronto 2011
PDF
Drupal debugging tips
PDF
Debugging Drupal - How to Debug your Drupal Application
PDF
Installing AtoM with Ansible
KEY
Php Power Tools
Drupal development
Build your own PHP extension
Heavy Web Optimization: Backend
WP Sandbox Presentation WordCamp Toronto 2011
Drupal debugging tips
Debugging Drupal - How to Debug your Drupal Application
Installing AtoM with Ansible
Php Power Tools

What's hot (20)

ODP
Website releases made easy with the PEAR installer, OSCON 2009
PPT
Beginners PHP Tutorial
PDF
Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...
KEY
LvivPy - Flask in details
PDF
Quick flask an intro to flask
Β 
PDF
Build website in_django
PPTX
Drupal development environment
PDF
Caching for Cash: Benchmarking and Profiling
PDF
Introduction to puppet
PPTX
Upstate CSCI 450 PHP Chapters 5, 12, 13
PPTX
Creating Perl modules with Dist::Zilla
PDF
Learning Puppet Chapter 1
PPT
PDF
Puppet for Sys Admins
Β 
PDF
Flask Introduction - Python Meetup
PDF
Ams.rb Oktober
PPTX
Introduction to php
ODP
Laravel 5.3 - Web Development Php framework
PPT
Everyone loves PHP
Website releases made easy with the PEAR installer, OSCON 2009
Beginners PHP Tutorial
Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...
LvivPy - Flask in details
Quick flask an intro to flask
Β 
Build website in_django
Drupal development environment
Caching for Cash: Benchmarking and Profiling
Introduction to puppet
Upstate CSCI 450 PHP Chapters 5, 12, 13
Creating Perl modules with Dist::Zilla
Learning Puppet Chapter 1
Puppet for Sys Admins
Β 
Flask Introduction - Python Meetup
Ams.rb Oktober
Introduction to php
Laravel 5.3 - Web Development Php framework
Everyone loves PHP
Ad

Similar to How to? Drupal developer toolkit. Dennis Povshedny. (20)

ODP
Best Practices For Drupal Developers By Mir Nazim @ Drupal Camp India 2008
PPTX
Drupal Camp Porto - Developing with Drupal: First Steps
PDF
Introduction to Drupal - Installation, Anatomy, Terminologies
PPTX
Drupal in Libraries
PPTX
Drupal Overview For Techies
PDF
Intro to drupal_7_architecture
PPTX
Drupaljdnndkdkckmfkfkkffmfkkfkfk_Part1.pptx
PDF
Drupal Flyover, CMS Expo
ODP
Drupal in-depth
PDF
Staying Sane with Drupal (A Develper's Survival Guide)
PDF
Open Source CMS Certification
PPTX
72d5drupal
PDF
Why Drupal is Rockstar?
ZIP
Drupal Development
PPTX
Drupal Skils Lab 302Labs
ODP
Making The Drupal Pill Easier To Swallow
PPT
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
ODP
Drupal in 5mins + Previewing Drupal 8.x
PDF
Modernize Your Drupal Development
PPT
Drupal: an Overview
Best Practices For Drupal Developers By Mir Nazim @ Drupal Camp India 2008
Drupal Camp Porto - Developing with Drupal: First Steps
Introduction to Drupal - Installation, Anatomy, Terminologies
Drupal in Libraries
Drupal Overview For Techies
Intro to drupal_7_architecture
Drupaljdnndkdkckmfkfkkffmfkkfkfk_Part1.pptx
Drupal Flyover, CMS Expo
Drupal in-depth
Staying Sane with Drupal (A Develper's Survival Guide)
Open Source CMS Certification
72d5drupal
Why Drupal is Rockstar?
Drupal Development
Drupal Skils Lab 302Labs
Making The Drupal Pill Easier To Swallow
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
Drupal in 5mins + Previewing Drupal 8.x
Modernize Your Drupal Development
Drupal: an Overview
Ad

More from DrupalCampDN (20)

PDF
Drupal - Changing the Web by Connecting Open Minds - Josef Dabernig
ODP
Dependency Injection in Drupal 8 - Π‘Ρ‚Π°Π΄Π½ΠΈΠΊ АндрСйQweqwe
PDF
Our AWS Cloud Journey - Andrew Boag
PDF
Guzzle in Drupal 8 and as a REST client - АртСм ΠœΠΈΡ€ΠΎΡˆΠ½ΠΈΠΊ
PDF
Blocks & Layouts in D7 - Josef Dabernig
PPTX
CKEditor Π² Drupal: тонкая настройка ΠΈ кастомизация - Osman Seferov
PDF
Drush - use full power - Alexander Schedrov
PPTX
Π­Ρ‚ΠΎ Drupal, %username%! - АндрСй ЧСрноус
PDF
Migrate - new way site upgrade
PPTX
Caching on highload Drupal site - Alexander Shumenko
PPTX
Rich Text in Drupal - Π’Π°Π΄ΠΈΠΌ Π’Π°Π»ΡƒΠ΅Π²
PDF
May the parallelity be with you! Distributed computing using Erlang language ...
PDF
Panels ΠΊΠ°ΠΊ философия - Alexander Danilenko
PDF
DrupalGap. How to create native application for mobile devices based on Drupa...
PPTX
Twig internals - Maksym MoskvychevTwig internals maksym moskvychev
PPT
ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ модуля YandexMoney - Yury Glushkov
PDF
Drupal and Outer space - Martin Mayer
PPT
Boost your theming skills - Artem Shymko
PDF
Continious integration - Иван Π›Π΅Ρ‰Ρ‘Π²
PPT
Rules - Yaroslav Doroshuk
Drupal - Changing the Web by Connecting Open Minds - Josef Dabernig
Dependency Injection in Drupal 8 - Π‘Ρ‚Π°Π΄Π½ΠΈΠΊ АндрСйQweqwe
Our AWS Cloud Journey - Andrew Boag
Guzzle in Drupal 8 and as a REST client - АртСм ΠœΠΈΡ€ΠΎΡˆΠ½ΠΈΠΊ
Blocks & Layouts in D7 - Josef Dabernig
CKEditor Π² Drupal: тонкая настройка ΠΈ кастомизация - Osman Seferov
Drush - use full power - Alexander Schedrov
Π­Ρ‚ΠΎ Drupal, %username%! - АндрСй ЧСрноус
Migrate - new way site upgrade
Caching on highload Drupal site - Alexander Shumenko
Rich Text in Drupal - Π’Π°Π΄ΠΈΠΌ Π’Π°Π»ΡƒΠ΅Π²
May the parallelity be with you! Distributed computing using Erlang language ...
Panels ΠΊΠ°ΠΊ философия - Alexander Danilenko
DrupalGap. How to create native application for mobile devices based on Drupa...
Twig internals - Maksym MoskvychevTwig internals maksym moskvychev
ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ модуля YandexMoney - Yury Glushkov
Drupal and Outer space - Martin Mayer
Boost your theming skills - Artem Shymko
Continious integration - Иван Π›Π΅Ρ‰Ρ‘Π²
Rules - Yaroslav Doroshuk

Recently uploaded (20)

PDF
Empathic Computing: Creating Shared Understanding
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
Β 
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Β 
PPTX
Spectroscopy.pptx food analysis technology
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Machine learning based COVID-19 study performance prediction
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Encapsulation theory and applications.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Tartificialntelligence_presentation.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Empathic Computing: Creating Shared Understanding
The Rise and Fall of 3GPP – Time for a Sabbatical?
Β 
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Β 
Spectroscopy.pptx food analysis technology
SOPHOS-XG Firewall Administrator PPT.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Programs and apps: productivity, graphics, security and other tools
Machine learning based COVID-19 study performance prediction
Building Integrated photovoltaic BIPV_UPV.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
20250228 LYD VKU AI Blended-Learning.pptx
cuic standard and advanced reporting.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Encapsulation theory and applications.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Tartificialntelligence_presentation.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...

How to? Drupal developer toolkit. Dennis Povshedny.

  • 1. How to? Drupal developer toolkit Dennis Povshedny http://donetsk.drupal.ua
  • 2. How to? Drupal developer toolkit Drupal Camp Donetsk November 2011 Dennis Povshedny
  • 3. Drupal developer toolkit Two major areas to discuss: Technical tools Organizational hints 80% is a 'should' not a 'must'
  • 4. Technical tools The platform: *AMP Developer sofware toolkit
  • 5. LAMP / WAMP OS Linux / Windows / Virtual Machine
  • 6. LAMP / WAMP Webserver Apache / nginx / Microsoft IIS Any Apache version is fine (1.3, 2.0, 2.2) . Enable mod_rewrite .
  • 7. LAMP / WAMP Database MySQL / Postgres / SQLite SQLite implementation is still weak; Postgres users may have problem with some modules
  • 8. Tune MySQL Adjust default MySQL 5.x settings innodb_buffer_pool_size = 256M innodb_flush_log_at_trx_commit=2 innodb_flush_method=O_DIRECT innodb_log_file_size = 128M innodb_log_buffer_size = 4M
  • 10. Tune PHP Tune PHP modules / settings php5-gd, php5-xdebug, php5-pdo, php5-mysql(i), php5-xml memory_limit 128M (check) register_global off max_execution_time 30 sendmail or module SMTP
  • 11. Development tools: debugging Use xdebug (default port: 9000) Use the 'watchdog' function watchdog( 'Apache Solr', 'Adding @count documents.', array('@count' => count($documents)) );
  • 12. 'watchdog' function result http://example/admin/reports/dblog
  • 13. Arrays, arrays, more arrays, nested arrays, ... object(stdClass)[57] … public 'rdf_mapping' => array 'rdftype' => array 0 => string 'sioc:UserAccount' (length=16) 'name' => array 'predicates' => array … 'homepage' => array 'predicates' => array … 'type' => string 'rel' (length=3) Use dpm() function from the module 'devel'
  • 14. Need to run quick PHP snippet? Such things are nice: http://ideone.com (no Drupal there) However this is better: http://example.local/devel/php (by devel module, with Drupal stuff)
  • 15. Environment tools Version control system Integrated development environment Drupal ecosystem We're at 50% of slides!
  • 16. Version control system Git / SVN / Mercurial SVN – simple, centralized Git – complicated, native for Drupal, powerful Mercurial – in between CVS – outdated! Other: Bazaar, MS TFS (former VSS)
  • 17. Use IDE IDE NetBeans / Eclipse / CodeLobster Provides syntax highlighting, autocompletion, integration with debugging and VCS.
  • 18. Environment tools Install several browsers for different user roles or use Masquerade module Often you'll need to see the site by different groups of users – administrators, anonymous users, registered users, etc . Several browsers is more preferable – this have other usage as well.
  • 19. Respect Drupal ecosystem Drupal directory structure PHP/Drupal coding style Doxygen
  • 20. Location of custom code / themes Place all downloaded and handmade packages under sites/all/modules/ , sites/all/themes/ Even better is to split sites/all/modules/contrib/ sites/all/modules/custom/
  • 21. Drupal ecosystem Follow the coding style. Use correct variable_names, ClassNames,tab settings, comments. see http://drupal.org/coding-standards
  • 22. Respect Doxygen headers. That is the reason why do we have nice documentation out-of-box at http://api.drupal.org . /** * Fetches a user object based on * an external authentication source. * * @param string $authname * The external authentication username. * * @return * A fully-loaded user object if the user * is found or FALSE if not found. */ function user_external_load($authname) {
  • 23. BONUS TRACK: I NEED MORE!!
  • 24. What's next? Nice FF plugins like Poster https://addons.mozilla.org/en-US/firefox/addon/poster/ Firebug, extended integration http://drupal.org/project/drupalforfirebug Drush – DRUpal Shell TRAC/RedMine PHP 5.2/PHP 5.3 on the same machine APC/xCache/eAccelerator Contribute! Make session
  • 25. Useful links http://drupal.org/requirements http://www.denwer.ru http://drupal.org/requirements http://drupal.org/project/smtp http://localhost/phpinfo.php :) http://drupal.org/project/devel http://drupal.org/project/coder http://git-scm.com/ http://drupal.org/project/masquerade http://ideone.com http://example.local/devel/php http://drupal.org/coding-standards http://api.drupal.org http://drupal.org/project/drupalforfirebug
  • 26. Thank you! Dennis Povshedny Freelance IT expert +38 096 2323346 Skype: djdenikin http://drupal.org/user/117896