SlideShare a Scribd company logo
1 of 5
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                                                                                                                                                  Blog:	
  http://musarra.wordpress.com	
  
                                                                                                                                                                                                                                   Mail:	
  antonio.musarra@gmail.com	
  
	
  

                           PHP	
  Documentation	
  APIs	
  on	
  the	
  fly	
  
         All’interno	
   del	
   ciclo	
   di	
   vita	
   di	
   un	
   progetto	
   software	
   reputo	
   importante	
   la	
  
percentuale	
   di	
   tempo	
   dedicata	
   a	
   redigere	
   la	
   documentazione	
   di	
   progetto,	
   a	
   volte,	
  
anzi	
  direi	
  molto	
  di	
  frequente	
  la	
  percentuale	
  di	
  tempo	
  dedicata	
  a	
  quest’attività,	
  è	
  
intorno	
  allo	
  zero.	
  
         La	
   documentazione	
   che	
   accompagna	
   un	
   progetto	
   software	
   è	
   di	
   vario	
   tipo,	
  
per	
   esperienza	
   personale	
   ritengo	
   che	
   una	
   buona	
   documentazione	
   delle	
   API	
   sia	
  
una	
   cosa	
   gradita	
   soprattutto	
   ai	
   “posteri”	
   che	
   in	
   futuro	
   dovranno	
   utilizzare	
   o	
  
estendere	
  il	
  progetto	
  software.	
  	
  
         Non	
  ho	
  nessuna	
  remora	
  nell’affermare	
  che	
  la	
  documentazione	
  delle	
  API	
  si	
  
scrive	
   da	
   sola,	
   nello	
   stesso	
   istante	
   dedicato	
   alla	
   scrittura	
   del	
   codice	
   sorgente.	
  
Redigere	
   la	
   documentazione	
   mentre	
   si	
   scrive	
   il	
   codice,	
   è	
   molto	
   semplice,	
   ciò	
   è	
  
reso	
  possibile	
  grazie	
  a	
  particolari	
  annotazioni	
  e	
  tools1.	
  
         Nel	
   corso	
   di	
   questo	
   breve	
   articolo	
   vedremo	
   come	
   generare	
   on	
   the	
   fly	
   la	
  
documentazione	
  delle	
  API	
  di	
  un	
  progetto	
  scritto	
  in	
  PHP2;	
  potremmo	
  per	
  esempio	
  
prendere	
   in	
   considerazione	
   il	
   progetto	
   Open	
   Source	
   Wordpress3 	
  e	
   di	
   questo	
  
generare	
  la	
  documentazione	
  delle	
  API4.	
  Assumiamo	
  che:	
  
         	
  
                 • L’ambiente	
  di	
  sviluppo	
  sia	
  Eclipse	
  PDT	
  Helios5;	
  
                 • Il	
  progetto	
  Wordpress	
  sia	
  presente	
  nel	
  proprio	
  workspace	
  Eclipse;	
  	
  
                 • Sul	
  sistema	
  sia	
  installato	
  e	
  correttamente	
  configurato	
  il	
  tool	
  PHPDoc.	
  
	
  
         Il	
   progetto	
   Wordpress	
   può	
   essere	
   creato	
   sul	
   proprio	
   workspace	
   Eclipse	
  
direttamente	
  dal	
  repository	
  SVN	
  pubblico	
  di	
  wordpress.org.	
  Tutte	
  le	
  informazioni	
  
necessarie	
  sono	
  disponibili	
  all’indirizzo	
  http://wordpress.org/download/svn/	
  .	
  
         Il	
  “trucco	
  dell’on	
  the	
  fly”	
  è	
  abbastanza	
  semplice,	
  basta	
  configurare	
  su	
  Eclipse	
  
PDT	
   Helios	
   un	
   cosiddetto	
   External	
   Tools,	
   che	
   nel	
   nostro	
   caso	
   chiamerà	
   il	
   tool	
  
