开发者

What are the skills a Drupal Developer needs? [closed]

开发者 https://www.devze.com 2022-12-30 07:33 出处:网络
Closed. This question is off-topic. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed. This question is off-topic. It is not currently accepting answers.

Want to improve this question? Update the question so it's on-topic for Stack Overflow.

Closed 10 years ago.

Improve this question

I'm trying to write out a list of key Drupal competencies, mainly so I can confirm what I know, don't know and don't know I don't know. (Thanks D. Rumsfeld for that quote!)

I think some of these are really broad, for instance there's quite a difference between making a functional theme and creating a theme with good SEO, load times and so on, but I'm hoping you could assume that a half decent web developer would look after that anyway.

Just interested to see what people here feel is also important. I've edited the suggestions so far into this list.

Languages

  • PHP
  • MYSQL
  • Query

Drupal Skills

  • Research and install modules to meet project requirements
  • Configure the basic modules and core settings to get a site running
  • Drush command line tool
  • Create a custom Theme from scratch which validates with good HTML/CSS.
  • Able to customise forms, core, themes without altering core files but by using template.php or custom modules.
  • Can make forms from scratch using the API - with validation and posting back to the DB/email
  • Can create custom modules from scratch utilising core hooks and module hooks.
  • Be involved with the community, understand the naming conventions, CVS system and ideally have submitted some code or revisions.

Modules It's not easy to make a must know module list, as not only is the modules you use very dependent on the site, but also how you use them. However the following are widely used:

Views

  • Know how to make basic views and blocks.
  • Know how to make more complex views with relationships and terms.
  • Know how to use hook_views_query开发者_运维问答_alter, to make complex queries.
  • Know how to use hook_views_default_views, to create specific views.

CCK

  • Know how to setup content - what field types to use.
  • Know how to create your own field_formatters - the foundation for theming CCK fields.

Hooks The most important hooks to learn, to create a basic module are probably:

  • hook_form_alter() - change forms without changing code.
  • hook_menu()
  • hook_theme()
  • hook_nodeapi() - almost anything regarding nodes
  • hook_schema() - create tables
  • hook_install() / hook_uninstall() - create tables and clean up.
  • hook_perm() - when you need special access control.
  • hook_init() - things to want always to happen.
  • hook_user() - if you need to tap into user actions or modify the user object.


I good understanding of client-server architecture, how servers and browsers works. And knowledge of php and mysql, templates engines. And of course, you should also read Drupal documentations.


Able to create a custom Theme from scratch which validates with good HTML/CSS and also pays attention to usability and accessibility. (Whilst still looking kick-ass).

You usually don't want to create themes from scratch but from a starter theme like Zen instead.

For Drupal you will need:

  • PHP, it's a PHP framework, so to really understand and use it, you need to understand PHP.
  • SQL, the list of SQL serves that Drupal can use is growing, but you will need to understand * SQL, relational database and how to setup some basic architecture.
  • Javascript (and jQuery). Drupal uses the jQuery js library, so it will be a lot easier if you not only, know how yo use javascript, but also understand how to use jQuery and some of it concepts.
  • The hook system and how you can alter Drupal core and modules implementing hooks.
  • The naming convention for hooks, theme functions etc.

Modules
It's not easy to make a must know module list, as not only is the modules you use very dependent on the site, but also how you use them. The two top modules in Drupal is.

  • Views
    • Know how to make basic views and blocks.
    • Know how to make more complex views with relationships and terms.
    • Know how to use hook_views_query_alter, to make complex queries.
    • Know how to use hook_views_default_views, to create specific views.
  • CCK
    • Know how to setup content - what field types to use.
    • Know how to create your own field_formatters - the foundation for theming CCK fields.

Another module that I find very powerfull once mastered is Panels. It allows you to do a lot of complex and difficult things with very little and simple code. There is a lot of hooks you need to learn, and not much documentation. But once you understand Panels, you find that you time has been well spent.

Hooks
The most important hooks to learn, to create a basic module is probably:

  • hook_form_alter() - change forms without changing code.
  • hook_menu()
  • hook_theme()
  • hook_nodeapi() - almost anything regarding nodes
  • hook_schema() - create tables
  • hook_install() / hook_uninstall() - create tables and clean up.
  • hook_perm() - when you need special access control.
  • hook_init() - things to want always to happen.
  • hook_user() - if you need to tap into user actions or modify the user object.

You don't need to use all of these hooks all of the time, but they are some of the most used ones.


Great list so far! Some others for consideration:

  • Ability to use Drush to update or setup a site
  • Strong understanding of good best practices configuration for performance, security and SEO of a Drupal site (think launch checklists)
  • Having submitted a module to Drupal.org (however simple) or submitted a patch (the process of getting a CVS account and getting your first code in is instructive to the community and to standards)


You don't need SEO skills for templates, drupal usually helps with SEO alot. Ofcourse a developer who will slice a design must know that all headings must be done with h1,h2,h3,h4 tags. that's really basic one. everything all is up to drupal..

as for my opinion to be a drupal "developer", you need some very basic skills in PHP. Because drupal is really written without object-oriented programing, and without DESIGN PATTERNS, so these are two things is really makes you a programmer.. without them it just [sorry for this word] bullshit not a programming.

I think anybody can install drupal or wordpress or some cms-made-simple, systems if you have at least once connected to ftp in your life... to develop plugins for them is a requires basic skills of php. Ofcourse if you'll find skillfull developer then he will know oop basic, and will write plugins with OOP and that code will be really NiCE! =)


Being able to edit existing functionality (core or module) without touching the core or module and knowing whether to put it in template or a custom module.


As we anything web related these days, you really must have a good understanding of the HTTP protocol. You also need a good understanding of JavaScript, the DOM, CSS and HTML5. Knowing a bit of jQuery is not enough for a developer, you need to understand what your are doing with the DOM, HTML5 APIs and CSS in order to build features and behaviours into the browser. You also need to understand the Drupal JavaScript APIs, both on the server side (hook_library(), #attached, etc.) and the client side (Drupal.behaviors, etc.)

You also need to known the various APIs of Drupal. The Form API is not the only one. You need to understand the Menu system (page, access, title and delivery callbacks, how to pass parameters to them, etc.), the Queue API for asynchronous operations, Batch API for long running operations, Entities and Field APIs for user editable structured data, Theme API and Render Arrays for anything presentation, Cache API, Schema and Database APIs, File API, Cache API and the Localization API.

0

精彩评论

暂无评论...
验证码 换一张
取 消