Skip to content

New Bugs #36

Open
Open
@beikov

Description

@beikov

First of all, the generation does not work properly for me because of a problem in inheritDocTag.php on line 73...

PHP Fatal error: Call to a member function text() on a non-object in ...\phpdoctor\classes\inheritDocTag.php on line 73
PHP Stack trace:
PHP 1. {main}() D:\Downloads\phpdoctor\phpdoc.php:0
PHP 2. PHPDoctor->execute() D:\Downloads\phpdoctor\phpdoc.php:55
PHP 3. Standard->standard() D:\Downloads\phpdoctor\classes\phpDoctor.php:1139
PHP 4. ClassWriter->classWriter() D:\Downloads\phpdoctor\doclets\standard\standard.php:166
PHP 5. HTMLWriter->_processInlineTags() D:\Downloads\phpdoctor\doclets\standard\classWriter.php:190
PHP 6. InheritDocTag->text() D:\Downloads\phpdoctor\doclets\standard\htmlWriter.php:302

After this, I get a lot of HTML output and then the error again.

Fatal error: Call to a member function text() on a non-object in ...\phpdoctor\classes\inheritDocTag.php on line 73

Call Stack:
0.0006 335016 1. {main}() D:\Downloads\phpdoctor\phpdoc.php:0
59.7188 58986512 2. PHPDoctor->execute() D:\Downloads\phpdoctor\phpdoc.php:55
59.7291 59869920 3. Standard->standard() D:\Downloads\phpdoctor\classes\phpDoctor.php:1139
71.0484 59962832 4. ClassWriter->classWriter() D:\Downloads\phpdoctor\doclets\standard\standard.php:166
76.7687 60155936 5. HTMLWriter->_processInlineTags() D:\Downloads\phpdoctor\doclets\standard\classWriter.php:190
76.7692 60157608 6. InheritDocTag->text() D:\Downloads\phpdoctor\doclets\standard\htmlWriter.php:302

Not every class or interface is documented, some files are missing.
There are also some other problems i just noticed. If a class/interface is used somewhere, with the fact that it is not imported with the use-keyword because it is in the same package, and somewhere else a class/interface with the same name exists, then it can cause problems. This means in my special case, that there are two interfaces, blabla\cache\Cache and blublu\cache\Cache which are both used like that:

namespace blabla\cache;
class A implements Cache{...}

namespace blublu\cache;
class B implements Cache{...}

Now is the problem that the documentation site of class B is using blabla\cache\Cache and not the right one.

The next thing is, that when I allow different return/parameter types like a simple string and an OOP String like that:

@param \oop\String|string $value The string

Then it does not create a link to the class.

If a classes implement more that one interface, then only one is shown in the doc. Also the methods which these interfaces offer are not included.
If the inheritance is like that:

interface A{}

abstract class B implements A{}

class C extends B{}

Then in C is no documentatino about the interface A!

The field summary is formatted wrong, the left column gets about 50% of the width and this looks strange. I don't know if a link is created to the class doc for throws annotations but in the old version it is not.

A nice feature would be if classes which implement interfaces are mentioned in the doc of the interfaces, this would be more java like with links:

Direct Known Subclasses/Implementations ...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions