This documentation describes unreleased changes on the main branch.

composer.json

The framework reads these keys of the composer.json of your theme or plugin. Nothing else is configured there; everything else is code.

KeyRequiredMeaning
typeyeswordpress-theme for themes and child themes, wordpress-plugin for plugins. See Boot.
extra.wp-app-framework.namespaceyes, for a project with a buildThe namespace of the content and data of the project: lowercase letters, digits and -, starting with a letter; not core, wp or wp-app-framework. See Concepts.
extra.wp-app-framework.template-pluginsnoSlugs of the plugins whose public Twig functions and filters the templates call by name. See Plugins.
extra.straussyes, for a releaseThe settings of Strauss, which prefixes the dependencies in the release. The release command checks target_directory (vendor-prefixed), namespace_prefix, include_root_autoload, update_call_sites and delete_vendor_packages. See Release.

A minimal theme:

{
    "name": "vendor/my-theme",
    "type": "wordpress-theme",
    "require": { "saij/wp-app-framework": "^0.15" },
    "extra": {
        "wp-app-framework": { "namespace": "my-theme" }
    }
}

Getting started shows the complete file with the Strauss settings and scripts.