Drupal is flexible
A reason for rolling your own system might be to have it fit your needs exactly. However, Drupal is designed to fit a range of needs, one of her key features is flexibility. Chances are you're better off towards your goal with Drupal. In addition to the already mentioned modules and their ability to be adapted to fit your special needs, it is fairly easy to roll your own modules. This is typically done by making a file with some functions implementing certain hooks in addition to other functions. The following function implements the help hook which is called by the Drupal core and possibly some other Drupal modules.
<?php
function mymodule_help($section) {
switch($section) {
case 'admin/help#block':
return 'My module will help you realize your dreams.';
break;
}
}
?>This way modules and the Drupal core interact, and it has proved very powerful. By using hooks, modules can interact with and take advantage of the building blocks of Drupal such as her node, category, administration and user systems.
