why drupal is rockstar?

80
2014 DevOps Day – Philippines 2014 DevOps Day – Philippines February 22, 2014 February 22, 2014 Microsoft Philippines Microsoft Philippines 8th Floor, 6750 Ayala Ave., Makati City

Upload: gerald-villorente

Post on 15-Jan-2015

511 views

Category:

Technology


4 download

DESCRIPTION

This slide is focusing on the strength of Drupal and why it is suited for enterprise solution.

TRANSCRIPT

Page 1: Why Drupal is Rockstar?

2014 DevOps Day – Philippines2014 DevOps Day – PhilippinesFebruary 22, 2014February 22, 2014

Microsoft PhilippinesMicrosoft Philippines8th Floor, 6750 Ayala Ave., Makati City

Page 2: Why Drupal is Rockstar?

{ Drupal }{ Drupal } : Being a Rockstar : Being a Rockstar

Gerald Z. VillorenteDevOps Engineer | Drupal Developer | Open-Source EnthusiastDevOps Engineer | Drupal Developer | Open-Source Enthusiast

Gerald Z. VillorenteDevOps Engineer | Drupal Developer | Open-Source EnthusiastDevOps Engineer | Drupal Developer | Open-Source Enthusiast

Page 3: Why Drupal is Rockstar?

CommunityCommunity CodeCode DeploymentDeployment SecuritySecurity PerformancePerformance FlexibilityFlexibility DocumentationDocumentation DrushDrush Content ManagementContent Management

CommunityCommunity CodeCode DeploymentDeployment SecuritySecurity PerformancePerformance FlexibilityFlexibility DocumentationDocumentation DrushDrush Content ManagementContent Management

Agenda:Agenda:

Page 4: Why Drupal is Rockstar?

CommunityCommunityDrupal is one of the largest open-source community in the planet.Drupal is one of the largest open-source community in the planet.

CommunityCommunityDrupal is one of the largest open-source community in the planet.Drupal is one of the largest open-source community in the planet.

Page 5: Why Drupal is Rockstar?

April 2013April 2013April 2013April 2013

Page 6: Why Drupal is Rockstar?

31,721 31,721 DevelopersDevelopers

31,721 31,721 DevelopersDevelopers

Page 7: Why Drupal is Rockstar?

1,034,669 1,034,669 Active UsersActive Users1,034,669 1,034,669

Active UsersActive Users

Page 8: Why Drupal is Rockstar?

MediumMediumIRC, Stackoverflow, D.O forum, ...IRC, Stackoverflow, D.O forum, ...

MediumMediumIRC, Stackoverflow, D.O forum, ...IRC, Stackoverflow, D.O forum, ...

Page 9: Why Drupal is Rockstar?

CodeCodeDrupal is one of the largest open-source community in the planet.Drupal is one of the largest open-source community in the planet.

CodeCodeDrupal is one of the largest open-source community in the planet.Drupal is one of the largest open-source community in the planet.

Page 10: Why Drupal is Rockstar?

PHPPHPPHPPHP

Page 11: Why Drupal is Rockstar?

Community Community ContributionsContributionsCommunity Community

ContributionsContributions

Page 12: Why Drupal is Rockstar?

25,58525,585 Modules Modules25,58525,585 Modules Modules

Page 13: Why Drupal is Rockstar?

1,9411,941 ThemesThemes1,9411,941 ThemesThemes

Page 14: Why Drupal is Rockstar?

765765 DistributionsDistributions765765 DistributionsDistributions

Page 15: Why Drupal is Rockstar?

2,5402,540Code commitsCode commits

Just this week.Just this week.

2,5402,540Code commitsCode commits

Just this week.Just this week.

Page 16: Why Drupal is Rockstar?

5,4205,420Issue CommentsIssue Comments

Just this week.Just this week.

5,4205,420Issue CommentsIssue Comments

Just this week.Just this week.

Page 17: Why Drupal is Rockstar?

Coding StandardCoding StandardThe Drupal Coding Standards apply to code within Drupal and its The Drupal Coding Standards apply to code within Drupal and its

