Skip to content

v0.5.0

Latest

Choose a tag to compare

@etus-ephraitech etus-ephraitech released this 29 Oct 13:43

Documentation site with tested examples, themes that extend other themes, and genuine PUT,
PATCH and DELETE request bodies. No breaking changes.

Added

  • Documentation site, built from docs/ with Zensical (reading mkdocs.yml) and published
    to GitHub Pages on release tags by a new Docs workflow that builds in strict mode on every
    push and pull request. Code examples are real files in docs/examples/app/, included into
    the pages and run by a new tests/Docs suite, so published examples always work.
  • CONTRIBUTING.md with instructions for running the tests and previewing the documentation.
  • Getting started tutorial: appointment booking with a two-column layout, a business rule
    and editing, built from tested example files run over HTTP against a database.
  • Guides for layout, multiple choices, file uploads, custom field types and customising views,
    each with tested examples (a real app/Config/Forms.php example is tested in separate
    processes so it cannot affect other tests).
  • Themes can extend another theme ('extends' => 'bootstrap5'): templates missing from a
    theme's views folder are taken from the theme it extends, so a custom theme only needs the
    templates it changes. The parent must be a registered theme; loops are guarded against.
  • Guides for option providers, forms written by admins, showing submissions, testing your
    forms, and JavaScript and APIs, with tested example apps (an admin form editor and public
    form pages, a submissions screen, a JSON API) and example tests that use CodeIgniter's
    standard $migrate = true.
  • tests/bootstrap.php treats docs/examples/app as part of the test app, so example
    migrations and views work as they would in a real app.
  • Reference section: Form, Fields, Schemas, Configuration, and Helpers and commands, written
    by hand and checked by ApiReferenceTest (every public method, setting, theme class key,
    helper and command option must be documented, and everything documented must exist), plus
    a Schema keys page generated from FormSchema::describe() with composer docs:reference
    and checked by SchemaReferenceTest.
  • Concepts section explaining values, validation, security and architecture, with every
    statement checked by ConceptsClaimsTest (each test is named after the page section that
    makes the claim); Upgrading and Changelog pages (the changelog page includes this file).

Fixed

  • validate() ignored the data of genuine PUT, PATCH and DELETE requests (from
    JavaScript or API clients), whose URL-encoded body PHP does not put in $_POST. It now
    reads the raw body for those methods when $_POST is empty. Browser forms, which send
    POST with a hidden _method field, were not affected.