Course Outline


Lab Setup

Hardware Configuration

Participants must have access to a system with the following hardware configuration:

  • 2GB of free RAM, 20GB of free disk space and full network connectivity

Software configuration

  • Ubuntu 16.04 Desktop Edition (sudo/root access required)
  • Firefox and Chrome browsers

Participant Profile

Senior developers who are mostly familiar with PHP and other CMS's like Wordpress and fairly comfortable with RDBMS's, Web Services etc.

Duration

5 days

Course Outline for Drupal

High Level Overview
  • Installation
  • Administrative Interface
  • What comes pre-packaged in Drupal
  • Blocks, Modules
  • Hooks
  • Themes
  • Nodes and Content Types
  • Drupal's directory structure
  • The Request/Response cycle
Modules
  • A walk-through of the built-in modules
  • Writing custom modules
  • Module related directories
  • Module related files
  • Implementing a hook
  • Adding module specific settings
Hooks
  • Use of Hooks to customize functionality
  • Triggers and Actions
  • Code walkthrough
Menus
  • Use of Menus
  • Mapping URLs to Functionality
  • Nesting of Menus
  • Access control for Menus
  • URL aliases
  • Clean URLs
  • Code walkthrough
Database
  • Database Abstraction Layer
  • CRUD operations
  • Installing tables during installation of the module
  • Deleting tables on uninstall
  • Use of the schema module
  • DB specific hooks
  • Working with multiple databases
Nodes
  • Nodes and Content Types
  • Building a node module
  • Create our own node types
Themes
  • Introduction to themes
  • The Drupal template structure
  • Building your own theme
  • Creating and using blocks in layouts
  • Themeing blocks
Taxonomy
  • Understanding Taxonomy related terminologies
  • Tags
  • Vocabularies
  • Flat and Hierarchical Taxonomies
  • RDF support
Translation
  • The locale module
  • Translating strings
  • Working with .pot files
  • i18n best practices
Testing
  • Introduction to SimpleTest
  • SimpleTest integration in Drupal
  • DrupalUnitTestCase
  • setUp, tearDown
  • Test Functions and Assertions
  • Testing best practices
Search
  • Understanding what is built-in
  • Adding to the default search via hooks
  • Search internals
  • Integrating Solr
Services
  • Understanding various service protocols
  • Consuming various services
  • Drupal services module
  • Creating service endpoints
  • Use of AJAX
  • Integrating with third-party software
System Administration
  • Backuping up the site
  • Restoring a backed up site
  • Upgrading Drupal - things to remember
  • Using Continuous Integration tools
Security
  • Validating input
  • Sanitizing output
  • Preventing XSS
  • Preventing CSRF
  • User and session security
  • Securing queries
Development Best Practices
  • Code as Art
  • Coding Conventions
  • Documentation
  • Contributing bug fixes
  • Understanding patches
  • Maintaining branches
  • Using Drush
  • Using Devel module
Scaling, Optimization and Performance
  • Identifying where the issue is (revisiting request/response cycle)
  • Improving performance via webserver configuration tweaking
  • Use of caching
  • Improving database performance
  • Database architectures
  • Performance testing

The classroom training will be provided in Bangalore (Bengaluru), Chennai, Hyderabad or Mumbai and will be conducted in the client's premises. All the necessary hardware/software infrastructure must be provided by the client.