contributed modules. contributed modules.

Coding StandardCoding StandardThe Drupal Coding Standards apply to code within Drupal and its The Drupal Coding Standards apply to code within Drupal and its

contributed modules. contributed modules.

Page 18: Why Drupal is Rockstar?

Indenting and Indenting and WhitespaceWhitespace

Use an indent of 2 spaces, with no tabs.Use an indent of 2 spaces, with no tabs.

Indenting and Indenting and WhitespaceWhitespace

Use an indent of 2 spaces, with no tabs.Use an indent of 2 spaces, with no tabs.

Page 19: Why Drupal is Rockstar?

OperatorsOperatorsAll binary operators (operators that come between two values), such All binary operators (operators that come between two values), such

as +, -, =, !=, ==, >, etc. should have a space before and after the as +, -, =, !=, ==, >, etc. should have a space before and after the operator, for readability.operator, for readability.

OperatorsOperatorsAll binary operators (operators that come between two values), such All binary operators (operators that come between two values), such

as +, -, =, !=, ==, >, etc. should have a space before and after the as +, -, =, !=, ==, >, etc. should have a space before and after the operator, for readability.operator, for readability.

Page 20: Why Drupal is Rockstar?

CastingCastingPut a space between the (type) and the $variable in a cast: Put a space between the (type) and the $variable in a cast:

(int) $mynumber.(int) $mynumber.

CastingCastingPut a space between the (type) and the $variable in a cast: Put a space between the (type) and the $variable in a cast:

(int) $mynumber.(int) $mynumber.

Page 21: Why Drupal is Rockstar?

Control Control StructuresStructures

Control structures include if, for, while, switch, etc.Control structures include if, for, while, switch, etc.

Note:Note: Don't use "else if" -- always use elseif. Don't use "else if" -- always use elseif.

Control Control StructuresStructures

Control structures include if, for, while, switch, etc.Control structures include if, for, while, switch, etc.

Note:Note: Don't use "else if" -- always use elseif. Don't use "else if" -- always use elseif.

Page 22: Why Drupal is Rockstar?

Alternate control Alternate control statement statement

syntax for templatessyntax for templatesIn templates, the alternate control statement syntax using : instead In templates, the alternate control statement syntax using : instead

of brackets is allowed. of brackets is allowed.

Alternate control Alternate control statement statement

syntax for templatessyntax for templatesIn templates, the alternate control statement syntax using : instead In templates, the alternate control statement syntax using : instead

of brackets is allowed. of brackets is allowed.

Page 23: Why Drupal is Rockstar?

Line length Line length and wrappingand wrapping

In general, all lines of code should not be longer than 80 chars. In general, all lines of code should not be longer than 80 chars. Lines containing longer function names, function/class definitions, Lines containing longer function names, function/class definitions,

variable declarations, etc are allowed to exceed 80 chars. variable declarations, etc are allowed to exceed 80 chars. Control structure conditions may exceed 80 chars, if they are Control structure conditions may exceed 80 chars, if they are simple to read and understand. simple to read and understand. Conditions should not be wrapped into multiple lines.Conditions should not be wrapped into multiple lines.

Line length Line length and wrappingand wrapping

In general, all lines of code should not be longer than 80 chars. In general, all lines of code should not be longer than 80 chars. Lines containing longer function names, function/class definitions, Lines containing longer function names, function/class definitions,

variable declarations, etc are allowed to exceed 80 chars. variable declarations, etc are allowed to exceed 80 chars. Control structure conditions may exceed 80 chars, if they are Control structure conditions may exceed 80 chars, if they are simple to read and understand. simple to read and understand. Conditions should not be wrapped into multiple lines.Conditions should not be wrapped into multiple lines.

Page 24: Why Drupal is Rockstar?

Function CallsFunction CallsFunctions should be called with no spaces between the function Functions should be called with no spaces between the function name, the opening parenthesis, and the first parameter; spaces name, the opening parenthesis, and the first parameter; spaces

