Skip to content

Releases: phpDocumentor/phpDocumentor

v3.2.0

28 Dec 11:16
2fbc47c
Compare
Choose a tag to compare

This release has two main focus points. We invested a lot of time to improve the guides feature, which is still under heavy development, and php 8.1 support.

php version drops.

Last release supporting php 7.2 and 7.3

Guides

  • Render external uml diagrams. you can now reference to external puml files to render a diagram in your guides.
  • Improved memory usage
  • Improved ReStructuredText support.

php 8.1

phpDocumentor has now support for php 8.1 elements. Because of some external dependencies we were not able yet to support phpDocumentor running on php 8.1.

  • Enum support
  • read only properties
  • return type never
  • final constants

New Contributors

Full Changelog: v3.1.2...v3.2.0

v3.1.2

31 Aug 20:26
888fd76
Compare
Choose a tag to compare

Fixes shim release

V3.1.1

20 Aug 07:40
d4449d5
Compare
Choose a tag to compare

Fixed

  • Add workaround for phar distribution and plantuml, thanks to Jaapio
  • XML template invalid XML due to missing marker.type, #2986, thanks to Jaapio
  • Class's traits not showing up in docs, #2984, thanks to Jaapio
  • Files with forced global namespace fail with "" is not a valid Fqsen, #2967, thanks to Jaapio
  • XML output missing method tags, #2965, thanks to Jaapio

CI

  • Updated code style checks, thanks to jrfnl

v3.1.0: php8, guides & stability

07 Jul 18:24
7015b11
Compare
Choose a tag to compare

After the release of v3.0.0, which was a huge step forward for phpDocumentor, we started focussing on a new big step. The 3.1 release is not complete as we had in mind, but it will provide you with some new stuff which will improve your documentation.

PHP8 support

This version of phpDocumentor is fully compatible with PHP8. To support all additional features in PHP8 we had to redesign part of our internal reflection library, which is now capable to read and document constructor promoted properties, mixed, static and union type hints.
We have rewritten some internals in phpDocumentor to fix compatibility issues between the supported PHP versions and our dependencies which are not always supporting the range of PHP versions supported by phpDocumentor.

Bug fixes & Improvements

Thanks to all contributors who reported their issues with phpDocumentor v3.0 we could improve. So please keep reporting your bugs and missing features so we can continue this path. Please consult the change log for the full list of fixed issues.

Guides (Unstable)

In v3 we started working on handwritten documentation. In this version we continued that feature, by extending it with Admonitions, diagrams and images. We cleaned up a lot of the parser code to make the guides parsing fit better in our internal workflow with the final result where your api and handwritten docs are fully integrated to provide the best possible documentation for your code consumers.

Guides are still under heavy development, please consider them unstable as the api will change and we will extend the number of features in future versions of phpDocumentor.

Documentation improvements

In this release, several documentation sections are added. We continue to improve our own documentation while we are improving phpDocumentor itself to render our own docs. Our docs are a good show-case of what phpDocumentor is currently capable to do.

Thank you!

Thanks for using phpDocumentor. And please keep reporting your issues.

v3.1.0-beta

03 Jul 14:33
6aa61ff
Compare
Choose a tag to compare
v3.1.0-beta Pre-release
Pre-release
Merge pull request #2943 from phpDocumentor/debug-phar-sign

FIx release flow

3.0.0

27 Oct 20:28
405da43
Compare
Choose a tag to compare

phpDocumentor v3.0.0 is here

After years of development, we are finally able to announce the official release of phpDocumentor version 3. This release has large changes under the hood. We improved the way phpDocumentor detects types in your DocBlocks, allow all kinds of modern type notations, and we speed up the reflection of your code even more. A full parse of a framework with the size of Symfony is completed within a few seconds now.

A brief overview of the largest changes since v2 below.

A brand new default template!

We revised the way we are supporting templates and template customization. phpDocumentor was shipped with a large set of templates. Which was a burden to maintain. It was hard to customize the existing templates which forced our users to copy templates for even the smallest style changes. We have been redesigning our template system, which resulted in a brand new template called: Default.

If you want to change the colours to match your project's own colour scheme, you just need to set a number of CSS variables. If you want to do more complex changes, you can simply overwrite parts of the template. Our new "Default" template is built with components in mind, using small twig template files. These allow you to change just that what you need to change, without having to create a whole template yourself.

Previously, XML templates seemed to be a nice way to write templates but the user experience was not what we expected from it. XSLT was too complex to write and with the improved template, we didn't feel the need for an XML based template anymore. We moved the existing XML template to a new twig based rendered XML output to keep a backward compatibility layer for tools consuming the XML structure.

Full-text Search

The new Default template comes with a brand new full-text search engine. For your convenience, we added support for full-text search that works even when you are offline. This allows you to search for the elements you are looking for, without browsing the documentation for hours.

Support for native type-hints

With the introduction of scalar type-hints, DocBlocks are not required for all function arguments anymore. PhpDocumentor will now read all native type-hints from your code. This allows you to focus on what is important, your code, and write proper descriptions. There will always be situations where you want to give more detailed type-hints for your function arguments, phpDocumentor will prioritize DocBlock type-hints over native types so you have total control.

Support for Generics

With more and more static analysis features being introduced in PHP; DocBlocks are changing. phpDocumentor is now able to understand generics and generic-like array notations; this allows you to use phpDocumentor with every modern codebase and gives you the advantage of clickable types in your documentation.

New configuration structure

