ProcessWire 3.0.41 and a look at API Explorer

ProcessWire 3.0.41

This week we have a new master version released: 3.0.41. This version is 42 commits ahead of the previous master version. For full details on what's different, see our master branch commit log.

Last week we told you the new master version was going to be 3.0.40, but since most of the commits over the last week were already stable, we went ahead and included them all in the new master version. Relative to last week's dev version (3.0.40) version 3.0.41 has the following:

  • Added a PR from @teppokoivula that adds support for a useful overrides argument (array) to our $input queryString() method(s).

  • The biggest issue fixed was issue #66 where deleting items from a repeater field could prevent edits in other fields from being saved.

  • Fixed an issue with the PagePathHistory module where a cloned child of a renamed parent page could redirect to the wrong item when accessed an an old URL.

  • Added support for OR-groups in InputfieldSelector module (as used in in the core page Lister and in ListerPro). Select and populate more than one "custom (field=value)" rows, check the "OR" box(es) and they become OR groups.

  • The InputfieldSelector module was also updated to support proper sorting by field labels (rather than just by names), and provide better support for multi-language subfield names.

  • Beyond the above, there were also lots of minor documentation improvements.

The dev branch this week (future 3.0.42) differs from the master branch by 1 commit, which includes a PR from @derixithy that adds support for a cookie domain to our sessions. This is useful for those that need to be able to maintain a session across multiple sub-domains.

Introducing the API Explorer module

Last week I mentioned we'd tell you about ProDocs module this week, which is part of the ProDevTools modules. That's what I'm going to do here, except that I opted to name it API Explorer rather than ProDocs. While ProfilerPro is the flagship of our ProDevTools set of modules, we think you'll find the API Explorer module to be incredibly hepful as well.

Chances are you are already familiar with some of this module via our official API reference documentation, which uses this module to generate the ProcessWire API documentation in real-time.

What's neat about the API Explorer module (and our API reference) is that the documentation it generates is pulled directly from the code, merging information available from our phpdoc tags, ProcessWire documentation tags, and PHP's Reflection library. Meaning, the documentation is always up-to-date with the version of ProcessWire that it's running on top of. This enables us to maintain most of our API documentation from the PHP code itself. We've found this increases the accuracy and usefulness, and portability of the documentation.

While our online API reference is already powered by this module, the API Explorer can do quite a bit more than what the API reference reveals:

  • API Explorer runs as a convenient tool in your ProcessWire admin. Setup > API Explorer.

  • API Explorer shows all Wire-derived classes and all API variables, rather than the pre-selected general-purpose ones we've identified for it to display in our online API reference. Meaning, the scope of it is quite a bit broader than our online version.

  • API Explorer shows you documentation for exactly the version of ProcessWire you are running. Meaning, chances are it's going to be more accurate for you than using the version already at our website.

  • API Explorer also generates documentation for all installed modules (whether core or 3rd party), which the online API reference does not do. Though the scope of documentation it is able to provide depends on how well the module uses phpdoc.

  • API Explorer documents ALL Wire-derived classes, not just the pre-curated ones present in our API reference.

We've installed a copy of API Explorer on the ProcessWire demo site. Please feel free to try it out. You might notice that API Explorer has some other updates not yet present in our online API reference. We'll be updating our API reference to use this new version of API explorer soon, after a few adjustments. We're also working to update the Cheatsheet so that it pulls its data from API Explorer as well.

API Explorer screenshots

Both ProfilerPro and API Explorer should be ready for release by this time next week. These are the first two modules in our ProDevTools set of modules.

An interesting tidbit: while ProfilerPro is the flagship of ProDevTools, the API Explorer has 3 times the amount of code as ProfilerPro, making it one of the largest modules I've built. That's not by choice, it's just that some things take a lot of code to accomplish. The good news is that it was worth it–I'm finding API Explorer incredibly handy here, and think you will too.

Thanks for your interest and hope that you all have a great weekend. We hope you'll take some time to relax and enjoy reading the ProcessWire Weekly as well.

Comments

  • Can

    Can

    • 8 years ago
    • 42

    wow api explorer looks amazing!

  • Ethan

    Ethan

    • 8 years ago
    • 30

    API Explorer really does look incredible.

    I'm dying to know how Ryan is this prolific.

 

Latest news

  • ProcessWire Weekly #549
    In the 549th issue of ProcessWire Weekly we’re going to check out the latest core updates, highlight one older yet still very relevant third party module, and more. Read on!
    Weekly.pw / 17 November 2024
  • Custom Fields Module
    This week we look at a new ProFields module named Custom Fields. This module provides a way to rapidly build out ProcessWire fields that contain any number of subfields/properties within them.
    Blog / 30 August 2024
  • Subscribe to weekly ProcessWire news

“Indeed, if ProcessWire can be considered as a CMS in its own right, it also offers all the advantages of a CMF (Content Management Framework). Unlike other solutions, the programmer is not forced to follow the proposed model and can integrate his/her ways of doing things.” —Guy Verville, Spiria Digital Inc.