between commas and each parameter, and no space between the between commas and each parameter, and no space between the last parameter, the closing parenthesis, and the semicolon.last parameter, the closing parenthesis, and the semicolon.

Function CallsFunction CallsFunctions should be called with no spaces between the function Functions should be called with no spaces between the function name, the opening parenthesis, and the first parameter; spaces name, the opening parenthesis, and the first parameter; spaces

between commas and each parameter, and no space between the between commas and each parameter, and no space between the last parameter, the closing parenthesis, and the semicolon.last parameter, the closing parenthesis, and the semicolon.

Page 25: Why Drupal is Rockstar?

Function Function DeclarationsDeclarations

Arguments with default values go at the end of the argument list.Arguments with default values go at the end of the argument list.

Function Function DeclarationsDeclarations

Arguments with default values go at the end of the argument list.Arguments with default values go at the end of the argument list.

Page 26: Why Drupal is Rockstar?

Class Class Constructor CallsConstructor CallsWhen calling class constructors with no arguments, always include When calling class constructors with no arguments, always include parentheses. This is to maintain consistency with constructors that parentheses. This is to maintain consistency with constructors that

have arguments.have arguments.

Class Class Constructor CallsConstructor CallsWhen calling class constructors with no arguments, always include When calling class constructors with no arguments, always include parentheses. This is to maintain consistency with constructors that parentheses. This is to maintain consistency with constructors that

have arguments.have arguments.

Page 27: Why Drupal is Rockstar?

ArraysArraysArrays should be formatted with a space separating each element Arrays should be formatted with a space separating each element

(after the comma), and spaces around the => key association (after the comma), and spaces around the => key association operator.operator.

ArraysArraysArrays should be formatted with a space separating each element Arrays should be formatted with a space separating each element

(after the comma), and spaces around the => key association (after the comma), and spaces around the => key association operator.operator.

Page 28: Why Drupal is Rockstar?

String String ConcatenationsConcatenations

Always use a space between the dot and the concatenated parts to Always use a space between the dot and the concatenated parts to improve readability.improve readability.

String String ConcatenationsConcatenations

Always use a space between the dot and the concatenated parts to Always use a space between the dot and the concatenated parts to improve readability.improve readability.

Page 29: Why Drupal is Rockstar?

PHP Code TagsPHP Code TagsAlways use <?php to delimit PHP code, not the shorthand, <? . Always use <?php to delimit PHP code, not the shorthand, <? .

PHP Code TagsPHP Code TagsAlways use <?php to delimit PHP code, not the shorthand, <? . Always use <?php to delimit PHP code, not the shorthand, <? .

Page 30: Why Drupal is Rockstar?

SemicolonsSemicolonsThe PHP language requires semicolons at the end of most lines, but The PHP language requires semicolons at the end of most lines, but allows them to be omitted at the end of code blocks. Drupal coding allows them to be omitted at the end of code blocks. Drupal coding

standards require them, even at the end of code blocks.standards require them, even at the end of code blocks.

SemicolonsSemicolonsThe PHP language requires semicolons at the end of most lines, but The PHP language requires semicolons at the end of most lines, but allows them to be omitted at the end of code blocks. Drupal coding allows them to be omitted at the end of code blocks. Drupal coding

standards require them, even at the end of code blocks.standards require them, even at the end of code blocks.

Page 31: Why Drupal is Rockstar?

Example URLsExample URLsUse "example.com" for all example URLs, per Use "example.com" for all example URLs, per RFC 2606RFC 2606..

Example URLsExample URLsUse "example.com" for all example URLs, per Use "example.com" for all example URLs, per RFC 2606RFC 2606..

Page 32: Why Drupal is Rockstar?

Naming Naming ConventionsConventions

Naming Naming ConventionsConventions

Page 33: Why Drupal is Rockstar?

Functions Functions and variablesand variables

Functions and variables should be named using lowercase, and words Functions and variables should be named using lowercase, and words should be separated with an underscore. Functions should in should be separated with an underscore. Functions should in

addition have the grouping/module name as a prefix, to avoid name addition have the grouping/module name as a prefix, to avoid name collisions between modules.collisions between modules.

Functions Functions and variablesand variables

Functions and variables should be named using lowercase, and words Functions and variables should be named using lowercase, and words should be separated with an underscore. Functions should in should be separated with an underscore. Functions should in

addition have the grouping/module name as a prefix, to avoid name addition have the grouping/module name as a prefix, to avoid name collisions between modules.collisions between modules.

Naming Conventions:Naming Conventions:

Page 34: Why Drupal is Rockstar?

Persistent Persistent VariablesVariables

Persistent variables (Persistent variables (variables/settings defined using Drupal's variables/settings defined using Drupal's variable_get()/variable_set() functionsvariable_get()/variable_set() functions) should be named using all ) should be named using all

lowercase letters, and words should be separated with an lowercase letters, and words should be separated with an underscore. They should use the grouping/module name as a prefix, underscore. They should use the grouping/module name as a prefix,

to avoid name collisions between modules.to avoid name collisions between modules.

Persistent Persistent VariablesVariables

Persistent variables (Persistent variables (variables/settings defined using Drupal's variables/settings defined using Drupal's variable_get()/variable_set() functionsvariable_get()/variable_set() functions) should be named using all ) should be named using all

lowercase letters, and words should be separated with an lowercase letters, and words should be separated with an underscore. They should use the grouping/module name as a prefix, underscore. They should use the grouping/module name as a prefix,

to avoid name collisions between modules.to avoid name collisions between modules.

Naming Conventions:Naming Conventions:

Page 35: Why Drupal is Rockstar?

ConstantsConstants Constants should always be all-uppercase, with underscores to Constants should always be all-uppercase, with underscores to

separate words. (This includes pre-defined PHP constants like separate words. (This includes pre-defined PHP constants like TRUETRUE, , FALSEFALSE, and , and NULLNULL.).)

Module-defined constant names should also be prefixed by an Module-defined constant names should also be prefixed by an uppercase spelling of the module that defines them.uppercase spelling of the module that defines them.

In Drupal 8 and later, constants should be defined using the In Drupal 8 and later, constants should be defined using the constconst PHP language keyword (instead of define()), because it is better for PHP language keyword (instead of define()), because it is better for

performance. Ex: performance. Ex: <?php<?php const CACHE_TEMPORARY = -1; ?>const CACHE_TEMPORARY = -1; ?>

ConstantsConstants Constants should always be all-uppercase, with underscores to Constants should always be all-uppercase, with underscores to

separate words. (This includes pre-defined PHP constants like separate words. (This includes pre-defined PHP constants like TRUETRUE, , FALSEFALSE, and , and NULLNULL.).)

Module-defined constant names should also be prefixed by an Module-defined constant names should also be prefixed by an uppercase spelling of the module that defines them.uppercase spelling of the module that defines them.

In Drupal 8 and later, constants should be defined using the In Drupal 8 and later, constants should be defined using the constconst PHP language keyword (instead of define()), because it is better for PHP language keyword (instead of define()), because it is better for

performance. Ex: performance. Ex: <?php<?php const CACHE_TEMPORARY = -1; ?>const CACHE_TEMPORARY = -1; ?>

Naming Conventions:Naming Conventions:

Page 36: Why Drupal is Rockstar?

Global VariablesGlobal VariablesIf you need to define global variables, their name should start with If you need to define global variables, their name should start with

a single underscore followed by the module/theme name and a single underscore followed by the module/theme name and another underscore.another underscore.

Global VariablesGlobal VariablesIf you need to define global variables, their name should start with If you need to define global variables, their name should start with

a single underscore followed by the module/theme name and a single underscore followed by the module/theme name and another underscore.another underscore.

Naming Conventions:Naming Conventions:

Page 37: Why Drupal is Rockstar?

ClassesClassesSee - See - https://drupal.org/node/608152https://drupal.org/node/608152

ClassesClassesSee - See - https://drupal.org/node/608152https://drupal.org/node/608152