To prepare for the future, phpDocumentor comes with a new configuration structure. We kept backward compatible support for the v2 format, so from a user point of view, there is nothing to worry about until you want to start using some of our future features. The XSD provided in this repository will help you to write the new configuration.

Improved description rendering

The new template is using a new description filter to process all inline tags in a description. This allows us to better style the templates. Inline links are now rendered as real links and references to other elements are also displayed as actual links.
The inline @internal tags are now completely hidden when needed, and descriptions are now fully compatible with PSR-5.

Breaking changes

phpDocumentor is a complex application and we do have a number of backward compatibility breaks. Below, we list the most important ones.

Dropped plugin support

phpDocumentor v2 was build using the micro-framework Cilex. With the introduction of Symfony Flex, the support of Cilex was stopped. So we switched to a full-blown Symfony-based application. This means that a lot of phpDocumentor's internals have been changed. Which also led to the drop of plugin support, for now. We are planning to re-introduce extensions in a better way in a future version.

Dropped official Composer support

phpDocumentor's libraries used to reflect your codebase are used in many projects. (i.e. Symfony, PHPUnit, Laravel, and phpstan; to name a few) Besides that, phpDocumentor is a complex application with a lot of dependencies. So it is very likely your project dependencies will conflict in some way with our dependencies. We will keep phpDocumentor available on Packagist but we will not provide any support using this installation method. phpDocumentor is shipped as a PHAR and Docker image, which contains everything you need to run phpDocumentor.

What's next?

It has taken us a few years to get to this point, but this is not the end by far. Our vision with phpDocumentor is to make it the one-stop go-to tool when it comes to all your documentation needs. You can expect to hear more about the following features:

  • Including hand-written documentation using Restructured Text (our own documentation is already using an alpha version of this feature!)
  • Support for multiple versions of your project
  • Rendering in-line UML diagrams using PlantUML
  • Rendering multiple codebases into one set of documentation, for example: when you have Components
  • Directly generating documentation sources from a git repository
  • And much more!

We want to make sure that writing your documentation is as easy as can be.

v3.0.0-rc

09 Feb 10:47
49350fa
Compare
Choose a tag to compare
v3.0.0-rc Pre-release
Pre-release

This first release candidate contains a number of bugfixes reported since the release of the first beta release. Thanks for all the reports we got! No new features are introduced in this release.

Call for feedback

PhpDocumentor is developed by a small team with limited time. Our current code base is not fully covered by automated tests. So we are not able to find all regressions or missing features. We would be very grateful when you provide us feedback on this beta release to improve the quality of phpDocumentor.

Changelog

The full changelog can be found in our changelog file

v3.0.0-beta

31 Jan 13:36
5fa0f96
Compare
Choose a tag to compare
v3.0.0-beta Pre-release
Pre-release

The first beta release in the v3 release cycle. In the last few months, a lot of changes have been made to make the final result more exiting. This beta has a number of fixes regarding windows support.

We extended the build pipeline using GitHub actions to improve the maintainability of the project. And removed a lot of outdated templates.

The default template has been changed to a brand new default, which supports all-new features in phpDocumentor. Have a look at the demo of default and tell us what you think.

Call for feedback

PhpDocumentor is developed by a small team with limited time. Our current code base is not fully covered by automated tests. So we are not able to find all regressions or missing features. We would be very grateful when you provide us feedback on this beta release to improve the quality of phpDocumentor.

Changelog

The full changelog can be found in our changelog file

v2.9.1

27 Jan 18:07
2e4f981
Compare
Choose a tag to compare
Ensure that all 404's are redirect to /latest

Release v3.0.0-alpha.4

11 Aug 18:42
Compare
Choose a tag to compare
Pre-release

A fourth alpha release in v3 line. Containing a large number of bug fixes reported by alpha version users. Thanks a lot for this feedback. We do appreciate the feedback we've got.

Call for feedback

PhpDocumentor is developed by a small team with limited time. Our current code base is not fully covered by automated tests. So we are not able to find all regressions or missing features. We would be very grateful when you provide us feedback on this alpha release to improve the quality of phpDocumentor.

Change log

Added

  • Automated release process
  • Add php 7.3 to travis #2031
  • Make progress bars the default output

Deprecated

  • Nothing

Fixed

  • Fix(Dockerfile): configure: error: Please reinstall the libzip distribution #2099
  • Invalid tags will no longer prevent a whole file from being shown
  • Improved QA pipeline with better checks and more stable tests
  • Add bin folder for phpdoc to PATH in Docker image
  • Make inclusion of sourcecode configurable
  • Default visibility for v3 config should be all, and not just public
  • Fix bug where a variadic argument was not detected as such
  • Enable Variadic checks and output visibility level when method cannot be found
  • Added additional information when a method cannot be found
  • Rewrite logging to clean up output
  • Ensure that the test works on both Mac and Linux
  • Reintroduce the 'none' configuration file option
  • Fix regresion on phpdoc v2 config parsing
  • Fix for property tag
  • Fix author tag
  • Restore orginal pre v3 type system
  • Add missing ext-json
  • Deduplicate types
  • Improves autoloading detection
  • Fix crash with ini_set when opcache is enabled on CLI

Removed

  • Remove Zend-cache dependency
  • Remove Zend-filter dependency
  • Remove plugin support
  • Remove deprecated symfony/lts package
  • Remove JMS Serializer and refactor infra packages
  • Delete Scrybe
  • Remove translation support from phpDocumentor
  • Remove php 7.0 support, v3 needs PHP 7.1 or higher

Security

  • Nothing