PHPDoc	
   passando	
   opportuni	
   parametri.	
   L’External	
   Tool	
   che	
   andremo	
   a	
   creare	
  
prenderà	
   il	
   nome	
   di	
   Wordpress	
   API	
   Docs.	
   E’	
   talmente	
   semplice	
   la	
   procedura	
   di	
  
creazione	
   dell’External	
   Tools	
   che	
   ho	
   preferito	
   utilizzare	
   delle	
   illustrazioni	
   con	
  
opportune	
   indicazioni.	
   Nelle	
   figure	
   che	
   seguono,	
   sono	
   quindi	
   illustrati	
   i	
   passi	
  
necessari	
  alla	
  creazione	
  del	
  comando	
  per	
  generare	
  il	
  documento	
  delle	
  API.	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
1	
  Analizzano	
   il	
   codice	
   sorgente	
   e	
   generano	
   la	
   documentazione	
   in	
   vari	
   formati	
   di	
   output	
   (HTML,	
   PDF,	
   DocBook,	
   etc…).	
  
JavaDoc,	
  PHPDoc,	
  Doxygen,	
  etc…	
  sono	
  alcuni	
  di	
  questi.	
  
2	
  PHP	
   (acronimo	
   ricorsivo	
   di	
   "PHP:	
   Hypertext	
   Preprocessor",	
   preprocessore	
   d’ipertesti)	
   è	
   un	
   linguaggio	
   di	
   scripting	
  

interpretato,	
   con	
   licenza	
   open	
   source	
   e	
   libera	
   (ma	
   incompatibile	
   con	
   la	
   GPL),	
   originariamente	
   concepito	
   per	
   la	
  
programmazione	
  Web	
  ovvero	
  la	
  realizzazione	
  di	
  pagine	
  web	
  dinamiche.	
  
3	
  E’	
   una	
   piattaforma	
   di	
   "personal	
   publishing"	
   e	
   content	
   management	
   system	
   (CMS),	
   scritta	
   in	
   PHP	
   e	
   che	
   usa	
   come	
  

database	
  MySQL.	
  Creata	
  da	
  Matt	
  Mullenweg,	
  è	
  distribuita	
  con	
  la	
  licenza	
  GNU	
  General	
  Public	
  License.	
  