Naming Conventions:Naming Conventions:

Page 38: Why Drupal is Rockstar?

File namesFile namesAll documentation files should have the file name extension ".txt" All documentation files should have the file name extension ".txt" to make viewing them on Windows systems easier. Also, the file to make viewing them on Windows systems easier. Also, the file

names for such files should be all-caps (e.g. README.txt instead of names for such files should be all-caps (e.g. README.txt instead of readme.txt) while the extension itself is all-lowercase (i.e. txt readme.txt) while the extension itself is all-lowercase (i.e. txt

instead of TXT).instead of TXT).

File namesFile namesAll documentation files should have the file name extension ".txt" All documentation files should have the file name extension ".txt" to make viewing them on Windows systems easier. Also, the file to make viewing them on Windows systems easier. Also, the file

names for such files should be all-caps (e.g. README.txt instead of names for such files should be all-caps (e.g. README.txt instead of readme.txt) while the extension itself is all-lowercase (i.e. txt readme.txt) while the extension itself is all-lowercase (i.e. txt

instead of TXT).instead of TXT).

Naming Conventions:Naming Conventions:

Page 39: Why Drupal is Rockstar?

Helper ModulesHelper ModulesHelper ModulesHelper Modules

Page 40: Why Drupal is Rockstar?

CoderCoderUsing Using PHP_CodesnifferPHP_Codesniffer, Coder includes “, Coder includes “Coder ReviewCoder Review” module that ” module that

can be use to check the Drupal coding standard of your custom can be use to check the Drupal coding standard of your custom modules, themes, css, and javascript.modules, themes, css, and javascript.

CoderCoderUsing Using PHP_CodesnifferPHP_Codesniffer, Coder includes “, Coder includes “Coder ReviewCoder Review” module that ” module that

can be use to check the Drupal coding standard of your custom can be use to check the Drupal coding standard of your custom modules, themes, css, and javascript.modules, themes, css, and javascript.

Helper Modules:Helper Modules:

Page 41: Why Drupal is Rockstar?

DreditorDreditorA browser plug-in for reviewing patches and more.A browser plug-in for reviewing patches and more.

DreditorDreditorA browser plug-in for reviewing patches and more.A browser plug-in for reviewing patches and more.

Helper Modules:Helper Modules:

Page 42: Why Drupal is Rockstar?

PAReviewPAReviewA set of scripts for reviewing project applications, which runs some A set of scripts for reviewing project applications, which runs some

coding tests.coding tests.

PAReviewPAReviewA set of scripts for reviewing project applications, which runs some A set of scripts for reviewing project applications, which runs some

coding tests.coding tests.

Helper Modules:Helper Modules:

Page 43: Why Drupal is Rockstar?

PAReviewPAReviewA set of scripts for reviewing project applications, which runs some A set of scripts for reviewing project applications, which runs some

coding tests.coding tests.

PAReviewPAReviewA set of scripts for reviewing project applications, which runs some A set of scripts for reviewing project applications, which runs some

coding tests.coding tests.

Helper Modules:Helper Modules:

Page 44: Why Drupal is Rockstar?

Grammar ParserGrammar ParserProvides an automated way of rewriting code files in compliance Provides an automated way of rewriting code files in compliance

with code standards.with code standards.

Grammar ParserGrammar ParserProvides an automated way of rewriting code files in compliance Provides an automated way of rewriting code files in compliance

with code standards.with code standards.

Helper Modules:Helper Modules:

Page 45: Why Drupal is Rockstar?

I hate doing I hate doing manual code manual code

review! review! Can I automate it? Can I automate it? DLADLA!!

I hate doing I hate doing manual code manual code

review! review! Can I automate it? Can I automate it? DLADLA!!

Page 46: Why Drupal is Rockstar?

DevOps DevOps Loves Loves

AutomationAutomationIf you're using version control, you can take advantage the “If you're using version control, you can take advantage the “hookhook” ”

