Repository navigation
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 (readingmkdocs.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 indocs/examples/app/, included into
the pages and run by a newtests/Docssuite, so published examples always work. CONTRIBUTING.mdwith 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 realapp/Config/Forms.phpexample 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.phptreatsdocs/examples/appas 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 byApiReferenceTest(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 fromFormSchema::describe()withcomposer docs:reference
and checked bySchemaReferenceTest. - Concepts section explaining values, validation, security and architecture, with every
statement checked byConceptsClaimsTest(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 genuinePUT,PATCHandDELETErequests (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$_POSTis empty. Browser forms, which send
POSTwith a hidden_methodfield, were not affected.