I want to test the phpDocumentor-alpha, and there's a problem that some people seems not to have:
# sudo pear uninstall phpdoc/phpDocumentor-alpha
uninstall ok: channel://pear.phpdoc.org/phpDocumentor-2.0.0a6
olivier@olivier-ubuntu ~/Documents/pizzas/dev # phpdoc --help
bash: /usr/bin/phpdoc: Aucun fichier ou dossier de ce type
#
# sudo pear install --alldeps -f phpdoc/phpDocumentor-alpha
downloading phpDocumentor-2.0.0a6.tgz ...
Starting to download phpDocumentor-2.0.0a6.tgz (1,107,853 bytes)
..................................done: 1,107,853 bytes
install ok: channel://pear.phpdoc.org/phpDocumentor-2.0.0a6
# phpdoc --help
PHP Fatal error: Cannot redeclare class phpDocumentor\Plugin\Core\Listener in /usr/share/php/phpDocumentor/src/phpDocumentor/Plugin/Core/Listener.php on line 194
Fatal error: Cannot redeclare class phpDocumentor\Plugin\Core\Listener in /usr/share/php/phpDocumentor/src/phpDocumentor/Plugin/Core/Listener.php on line 194
#
Ok, i can avoid that problem with:
if ( !class_exists('MTIHelperEstadosLocal') ) {...}
But this is just an ugly workaround. I'd like to know if there's a way to know where the declaration was firt (= which include or whatever).
Any idea?
Here's the simple solution:
print_r(get_declared_classes());
Depending on your OS, and how you have constructed the path to your document root, there may be an issue with capitals versus lower case letters in the path name. This often trips me up on large CMS projects such as drupal on Mac OSX
// Insert this debug code before require statement.
if (class_exists('classInQuestion')) {
$reflector = new ReflectionClass('classInQuestion');
echo $reflector->getFileName() . ' ' . $reflector->getStartLine() . "\n";
echo $newClassFile;
exit();
}
// Normal pre-existing require statement
require_once $newClassFile
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With