feature in automating all reviews. You can combine feature in automating all reviews. You can combine Bash/PHP/Perl/Python script, Drush, and Coder to do the job.Bash/PHP/Perl/Python script, Drush, and Coder to do the job.

DevOps DevOps Loves Loves

AutomationAutomationIf you're using version control, you can take advantage the “If you're using version control, you can take advantage the “hookhook” ”

feature in automating all reviews. You can combine feature in automating all reviews. You can combine Bash/PHP/Perl/Python script, Drush, and Coder to do the job.Bash/PHP/Perl/Python script, Drush, and Coder to do the job.

Page 47: Why Drupal is Rockstar?

DeploymentDeploymentDeploymentDeployment

Page 48: Why Drupal is Rockstar?

FeaturesFeaturesEnables the capture and management of features in Drupal. A feature Enables the capture and management of features in Drupal. A feature

is a collection of Drupal entities which taken together satisfy a is a collection of Drupal entities which taken together satisfy a certain use-case.certain use-case.

FeaturesFeaturesEnables the capture and management of features in Drupal. A feature Enables the capture and management of features in Drupal. A feature

is a collection of Drupal entities which taken together satisfy a is a collection of Drupal entities which taken together satisfy a certain use-case.certain use-case.

Deployment:Deployment:

Page 49: Why Drupal is Rockstar?

Configuration Configuration ManagementManagement

Enables the ability to keep track of specific configurations on a Enables the ability to keep track of specific configurations on a Drupal site, provides the ability to move these configurations Drupal site, provides the ability to move these configurations

between different environments (local, dev, qa, prod), and also between different environments (local, dev, qa, prod), and also move configurations between completely different sites (migrate move configurations between completely different sites (migrate configurations) without the use of modules with all configuration configurations) without the use of modules with all configuration

being owned by the site.being owned by the site.

Configuration Configuration ManagementManagement

Enables the ability to keep track of specific configurations on a Enables the ability to keep track of specific configurations on a Drupal site, provides the ability to move these configurations Drupal site, provides the ability to move these configurations

between different environments (local, dev, qa, prod), and also between different environments (local, dev, qa, prod), and also move configurations between completely different sites (migrate move configurations between completely different sites (migrate configurations) without the use of modules with all configuration configurations) without the use of modules with all configuration

being owned by the site.being owned by the site.

Deployment:Deployment:

Page 50: Why Drupal is Rockstar?

hook_update_N()hook_update_N()Perform a single update. Called by Perform a single update. Called by update.phpupdate.php or or drush updbdrush updb..

hook_update_N()hook_update_N()Perform a single update. Called by Perform a single update. Called by update.phpupdate.php or or drush updbdrush updb..

Deployment:Deployment:

Page 51: Why Drupal is Rockstar?

SecuritySecurityDrupal is one of the most secure open-source CMS/CMF project on Drupal is one of the most secure open-source CMS/CMF project on

the planet. Don't argue with me!the planet. Don't argue with me!

SecuritySecurityDrupal is one of the most secure open-source CMS/CMF project on Drupal is one of the most secure open-source CMS/CMF project on

the planet. Don't argue with me!the planet. Don't argue with me!

Page 52: Why Drupal is Rockstar?

Roles Roles and Permissionsand Permissions

Roles Roles and Permissionsand Permissions

Security:Security:

Page 53: Why Drupal is Rockstar?

Security TeamSecurity Team Perform analysis of core or contributed project code.Perform analysis of core or contributed project code. Resolve reported security issues in a Security Advisory.Resolve reported security issues in a Security Advisory. Provide assistance for contributed module maintainers in resolving Provide assistance for contributed module maintainers in resolving security issues. security issues. Provide documentation on how to write secure code.Provide documentation on how to write secure code. Provide documentation on securing your site.Provide documentation on securing your site.

Security TeamSecurity Team Perform analysis of core or contributed project code.Perform analysis of core or contributed project code. Resolve reported security issues in a Security Advisory.Resolve reported security issues in a Security Advisory. Provide assistance for contributed module maintainers in resolving Provide assistance for contributed module maintainers in resolving security issues. security issues. Provide documentation on how to write secure code.Provide documentation on how to write secure code. Provide documentation on securing your site.Provide documentation on securing your site.

