Eclipse phpDocumentor Profile

Aus Laub-Home Wiki


Um für ein vorhandenes PHP Projekt in Eclipse mittels phpDocumentor eine API Dokuementation zu erstellen, muss wie folgt vorgegangen werden:

phpDocumentor Version 1

1. phpDocumentor herunterladen ( http://www.phpdoc.org/ ), lokal ablegen und entpacken (z.B. c:\dev\PhpDocumentor-1.4.3\)
2. phpDocumentor Batch anpassen -> korrekten Pfad zur PHP CLI setzen:
  SET phpCli=c:\dev\php-5.2.13-Win32\php.exe
3. Eclipse "External Tool" Definition erstellen:
  • global, für das aktuell aktive Projekt
  • Eclipse starten -> Run -> External Tools -> External Tools Configuration -> New launch Configuration
  • Name: phpDoc
  • Location: c:\dev\PhpDocumentor-1.4.3\phpdoc.bat
  • Working Directory: ${project_loc}
Arguments: hier die entsprechenden phpDocumentor Variablen setzen
  • -t targetdir
  • -o HTML:frames:earthli (Parser Optionen [default: HTML:default:default])
  • -d parsedir
  • -i ignore (z.B. eine Beispielanwendung demo.php)
  • -ti title
  • -pp parseprivate (standardmäßig werden @access private Elemente nicht mitverarbeitet, daher muss dies explizit aktiviert werden)
-d "${project_loc}\application" -o HTML:frames:earthli -t "${project_loc}\public\phpDoc" -i demo.php -ti "${project_name}" -pp
  • für ein spezifisches Projekt
  • Eclipse starten -> Run -> External Tools -> External Tools Configuration -> New launch Configuration
  • Name: phpDoc - DemoProject
  • Location: c:\dev\PhpDocumentor-1.4.3\phpdoc.bat
  • Working Directory: via "Browse Workspace..." das entsprechende Projekt auswählen
(dann sollte etwas wie ${workspace_loc:/DemoProject} auftauchen)
Arguments: hier die entsprechenden phpDocumentor Variablen setzen
  • -t targetdir
  • -o HTML:frames:earthli (Parser Optionen [default: HTML:default:default])
  • -d parsedir
  • -i ignore (z.B. eine Beispielanwendung demo.php)
  • -ti title
  • -pp parseprivate (standardmäßig werden @access private Elemente nicht mitverarbeitet, daher muss dies explizit aktiviert werden)
-d "${workspace_loc:/DemoProject}/src" -o HTML:frames:earthli -t "${workspace_loc:/DemoProject}/doc/phpDoc" -i demo.php -ti "DemoProject" -pp
4. ausführen / run



phpDocumentor Version 2

Installation

1. Zuerst den neuen phpDocumentor Installer downloaden und lokale abspeichern (Speicherort ab jetzt mit PHPDOC_PATH referenziert): HIER
2. GIT herunterladen und installieren: HIER (inkl. CMD und Umgebungsvariablen Integration!)
3. phpDocumentor Binary Pfad (PHPDOC_PATH\bin) zur Windows Umgebungsvariable hinzufügen
4. phpDocumentor Installer ausführen php installer.php (Beispielausgabe im Anhang)
5. Windows Batch-File "phpdoc.bat" anpassen (PHPDOC_PATH\bin\phpdoc.bat); am besten direkt alles mit folgendem Ersetzen:
C:\php\php.exe C:\phpDocumentor2\bin\phpdoc.php %*
Hinweis: Sofern das PHP Binary in der Windows-Umgebungsvariable enthalten ist, muss hier nicht der volle Pfade angegeben werden - prinzipiell schadet es jedoch nicht ;)
6. Testaufruf durchführen:
C:\Users\localuser>phpdoc run -h

=> führt automatisch folgenden Befehl aus:

C:\Users\localuser>php.exe C:\phpDocumentor2\bin\phpdoc.php run -h


Konfiguration

  • Eclipse starten -> Run -> External Tools -> External Tools Configuration -> New launch Configuration
  • Name: phpDoc2
  • Location: Pfad zur Batch-File phpdoc.bat (PHPDOC_PATH\bin\phpdoc.bat)
  • Working Directory: ${project_loc}
Arguments: hier die entsprechenden phpDocumentor Variablen setzen (siehe Beschreibung unten)
--directory="${project_loc}\application"
--target="${project_loc}\public"
--ignore="demo.php"
--title="${project_name}"
--defaultpackagename="${project_name}"
--markers="TODO,FIXME"
--template="responsive"
--visibility="public,private"
--force
--validate
--sourcecode


Beschreibung der phpDocumentor Variablen:

 --target (-t)         Path where to store the generated output
 --filename (-f)       Comma-separated list of files to parse. The wildcards ? and * are supported (multiple values allowed)
 --directory (-d)      Comma-separated list of directories to (recursively) parse (multiple values allowed)
 --encoding            encoding to be used to interpret source files with
 --extensions (-e)     Comma-separated list of extensions to parse, defaults to php, php3 and phtml (multiple values allowed)
 --ignore (-i)         Comma-separated list of file(s) and directories that will be ignored. Wildcards * and ? are supported (multiple values allowed)
 --ignore-tags         Comma-separated list of tags that will be ignored, defaults to none. package, subpackage and ignore may not be ignored. (multiple valuesallowed)
 --hidden              set to on to descend into hidden directories (directories starting with '.'), default is on
 --ignore-symlinks     Ignore symlinks to other files or directories, default is on
 --markers (-m)        Comma-separated list of markers/tags to filter (default: ["TODO","FIXME"]) (multiple values allowed)
 --title               Sets the title for this project; default is the phpDocumentor logo
 --force               Forces a full build of the documentation, does not increment existing documentation
 --validate            Validates every processed file using PHP Lint, costs a lot of performance
 --visibility          Specifies the parse visibility that should be displayed in the documentation (comma seperated e.g. "public,protected")
 --defaultpackagename  Name to use for the default package. (default: "Default")
 --sourcecode          Whether to include syntax highlighted source code
 --progressbar (-p)    Whether to show a progress bar; will automatically quiet logging to stdout
 --template            Name of the template to use (optional) (multiple values allowed)
 --parseprivate        Whether to parse DocBlocks marked with @internal tag
 --config (-c)         Location of a custom configuration file


Mögliche Fehler beim Installer

Warning: file_get_contents(): Unable to find the wrapper "https"
Entweder bei der PHP Installation wurde keine php.ini angelegt oder das Wrapper Modul ist nicht geladen weil die php_openssl.dll Extension auskommentiert ist:
=> php.ini: Extension-Dir setzen extension_dir = "ext"
=> php.ini: OpenSSL Extension laden extension=php_openssl.dll


Your requirements could not be resolved to an installable set of packages. Problem 1: the requested PHP extension xsl is missing from your system.
Auch hier ist das entsprechende Modul nicht geladen:
=> php.ini: Extension-Dir setzen extension_dir = "ext"
=> php.ini: XSL Extension laden extension=php_xsl.dll


Your requirements could not be resolved to an installable set of packages. Problem 2: the requested PHP extension intlis missing from your system.
Auch hier ist das entsprechende Modul nicht geladen:
=> php.ini: Extension-Dir setzen extension_dir = "ext"
=> php.ini: XSL Extension laden extension=php_intl.dll


Could not open input file: \phpdoc.php
Hier wird die Programmdatei "phpdoc.php" nicht korrekt gefunden; mögliche Ursachen:
  • fehlerhafte / fehlende Einträge in der Umgebungsvariable
  • falsch definierte Pfade
Abhilfe: komplette Pfade verwenden (sowohl im Installer, in der phpdoc.bat Batch-File oder beim manuellen Aufruf via php!)


Beispiel Installer Ausgabe

C:\phpDocumentor2>php installer.php
phpDocumentor installer for manual installations
> Downloading application from Github
> Extracting application
> Preparing dependencies

  Composer (http://www.getcomposer.org) is not installed, downloading temporary version for installation

> Downloading Composer installer to C:\Users\LOCALU~1\AppData\Local\Temp
> Installing composer to C:\Users\LOCALU~1\AppData\Local\Temp

  All settings correct for using Composer
  Downloading...

  Composer successfully installed to: C:\Users\localuser\AppData\Local\Temp\composer.phar
  Use it: php C:\Users\LOCALU~1\AppData\Local\Temp/composer.phar

> Installing dependencies

  Loading composer repositories with package information
  Installing dependencies from lock file
    - Installing symfony/finder (v2.1.3)
  46 Datei(en) kopiert
  3 Datei(en) kopiert
  12 Datei(en) kopiert
  23 Datei(en) kopiert

    - Installing symfony/process (v2.1.3)
  23 Datei(en) kopiert
  3 Datei(en) kopiert
  10 Datei(en) kopiert

    - Installing symfony/console (v2.1.3)
  82 Datei(en) kopiert
  3 Datei(en) kopiert
  5 Datei(en) kopiert
  5 Datei(en) kopiert
  8 Datei(en) kopiert
  6 Datei(en) kopiert
  2 Datei(en) kopiert
  46 Datei(en) kopiert

    - Installing pimple/pimple (1.0.0)
  9 Datei(en) kopiert
  1 Datei(en) kopiert
  3 Datei(en) kopiert

    - Installing cilex/cilex (dev-master 47831df)
      Cloning 47831dfb44be852c5cf2920d72482dbda59d42da

    - Installing phpdocumentor/fileset (1.0.0-beta2)
  12 Datei(en) kopiert
  3 Datei(en) kopiert
  3 Datei(en) kopiert

    - Installing phpdocumentor/graphviz (1.0.0-beta3)
  11 Datei(en) kopiert
  5 Datei(en) kopiert
  2 Datei(en) kopiert

    - Installing twig/twig (v1.11.1)
  479 Datei(en) kopiert
  1 Datei(en) kopiert
  76 Datei(en) kopiert
  6 Datei(en) kopiert
  153 Datei(en) kopiert
  234 Datei(en) kopiert

    - Installing phpdocumentor/plugin-twig (1.0.0)
  8 Datei(en) kopiert
  4 Datei(en) kopiert

    - Installing dflydev/markdown (v1.0.2)
  12 Datei(en) kopiert
  3 Datei(en) kopiert
  3 Datei(en) kopiert

    - Installing phpdocumentor/reflection-docblock (2.0.0a1)
  48 Datei(en) kopiert
  24 Datei(en) kopiert
  18 Datei(en) kopiert

    - Installing nikic/php-parser (dev-master v0.9.3)
      Cloning v0.9.3

    - Installing phpdocumentor/reflection (0.1.1)
  35 Datei(en) kopiert
  21 Datei(en) kopiert
  8 Datei(en) kopiert

    - Installing phpdocumentor/unified-asset-installer (1.0.1-beta4)
  3 Datei(en) kopiert
  1 Datei(en) kopiert

    - Installing phpdocumentor/template-checkstyle (1.0.1)
  4 Datei(en) kopiert

    - Installing phpdocumentor/template-abstract (1.0.2)
  42 Datei(en) kopiert
  6 Datei(en) kopiert
  4 Datei(en) kopiert
  3 Datei(en) kopiert
  4 Datei(en) kopiert
  1 Datei(en) kopiert
  9 Datei(en) kopiert

    - Installing phpdocumentor/template-new-black (1.0.4)
  57 Datei(en) kopiert
  48 Datei(en) kopiert
  1 Datei(en) kopiert
  2 Datei(en) kopiert

    - Installing phpdocumentor/template-old-ocean (1.0.2)
  56 Datei(en) kopiert
  35 Datei(en) kopiert
  6 Datei(en) kopiert
  1 Datei(en) kopiert

    - Installing phpdocumentor/template-responsive (1.0.7)
  84 Datei(en) kopiert
  7 Datei(en) kopiert
  7 Datei(en) kopiert
  1 Datei(en) kopiert
  28 Datei(en) kopiert
  25 Datei(en) kopiert
  3 Datei(en) kopiert

    - Installing phpdocumentor/template-zend (1.0.1)
  11 Datei(en) kopiert
  2 Datei(en) kopiert
  1 Datei(en) kopiert
  1 Datei(en) kopiert

    - Installing symfony/event-dispatcher (v2.1.3)
  20 Datei(en) kopiert
  1 Datei(en) kopiert
  6 Datei(en) kopiert

    - Installing zendframework/zend-config (2.0.4)

    - Installing zendframework/zend-stdlib (2.0.4)

    - Installing zendframework/zend-filter (2.0.4)

    - Installing zendframework/zend-i18n (2.0.4)

    - Installing zendframework/zend-servicemanager (2.0.4)

  cilex/cilex suggests installing monolog/monolog (>=1.0.0)
  cilex/cilex suggests installing symfony/yaml (>=1.0.0)
  cilex/cilex suggests installing symfony/validator (>=1.0.0)
  symfony/event-dispatcher suggests installing symfony/dependency-injection (2.1.*)
  symfony/event-dispatcher suggests installing symfony/http-kernel (2.1.*)
  zendframework/zend-stdlib suggests installing pecl-weakref (Implementation of weak references for Stdlib\CallbackHandler)
  zendframework/zend-filter suggests installing zendframework/zend-validator (Zend\Validator component)
  zendframework/zend-filter suggests installing zendframework/zend-crypt (Zend\Crypt component)
  zendframework/zend-servicemanager suggests installing zendframework/zend-di (Zend\Di component)
  Generating autoload files

> Checking external dependencies
> Dependency errors have been detected:

  Loading composer repositories with package information
  Installing dependencies from lock file
    - Installing symfony/finder (v2.1.3)
  46 Datei(en) kopiert
  3 Datei(en) kopiert
  12 Datei(en) kopiert
  23 Datei(en) kopiert

    - Installing symfony/process (v2.1.3)
  23 Datei(en) kopiert
  3 Datei(en) kopiert
  10 Datei(en) kopiert

    - Installing symfony/console (v2.1.3)
  82 Datei(en) kopiert
  3 Datei(en) kopiert
  5 Datei(en) kopiert
  5 Datei(en) kopiert
  8 Datei(en) kopiert
  6 Datei(en) kopiert
  2 Datei(en) kopiert
  46 Datei(en) kopiert

    - Installing pimple/pimple (1.0.0)
  9 Datei(en) kopiert
  1 Datei(en) kopiert
  3 Datei(en) kopiert

    - Installing cilex/cilex (dev-master 47831df)
      Cloning 47831dfb44be852c5cf2920d72482dbda59d42da

    - Installing phpdocumentor/fileset (1.0.0-beta2)
  12 Datei(en) kopiert
  3 Datei(en) kopiert
  3 Datei(en) kopiert

    - Installing phpdocumentor/graphviz (1.0.0-beta3)
  11 Datei(en) kopiert
  5 Datei(en) kopiert
  2 Datei(en) kopiert

    - Installing twig/twig (v1.11.1)
  479 Datei(en) kopiert
  1 Datei(en) kopiert
  76 Datei(en) kopiert
  6 Datei(en) kopiert
  153 Datei(en) kopiert
  234 Datei(en) kopiert

    - Installing phpdocumentor/plugin-twig (1.0.0)
  8 Datei(en) kopiert
  4 Datei(en) kopiert

    - Installing dflydev/markdown (v1.0.2)
  12 Datei(en) kopiert
  3 Datei(en) kopiert
  3 Datei(en) kopiert

    - Installing phpdocumentor/reflection-docblock (2.0.0a1)
  48 Datei(en) kopiert
  24 Datei(en) kopiert
  18 Datei(en) kopiert

    - Installing nikic/php-parser (dev-master v0.9.3)
      Cloning v0.9.3

    - Installing phpdocumentor/reflection (0.1.1)
  35 Datei(en) kopiert
  21 Datei(en) kopiert
  8 Datei(en) kopiert

    - Installing phpdocumentor/unified-asset-installer (1.0.1-beta4)
  3 Datei(en) kopiert
  1 Datei(en) kopiert

    - Installing phpdocumentor/template-checkstyle (1.0.1)
  4 Datei(en) kopiert

    - Installing phpdocumentor/template-abstract (1.0.2)
  42 Datei(en) kopiert
  6 Datei(en) kopiert
  4 Datei(en) kopiert
  3 Datei(en) kopiert
  4 Datei(en) kopiert
  1 Datei(en) kopiert
  9 Datei(en) kopiert

    - Installing phpdocumentor/template-new-black (1.0.4)
  57 Datei(en) kopiert
  48 Datei(en) kopiert
  1 Datei(en) kopiert
  2 Datei(en) kopiert

    - Installing phpdocumentor/template-old-ocean (1.0.2)
  56 Datei(en) kopiert
  35 Datei(en) kopiert
  6 Datei(en) kopiert
  1 Datei(en) kopiert

    - Installing phpdocumentor/template-responsive (1.0.7)
  84 Datei(en) kopiert
  7 Datei(en) kopiert
  7 Datei(en) kopiert
  1 Datei(en) kopiert
  28 Datei(en) kopiert
  25 Datei(en) kopiert
  3 Datei(en) kopiert

    - Installing phpdocumentor/template-zend (1.0.1)
  11 Datei(en) kopiert
  2 Datei(en) kopiert
  1 Datei(en) kopiert
  1 Datei(en) kopiert

    - Installing symfony/event-dispatcher (v2.1.3)
  20 Datei(en) kopiert
  1 Datei(en) kopiert
  6 Datei(en) kopiert

    - Installing zendframework/zend-config (2.0.4)

    - Installing zendframework/zend-stdlib (2.0.4)

    - Installing zendframework/zend-filter (2.0.4)

    - Installing zendframework/zend-i18n (2.0.4)

    - Installing zendframework/zend-servicemanager (2.0.4)

  cilex/cilex suggests installing monolog/monolog (>=1.0.0)
  cilex/cilex suggests installing symfony/yaml (>=1.0.0)
  cilex/cilex suggests installing symfony/validator (>=1.0.0)
  symfony/event-dispatcher suggests installing symfony/dependency-injection (2.1.*)
  symfony/event-dispatcher suggests installing symfony/http-kernel (2.1.*)
  zendframework/zend-stdlib suggests installing pecl-weakref (Implementation of weak references for Stdlib\CallbackHandler)
  zendframework/zend-filter suggests installing zendframework/zend-validator (Zend\Validator component)
  zendframework/zend-filter suggests installing zendframework/zend-crypt (Zend\Crypt component)
  zendframework/zend-servicemanager suggests installing zendframework/zend-di (Zend\Di component)
  Generating autoload files

> Thank you for installing phpDocumentor.
> You can run it using the command `php C:\phpDocumentor2/bin/phpdoc.php`