4	
  Le	
   Application	
   Programming	
   Interface	
   API	
   (Interfaccia	
   di	
   Programmazione	
   di	
   un'Applicazione),	
   sono	
   ogni	
   insieme	
   di	
  

procedure	
  disponibili	
  al	
  programmatore,	
  di	
  solito	
  raggruppate	
  a	
  formare	
  un	
  set	
  di	
  strumenti	
  specifici	
  per	
  un	
  determinato	
  
compito.	
  È	
  un	
  metodo	
  per	
  ottenere	
  un'astrazione,	
  di	
  solito	
  tra	
  l'hardware	
  e	
  il	
  programmatore,	
  o	
  tra	
  software	
  a	
  basso	
  ed	
  
alto	
   livello.	
   Le	
   API	
   permettono	
   di	
   evitare	
   ai	
   programmatori	
   di	
   scrivere	
   tutte	
   le	
   funzioni	
   dal	
   nulla.	
   Le	
   API	
   stesse	
   sono	
  
un'astrazione:	
  il	
  software	
  che	
  fornisce	
  una	
  certa	
  API	
  è	
  detto	
  che	
  implementa	
  le	
  API.	
  
5 	
  L’IDE	
   Eclipse	
   dedicato	
   all’ambiente	
   di	
   sviluppo	
   PHP.	
   Per	
   maggiori	
   informazioni	
   consultare	
   il	
   sito	
  

http://www.eclipse.org/pdt/	
  	
  
	
  
11/01/11	
                                                                                                                                                                                                                                                                     1	
  

                  This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                                                                                                                                                  	
  
	
  
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                           Blog:	
  http://musarra.wordpress.com	
  
                                                                                                            Mail:	
  antonio.musarra@gmail.com	
  
	
  
	
  
	
  




                                                                                                                              	
  
	
  	
  	
  Figura	
  1	
  Menu	
  di	
  accesso	
  alla	
  funzione	
  di	
  creazione	
  e	
  configurazione	
  External	
  Tools.	
  

	
  




                                                                                                                                                                  	
  
Figura	
  2	
  Creazione	
  dell’External	
  Tools	
  Wordpress	
  API	
  Docs.	
  

           Il	
   box	
   Arguments	
   (sezione	
   numero	
   quattro)	
   della	
   Figura	
   2	
   indica	
   quali	
  
parametri	
  da	
  passare	
  al	
  comando	
  phpdoc,	
  in	
  particolare,	
  il	
  parametro	
  –d	
  imposta	
  
il	
   folder	
   contenente	
   il	
   codice	
   sorgente	
   da	
   cui	
   generare	
   la	
   documentazione	
   delle	
  
API,	
   e	
   il	
   valore	
   assegnato	
   (${folder_prompt})	
   fa	
   sì	
   che	
   sia	
   l’utente	
   a	
   scegliere	
   il	
  
folder.	
  
	
  
11/01/11	
                                                                                                                                              2	
  

       This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                           	
  
	
  
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                         Blog:	
  http://musarra.wordpress.com	
  
                                                                                                          Mail:	
  antonio.musarra@gmail.com	
  
	
  
	
  
	
  




                                                                                                                                             	
  
Figura	
  3	
  External	
  Tools	
  Wordpress	
  API	
  Docs	
  aggiunto	
  alla	
  lista	
  dopo	
  la	
  creazione.	
  

	
  




                                                                                                                                                                	
  
Figura	
  4	
  Wordpress	
  API	
  Docs	
  in	
  action.	
  

	
  
	
  
	
  
	
  
	
  
	
  
11/01/11	
                                                                                                                                            3	
  

       This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                         	
  
	
  
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                         Blog:	
  http://musarra.wordpress.com	
  
                                                                                                          Mail:	
  antonio.musarra@gmail.com	
  
	
  




                                                                                                                                                 	
  
Figura	
  5	
  TreeView	
  documentazione	
  API.	
  

	
  




                                                                                                                                                                  	
  
Figura	
  6	
  Home	
  Page	
  della	
  documentazione	
  delle	
  API.	
  


	
  
11/01/11	
                                                                                                                                              4	
  

       This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                           	
  
	
  
Antonio	
  Musarra's	
  Blog	
  
The	
  ideal	
  solution	
  for	
  a	
  problem	
                                                             Blog:	
  http://musarra.wordpress.com	
  
                                                                                                              Mail:	
  antonio.musarra@gmail.com	
  
	
  
	
  	
  




                                                                                                                                                                    	
  
Figura	
  7	
  Documentazione	
  di	
  dettaglio	
  su	
  di	
  una	
  classe	
  parte	
  delle	
  API.	
  




	
  
11/01/11	
                                                                                                                                                5	
  

           This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  
                                                                                                                                                             	
  
	
  

More Related Content

Viewers also liked

What is that beautiful house?
What is that beautiful house?What is that beautiful house?
What is that beautiful house?GeorginaSV
 
PRO Workshop - Selecting the appropriate PRO for your clinical study
PRO Workshop - Selecting the appropriate PRO for your clinical studyPRO Workshop - Selecting the appropriate PRO for your clinical study
PRO Workshop - Selecting the appropriate PRO for your clinical studyKeith Meadows
 
5 tips on how to select a prom for your study presentation notes
5 tips on how to select a prom for your study   presentation notes5 tips on how to select a prom for your study   presentation notes
5 tips on how to select a prom for your study presentation notesKeith Meadows
 
Why Community Managers Won't Exist in 5 Years (and why that's a good thing)
Why Community Managers Won't Exist in 5 Years (and why that's a good thing)Why Community Managers Won't Exist in 5 Years (and why that's a good thing)
Why Community Managers Won't Exist in 5 Years (and why that's a good thing)Evan Hamilton
 

Viewers also liked (6)

What is that beautiful house?
What is that beautiful house?What is that beautiful house?
What is that beautiful house?
 
PRO Workshop - Selecting the appropriate PRO for your clinical study
PRO Workshop - Selecting the appropriate PRO for your clinical studyPRO Workshop - Selecting the appropriate PRO for your clinical study
PRO Workshop - Selecting the appropriate PRO for your clinical study
 
5 tips on how to select a prom for your study presentation notes
5 tips on how to select a prom for your study   presentation notes5 tips on how to select a prom for your study   presentation notes
5 tips on how to select a prom for your study presentation notes
 
Why Community Managers Won't Exist in 5 Years (and why that's a good thing)
Why Community Managers Won't Exist in 5 Years (and why that's a good thing)Why Community Managers Won't Exist in 5 Years (and why that's a good thing)
Why Community Managers Won't Exist in 5 Years (and why that's a good thing)
 
JAX-WS e JAX-RS
JAX-WS e JAX-RSJAX-WS e JAX-RS
JAX-WS e JAX-RS
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 

Similar to PHP Documentation APIs on the fly

Costruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMCostruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMAntonio Musarra
 
Open Source con uno sguardo enterprise - CNA barcamp 2012
Open Source con uno sguardo enterprise - CNA barcamp 2012Open Source con uno sguardo enterprise - CNA barcamp 2012
Open Source con uno sguardo enterprise - CNA barcamp 2012David Denicolò
 
Open Source con uno sguardo enterprise
Open Source con uno sguardo enterpriseOpen Source con uno sguardo enterprise
Open Source con uno sguardo enterpriseCNA RAvenna
 
Liferay: Esporre Web Services Custom
Liferay: Esporre Web Services CustomLiferay: Esporre Web Services Custom
Liferay: Esporre Web Services CustomAntonio Musarra
 
Costruire un client Java per SugarCRM
Costruire un client Java per SugarCRMCostruire un client Java per SugarCRM
Costruire un client Java per SugarCRMAntonio Musarra
 
Formazione on line (e-learning) e conferenze via web
Formazione on line (e-learning) e conferenze via webFormazione on line (e-learning) e conferenze via web
Formazione on line (e-learning) e conferenze via webEvolutionBook S.r.l.
 
II modulo – come gestire
II modulo – come gestireII modulo – come gestire
II modulo – come gestireBeesolution
 
Strumenti Web2
Strumenti Web2Strumenti Web2
Strumenti Web2sidelab1
 
SugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual ApplianceSugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual ApplianceAntonio Musarra
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioAntonio Musarra
 
Strumenti Web2.0
Strumenti Web2.0Strumenti Web2.0
Strumenti Web2.0sidelab1
 
Wordpress, Google Analytics, MySQL e Php, con free hosting
Wordpress, Google Analytics, MySQL e Php, con free hostingWordpress, Google Analytics, MySQL e Php, con free hosting
Wordpress, Google Analytics, MySQL e Php, con free hostingCity Planner
 
7. Applicazioni web e CMS
7. Applicazioni web e CMS7. Applicazioni web e CMS
7. Applicazioni web e CMSRoberto Polillo
 
Cms, Content Management System. Sistema di gestione dei contenuti
Cms, Content Management System. Sistema di gestione dei contenutiCms, Content Management System. Sistema di gestione dei contenuti
Cms, Content Management System. Sistema di gestione dei contenutiGiulia S
 
Le applicazioni web e i CMS (18/19)
Le applicazioni web e i CMS (18/19)Le applicazioni web e i CMS (18/19)
Le applicazioni web e i CMS (18/19)Giuseppe Vizzari
 
Bene, usiamo WordPress.
Bene, usiamo WordPress.Bene, usiamo WordPress.
Bene, usiamo WordPress.Paolo Valenti
 
Webdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkWebdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkMassimo Schiro
 
Google Chrome Extensions & Plugin vs Firefox
Google Chrome Extensions & Plugin vs FirefoxGoogle Chrome Extensions & Plugin vs Firefox
Google Chrome Extensions & Plugin vs FirefoxWikiCorsoWeb
 

Similar to PHP Documentation APIs on the fly (20)

Costruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMCostruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRM
 
Open Source con uno sguardo enterprise - CNA barcamp 2012
Open Source con uno sguardo enterprise - CNA barcamp 2012Open Source con uno sguardo enterprise - CNA barcamp 2012
Open Source con uno sguardo enterprise - CNA barcamp 2012
 
Open Source con uno sguardo enterprise
Open Source con uno sguardo enterpriseOpen Source con uno sguardo enterprise
Open Source con uno sguardo enterprise
 
Liferay: Esporre Web Services Custom
Liferay: Esporre Web Services CustomLiferay: Esporre Web Services Custom
Liferay: Esporre Web Services Custom
 
Costruire un client Java per SugarCRM
Costruire un client Java per SugarCRMCostruire un client Java per SugarCRM
Costruire un client Java per SugarCRM
 
7 - Web application e CMS
7 - Web application e CMS7 - Web application e CMS
7 - Web application e CMS
 
Formazione on line (e-learning) e conferenze via web
Formazione on line (e-learning) e conferenze via webFormazione on line (e-learning) e conferenze via web
Formazione on line (e-learning) e conferenze via web
 
II modulo – come gestire
II modulo – come gestireII modulo – come gestire
II modulo – come gestire
 
Strumenti Web2
Strumenti Web2Strumenti Web2
Strumenti Web2
 
SugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual ApplianceSugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual Appliance
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo Episodio
 
Strumenti Web2.0
Strumenti Web2.0Strumenti Web2.0
Strumenti Web2.0
 
Wordpress, Google Analytics, MySQL e Php, con free hosting
Wordpress, Google Analytics, MySQL e Php, con free hostingWordpress, Google Analytics, MySQL e Php, con free hosting
Wordpress, Google Analytics, MySQL e Php, con free hosting
 
7. Applicazioni web e CMS
7. Applicazioni web e CMS7. Applicazioni web e CMS
7. Applicazioni web e CMS
 
Cms, Content Management System. Sistema di gestione dei contenuti
Cms, Content Management System. Sistema di gestione dei contenutiCms, Content Management System. Sistema di gestione dei contenuti
Cms, Content Management System. Sistema di gestione dei contenuti
 
Le applicazioni web e i CMS (18/19)
Le applicazioni web e i CMS (18/19)Le applicazioni web e i CMS (18/19)
Le applicazioni web e i CMS (18/19)
 
Bene, usiamo WordPress.
Bene, usiamo WordPress.Bene, usiamo WordPress.
Bene, usiamo WordPress.
 
Webdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkWebdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 Ok
 
Google Chrome Extensions & Plugin vs Firefox
Google Chrome Extensions & Plugin vs FirefoxGoogle Chrome Extensions & Plugin vs Firefox
Google Chrome Extensions & Plugin vs Firefox
 
Google chrome
Google chromeGoogle chrome
Google chrome
 

More from Antonio Musarra

Liferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cLiferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cAntonio Musarra
 
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Antonio Musarra
 
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cCome installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cAntonio Musarra
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Antonio Musarra
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.comAntonio Musarra
 
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseCome installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseAntonio Musarra
 
Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Antonio Musarra
 
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleLiferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleAntonio Musarra
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioAntonio Musarra
 
SugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minutiSugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minutiAntonio Musarra
 
How to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMHow to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMAntonio Musarra
 
Liferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelLiferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelAntonio Musarra
 
Introduzione a Liferay Message BUS
Introduzione a Liferay Message BUSIntroduzione a Liferay Message BUS
Introduzione a Liferay Message BUSAntonio Musarra
 
Building a Client .NET for SugarCRM
Building a Client .NET for SugarCRMBuilding a Client .NET for SugarCRM
Building a Client .NET for SugarCRMAntonio Musarra
 
Come configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleCome configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleAntonio Musarra
 
HOW TO SAML Password Management (Note)
HOW TO SAML Password Management (Note)HOW TO SAML Password Management (Note)
HOW TO SAML Password Management (Note)Antonio Musarra
 
J-SugarCRM UserSync TechnicalGuide
J-SugarCRM UserSync TechnicalGuideJ-SugarCRM UserSync TechnicalGuide
J-SugarCRM UserSync TechnicalGuideAntonio Musarra
 

More from Antonio Musarra (18)

Liferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cLiferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
 
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
 
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cCome installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.com
 
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseCome installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
 
Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1
 
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleLiferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
 
OSGi e Liferay 7
OSGi e Liferay 7OSGi e Liferay 7
OSGi e Liferay 7
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° Episodio
 
SugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minutiSugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minuti
 
How to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMHow to Build a Java client for SugarCRM
How to Build a Java client for SugarCRM
 
Liferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelLiferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio Excel
 
Introduzione a Liferay Message BUS
Introduzione a Liferay Message BUSIntroduzione a Liferay Message BUS
Introduzione a Liferay Message BUS
 
Building a Client .NET for SugarCRM
Building a Client .NET for SugarCRMBuilding a Client .NET for SugarCRM
Building a Client .NET for SugarCRM
 
Come configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleCome configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per Oracle
 
HOW TO SAML Password Management (Note)
HOW TO SAML Password Management (Note)HOW TO SAML Password Management (Note)
HOW TO SAML Password Management (Note)
 
J-SugarCRM UserSync TechnicalGuide
J-SugarCRM UserSync TechnicalGuideJ-SugarCRM UserSync TechnicalGuide
J-SugarCRM UserSync TechnicalGuide
 