Security:Security:

Page 54: Why Drupal is Rockstar?

PerformancePerformanceGood integration with Varnish, NginX, Memcache, etcGood integration with Varnish, NginX, Memcache, etc

PerformancePerformanceGood integration with Varnish, NginX, Memcache, etcGood integration with Varnish, NginX, Memcache, etc

Page 55: Why Drupal is Rockstar?

CachingCachingCachingCaching

Page 56: Why Drupal is Rockstar?

MemcacheMemcacheGit / t/ is a distributed ɡɪGit / t/ is a distributed ɡɪ revision controlrevision control and source code and source code

management (SCM) system with an emphasis on speed. management (SCM) system with an emphasis on speed. - Wikipedia- Wikipedia

MemcacheMemcacheGit / t/ is a distributed ɡɪGit / t/ is a distributed ɡɪ revision controlrevision control and source code and source code

management (SCM) system with an emphasis on speed. management (SCM) system with an emphasis on speed. - Wikipedia- Wikipedia

Caching:Caching:

Page 57: Why Drupal is Rockstar?

VarnishVarnishVarnish is an HTTP accelerator designed for content-heavy dynamic Varnish is an HTTP accelerator designed for content-heavy dynamic

web sites.web sites.

VarnishVarnishVarnish is an HTTP accelerator designed for content-heavy dynamic Varnish is an HTTP accelerator designed for content-heavy dynamic

web sites.web sites.

Caching:Caching:

Page 58: Why Drupal is Rockstar?

BoostBoostBoost provides static page caching for Drupal enabling a very Boost provides static page caching for Drupal enabling a very

significant performance and scalability boost for sites that receive significant performance and scalability boost for sites that receive mostly mostly anonymous trafficanonymous traffic. For shared hosting this is your best option . For shared hosting this is your best option

in terms of improving performance.in terms of improving performance.

BoostBoostBoost provides static page caching for Drupal enabling a very Boost provides static page caching for Drupal enabling a very

significant performance and scalability boost for sites that receive significant performance and scalability boost for sites that receive mostly mostly anonymous trafficanonymous traffic. For shared hosting this is your best option . For shared hosting this is your best option

in terms of improving performance.in terms of improving performance.

Caching:Caching:

Page 59: Why Drupal is Rockstar?

APCAPCOpcode cache for PHP.Opcode cache for PHP.

APCAPCOpcode cache for PHP.Opcode cache for PHP.

Caching:Caching:

Page 60: Why Drupal is Rockstar?

FlexibilityFlexibilityFlexibilityFlexibility

Page 61: Why Drupal is Rockstar?

HooksHooksInternal Drupal callbacks.Internal Drupal callbacks.

HooksHooksInternal Drupal callbacks.Internal Drupal callbacks.

Flexibility:Flexibility:

Page 62: Why Drupal is Rockstar?

APIAPIApplication Programming Interface, a particular set of code and Application Programming Interface, a particular set of code and

specs that software programs can follow to communicate with each specs that software programs can follow to communicate with each other.other.

APIAPIApplication Programming Interface, a particular set of code and Application Programming Interface, a particular set of code and

specs that software programs can follow to communicate with each specs that software programs can follow to communicate with each other.other.

Flexibility:Flexibility:

Page 63: Why Drupal is Rockstar?

Plethora of Plethora of Contributed Modules Contributed Modules

and Themesand Themes

Plethora of Plethora of Contributed Modules Contributed Modules

and Themesand Themes

Flexibility:Flexibility:

Page 64: Why Drupal is Rockstar?

DocumentationDocumentationDocumentationDocumentation

Page 65: Why Drupal is Rockstar?

DrushDrushThe coolest CLI tool to manage your Drupal site.The coolest CLI tool to manage your Drupal site.

DrushDrushThe coolest CLI tool to manage your Drupal site.The coolest CLI tool to manage your Drupal site.

Page 66: Why Drupal is Rockstar?

Use in Use in DeploymentDeployment

Use in Use in DeploymentDeployment

Drush:Drush:

Page 67: Why Drupal is Rockstar?

Remote Remote ManagementManagement

Site alias. Site alias. Ex: drush @[SITE].[ENV] vset maintenance_mode 0 -yEx: drush @[SITE].[ENV] vset maintenance_mode 0 -y

Remote Remote ManagementManagement

Site alias. Site alias. Ex: drush @[SITE].[ENV] vset maintenance_mode 0 -yEx: drush @[SITE].[ENV] vset maintenance_mode 0 -y

Drush:Drush:

Page 68: Why Drupal is Rockstar?

Module Module ManagementManagement

Module Module ManagementManagement

Drush:Drush:

Page 69: Why Drupal is Rockstar?

User User ManagementManagement

User User ManagementManagement

Drush:Drush:

Page 70: Why Drupal is Rockstar?

Role Role ManagementManagement

Role Role ManagementManagement

Drush:Drush:

Page 71: Why Drupal is Rockstar?

DB ManagementDB ManagementDB ManagementDB Management

Drush:Drush:

Page 72: Why Drupal is Rockstar?

BackupBackupBackupBackup

Drush:Drush:

Page 73: Why Drupal is Rockstar?

Clearing of CacheClearing of CacheClearing of CacheClearing of Cache

Drush:Drush:

Page 74: Why Drupal is Rockstar?

Site Site MaintenanceMaintenance

Site Site MaintenanceMaintenance

Drush:Drush:

Page 75: Why Drupal is Rockstar?

Content Content ManagementManagement

Content Content ManagementManagement

Page 76: Why Drupal is Rockstar?

TaxonomyTaxonomyA powerful category system (taxonomy) that allows you to organize A powerful category system (taxonomy) that allows you to organize

and tag content.and tag content.

TaxonomyTaxonomyA powerful category system (taxonomy) that allows you to organize A powerful category system (taxonomy) that allows you to organize

and tag content.and tag content.

Content Management:Content Management:

Page 77: Why Drupal is Rockstar?

Content TypesContent TypesArticle, News, Events, Listings, etc ...Article, News, Events, Listings, etc ...

Content TypesContent TypesArticle, News, Events, Listings, etc ...Article, News, Events, Listings, etc ...

Content Management:Content Management:

Page 78: Why Drupal is Rockstar?

Questions?Questions?Questions?Questions?

Page 79: Why Drupal is Rockstar?

Thank You!Thank You!Thank You!Thank You!

Page 80: Why Drupal is Rockstar?

1. 1. http://drupal.orghttp://drupal.org2. 2. http://drupal.stackexchange.comhttp://drupal.stackexchange.com3. 3. https://drupal.org/communityhttps://drupal.org/community4. https://drupal.org/coding-standards4. https://drupal.org/coding-standards5. https://drupal.org/developing/best-practices5. https://drupal.org/developing/best-practices6. 6. http://stauffer.com/blog/2013/03/22/why-drupal-greatest-cms-earthhttp://stauffer.com/blog/2013/03/22/why-drupal-greatest-cms-earth7. 7. http://drush.wshttp://drush.ws8. https://github.com/drush-ops/drush8. https://github.com/drush-ops/drush

1. 1. http://drupal.orghttp://drupal.org2. 2. http://drupal.stackexchange.comhttp://drupal.stackexchange.com3. 3. https://drupal.org/communityhttps://drupal.org/community4. https://drupal.org/coding-standards4. https://drupal.org/coding-standards5. https://drupal.org/developing/best-practices5. https://drupal.org/developing/best-practices6. 6. http://stauffer.com/blog/2013/03/22/why-drupal-greatest-cms-earthhttp://stauffer.com/blog/2013/03/22/why-drupal-greatest-cms-earth7. 7. http://drush.wshttp://drush.ws8. https://github.com/drush-ops/drush8. https://github.com/drush-ops/drush

References:References:References:References: