theseer / phpdox

Documentation generator for PHP Code using standard technology (SRC, DOCBLOCK, XML and XSLT)
http://phpdox.de
Other
599 stars 121 forks source link

Question: importing other package configs #307

Closed ghost closed 7 years ago

ghost commented 7 years ago

Sorry if this isn't the place to ask questions, it's the only place I could think of.

Is it possible to import/require config files from other packages?

An example is that I wish to use composer to have a 'meta' package for a project which pulls in all of the requirements, and generate a full set of API documentation for specific required packages (namely those from within the project namespaces).

I would want to use any config from within any sub-package folder of vendor/xxx folder for example.

If it's not possible, do you know of any way I could generate API docs for multiple packages?

Thanks in advance.

theseer commented 7 years ago

I'm not sure I fully understand your issue.

While there is (currently) no way within phpDox to include config files, I might be willing to add such a feature if I understand the usecase.

You say you want a meta package with dependencies. You can easily have the meta package with a phpdox.xml config file that contains wildcards like <include mask="*/vendor/yourcompany/*/src/*" /> to get whatever is within the vendor directory included. No need for a "fixed" set of directories.

What's the exact usecase? Can you maybe create an example config of how you'd imagine it to work if the include feature would exist?

ghost commented 7 years ago

Your include example is exactly how I was thinking about it. I want to be able to make one complete set of docs for our set of packages, without having to coalesce them from many different folders, so a meta package would just require them all, and then run phpdox on the lot.

theseer commented 7 years ago

So all you need would be a config like this:

<?xml version="1.0" encoding="utf-8"?>
<phpdox xmlns="http://xml.phpdox.net/config" silent="false">
  <project name="example" source="${basedir}/src" workdir="${basedir}/build/phpdox/xml">
    <collector backend="parser">
      <include mask="*/vendor/yourcompany/*/src/**.php"/>
      <inheritance resolve="true"/>
    </collector>

[....]

  </project>
</phpdox>

I didn't try that though ;)

theseer commented 7 years ago

Considering this closed.

ghost commented 7 years ago

Oh, so you mean this can already be done??

theseer commented 7 years ago

Yes, that's already implemented.

The mask must match on a call to fnmatch.