Drupal come framework di sviluppo

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Group & 1 Event

    Drupal come framework di sviluppo - Presentation Transcript

    1. Drupal come framework  di sviluppo Dario Ghilardi Marco Vito Moscaritolo darioghilardi@gmail.com marco@mavimo.org http://www.darioghilardi.com http://mavimo.org    
    2. Drupal come framework di sviluppo ....coding with Drupal Il processo di sviluppo ● Gli hook ● Le Form e le FAPI 2 ● L'interazione con il DB ● Il processo di testing    
    3. Drupal come framework di sviluppo ....coding with Drupal Gli hook Gli hook sono delle funzioni di callback scatenate in  automatico dal sistema all'accadere di certi eventi. Il nome dell'hook viene usato per determinare quale  evento deve intercettare. Concettualmente possiamo vedere i moduli come  classi che ereditano da una classe virtuale ed  implementano alcuni dei metodi che questa espone,  questi metodi sono gli hook.    
    4. Drupal come framework di sviluppo ....coding with Drupal Gli hook Gli hook sono composti dal nome del modulo seguito  dal nome dell'hook, quindi: miomodulo_user(...) miomodulo_nodeapi(...) miomodulo_load(...) miomodulo_taxonomy(...) miomodulo_schema(...) miomodulo_form_alter(...)    
    5. Drupal come framework di sviluppo ....coding with Drupal Gli hook /** * Implementation of hook_user(). */ function galleryfapi_user($op, &$edit, &$account, $category = NULL) { switch ($op) { case 'login': # code... drupal_set_message(t(\"Benvenuto\"), 'status'); break; case 'logout': # code... drupal_set_message(t(\"Arrivederci\"), 'status'); break; } }    
    6. Drupal come framework di sviluppo ....coding with Drupal I Form e le FAPI2 Il form viene strutturato come array e non richiede la  definizione del codice di markup. Viene gestito dal sistema che ne controlla l'integrità  dei dati e ne gestisce il flusso. Tramite hook_form_alter (o altri) è possibile andare a  modificare i form generati da altre parti del sistema.    
    7. Drupal come framework di sviluppo ....coding with Drupal I Form e le FAPI2 Le Form API 2 sono gli elementi strutturali che  compongono l'array del form; ne esistono alcune di  default, quali: ● select ● textfield ● checkbox ● ... ed è possibile crearne ad hoc in base alle proprio  esigenze implmentative.    
    8. Drupal come framework di sviluppo ....coding with Drupal I Form e le FAPI2 /** * Implementation of hook_form_alter(). */ function miomodulo_form_alter(&$form, $form_state, $form_id) { // Add node-form info here $form['name'] = array( '#type' => 'select', '#title' => t('Title'), '#description' => t('Description'), '#required' => TRUE, '#options' => array( 'value1' => t('Description 1'), 'value2' => t('Description 2'), 'value3' => t('Description 3'), ), ); }    
    9. Drupal come framework di sviluppo ....coding with Drupal I Form e le FAPI2 Esempio di validazione di un campo testo di un  form generato precedentemente /** * Implementation of hook_validate(). */ function miomodulo_validate(&$form, $form_elements) { if($form_elements['age'] < 18) { form_set_error('age', t('Devi essere maggiorenne.')); } }    
    10. Drupal come framework di sviluppo ....coding with Drupal Il database Drupal si interfaccia con diversi database, anche se il  principale risulta essere MySQL Nella versione precedente (la 5) tutte le operazioni  venivano svolte con chiamate dirette al DB, mentre  con la versione attuale esiste un livello di astrazione  intermedio su cui agire (il DB Layer). La versione 7 amplierà le funzionalità del DBL  gestendo configurazioni master­slave     
    11. Drupal come framework di sviluppo ....coding with Drupal Il database Il DBL si interfaccia al database ed in base  all'hook_schema ne definisce la struttura. Inoltre, tramite apposite funzioni, si occupa di  generare le corrette chiamate di scrittura  (insert/update) sul DB.  Le operazioni di lettura vengono demandate a  moduli stessi per permettere agli sviluppatori di  ottimizzare le query che generano.    
    12. Drupal come framework di sviluppo ....coding with Drupal Il database Operazione di update di un campo all'interno di una  tabella usando le funzioni del DBL: $data = new stdClass(); $data->id = 25; $data->txt = 'bla bla bla'; $data->bool = FALSE; drupal_write_record('tabella', $data, array('id'));    
    13. Drupal come framework di sviluppo ....coding with Drupal Il database Esempio di un estrazione di dati dal DB: $results = db_query(\"SELECT * FROM {tabella} WHERE id < %d\", $id_limit); while ($row = db_fetch_object($results)) { $output .= $row->id; $output .= $row->txt; $output .= $row->bool; }    
    14. Drupal come framework di sviluppo ....coding with Drupal Il database Il sistema di interazione con il DB mette già in atto  alcune funzionalità per la sicurezza; per fare questo,  però, bisogna rispettare i cosiddetti coding standard:  Uso dei placeholder nelle query, in questo  ● modo il sistema sanitizza i parametri della  query evitando SQL injection  check_plain e filter_xss per ripulire l'input  ● e l'utput dei datiXSS.    
    15. Drupal come framework di sviluppo ....coding with Drupal testing Drupal utilizza unit testing per l'analisi dei meccanismi  di funzionamento dei diversi moduli. Questo si basa  sulla libreria Open Source simpletest. Oltre a questo esistono i moduli coder e schema che  analizzano l'aderenza del codice ai coding standard (il  primo) e l'integrità del DB (il secondo).     
    16. Drupal come framework di sviluppo ....coding with Drupal Conclusioni Questo strumento si sta evolvendo sempre più  seguendo due direzioni parallele, la prima orientata  verso il CMS e la seconda verso il framework. Questo consente di sfruttarne le potenzialità in  entrambe le situazioni ottimizzando quindi i tempi di  realizzazione dei progetti basati su di esso sia per  sviluppatori che per gli amministratori.    
    17. Drupal come framework di sviluppo ....coding with Drupal Domande? Per altre informazioni visitate http://drupal.org e http://www.drupalitalia.org    
    SlideShare Zeitgeist 2009

    + gruspgrusp Nominate

    custom

    845 views, 0 favs, 4 embeds more stats

    Drupal può essere considerato un CMS che permette more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 845
      • 807 on SlideShare
      • 38 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 6
    Most viewed embeds
    • 26 views on http://www.phpday.it
    • 7 views on http://learninghub.rootiers.com
    • 4 views on http://portfolio.rootiers.com
    • 1 views on http://www.serieadilettanti.it

    more

    All embeds
    • 26 views on http://www.phpday.it
    • 7 views on http://learninghub.rootiers.com
    • 4 views on http://portfolio.rootiers.com
    • 1 views on http://www.serieadilettanti.it

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Groups / Events