Eclipse phpDocumentor Profile
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`