PHP Documentation APIs on the fly

  • 1. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com     PHP  Documentation  APIs  on  the  fly   All’interno   del   ciclo   di   vita   di   un   progetto   software   reputo   importante   la   percentuale   di   tempo   dedicata   a   redigere   la   documentazione   di   progetto,   a   volte,   anzi  direi  molto  di  frequente  la  percentuale  di  tempo  dedicata  a  quest’attività,  è   intorno  allo  zero.   La   documentazione   che   accompagna   un   progetto   software   è   di   vario   tipo,   per   esperienza   personale   ritengo   che   una   buona   documentazione   delle   API   sia   una   cosa   gradita   soprattutto   ai   “posteri”   che   in   futuro   dovranno   utilizzare   o   estendere  il  progetto  software.     Non  ho  nessuna  remora  nell’affermare  che  la  documentazione  delle  API  si   scrive   da   sola,   nello   stesso   istante   dedicato   alla   scrittura   del   codice   sorgente.   Redigere   la   documentazione   mentre   si   scrive   il   codice,   è   molto   semplice,   ciò   è   reso  possibile  grazie  a  particolari  annotazioni  e  tools1.   Nel   corso   di   questo   breve   articolo   vedremo   come   generare   on   the   fly   la   documentazione  delle  API  di  un  progetto  scritto  in  PHP2;  potremmo  per  esempio   prendere   in   considerazione   il   progetto   Open   Source   Wordpress3  e   di   questo   generare  la  documentazione  delle  API4.  Assumiamo  che:     • L’ambiente  di  sviluppo  sia  Eclipse  PDT  Helios5;   • Il  progetto  Wordpress  sia  presente  nel  proprio  workspace  Eclipse;     • Sul  sistema  sia  installato  e  correttamente  configurato  il  tool  PHPDoc.     Il   progetto   Wordpress   può   essere   creato   sul   proprio   workspace   Eclipse   direttamente  dal  repository  SVN  pubblico  di  wordpress.org.  Tutte  le  informazioni   necessarie  sono  disponibili  all’indirizzo  http://wordpress.org/download/svn/  .   Il  “trucco  dell’on  the  fly”  è  abbastanza  semplice,  basta  configurare  su  Eclipse   PDT   Helios   un   cosiddetto   External   Tools,   che   nel   nostro   caso   chiamerà   il   tool   PHPDoc   passando   opportuni   parametri.   L’External   Tool   che   andremo   a   creare   prenderà   il   nome   di   Wordpress   API   Docs.   E’   talmente   semplice   la   procedura   di   creazione   dell’External   Tools   che   ho   preferito   utilizzare   delle   illustrazioni   con   opportune   indicazioni.   Nelle   figure   che   seguono,   sono   quindi   illustrati   i   passi   necessari  alla  creazione  del  comando  per  generare  il  documento  delle  API.                                                                                                                     1  Analizzano   il   codice   sorgente   e   generano   la   documentazione   in   vari   formati   di   output   (HTML,   PDF,   DocBook,   etc…).   JavaDoc,  PHPDoc,  Doxygen,  etc…  sono  alcuni  di  questi.   2  PHP   (acronimo   ricorsivo   di   "PHP:   Hypertext   Preprocessor",   preprocessore   d’ipertesti)   è   un   linguaggio   di   scripting   interpretato,   con   licenza   open   source   e   libera   (ma   incompatibile   con   la   GPL),   originariamente   concepito   per   la   programmazione  Web  ovvero  la  realizzazione  di  pagine  web  dinamiche.   3  E’   una   piattaforma   di   "personal   publishing"   e   content   management   system   (CMS),   scritta   in   PHP   e   che   usa   come   database  MySQL.  Creata  da  Matt  Mullenweg,  è  distribuita  con  la  licenza  GNU  General  Public  License.   4  Le   Application   Programming   Interface   API   (Interfaccia   di   Programmazione   di   un'Applicazione),   sono   ogni   insieme   di   procedure  disponibili  al  programmatore,  di  solito  raggruppate  a  formare  un  set  di  strumenti  specifici  per  un  determinato   compito.  È  un  metodo  per  ottenere  un'astrazione,  di  solito  tra  l'hardware  e  il  programmatore,  o  tra  software  a  basso  ed   alto   livello.   Le   API   permettono   di   evitare   ai   programmatori   di   scrivere   tutte   le   funzioni   dal   nulla.   Le   API   stesse   sono   un'astrazione:  il  software  che  fornisce  una  certa  API  è  detto  che  implementa  le  API.   5  L’IDE   Eclipse   dedicato   all’ambiente   di   sviluppo   PHP.   Per   maggiori   informazioni   consultare   il   sito   http://www.eclipse.org/pdt/       11/01/11   1   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • 2. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com                Figura  1  Menu  di  accesso  alla  funzione  di  creazione  e  configurazione  External  Tools.       Figura  2  Creazione  dell’External  Tools  Wordpress  API  Docs.   Il   box   Arguments   (sezione   numero   quattro)   della   Figura   2   indica   quali   parametri  da  passare  al  comando  phpdoc,  in  particolare,  il  parametro  –d  imposta   il   folder   contenente   il   codice   sorgente   da   cui   generare   la   documentazione   delle   API,   e   il   valore   assegnato   (${folder_prompt})   fa   sì   che   sia   l’utente   a   scegliere   il   folder.     11/01/11   2   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • 3. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com           Figura  3  External  Tools  Wordpress  API  Docs  aggiunto  alla  lista  dopo  la  creazione.       Figura  4  Wordpress  API  Docs  in  action.               11/01/11   3   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • 4. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com       Figura  5  TreeView  documentazione  API.       Figura  6  Home  Page  della  documentazione  delle  API.     11/01/11   4   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • 5. Antonio  Musarra's  Blog   The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com           Figura  7  Documentazione  di  dettaglio  su  di  una  classe  parte  delle  API.     11/01/11   5   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike