This project is not covered by Drupal’s security advisory policy.
Fabricator is a build tool for Drupal site building components. Fabricator components, "Blueprints", can be provided by individual modules, and then built either programmatically or using the Fabricator UI module.
Blueprints can be a single installable "thing" (e.g. a Content type with fields, or a Ctools exportable), or can also include Components, which are merely includable (but not "buildable") blueprints. For example, a content type Blueprint Recipe may include a base content type Component, as well as several Field Components. These same Components can also be used elsewhere. Ctools exports do not support inclusion of components.
Features
Fabricator currently supports the following:
- Factories for Content Types, Variables and Chaos Tools exports from Blueprints
- File type parsers for PHP & YAML
- Extensible, hook-based Factory and Parser mechanism
- Install Ctools exports without automatic inclusion
Fabricator vs Features
Fabricator and Features have some cross-over, but are designed for different use cases. An example config management workflow could be to use Fabricator to rapidly build content types, and use Features for deployment only.
Use | Fabricator | Features |
---|---|---|
Install new site components | ✔ | ✔ |
Reuse exports | Ctools only | ✔ |
Extendable components | ✔ | ✘ |
Reuse components in multiple exports | ✔ | ✘ |
Export code | ✘ | ✔ |
Support YAML components | ✔ | ✘ |
Support PHP components | ✔ | ✔ |
Revert components to "code" | ✘ | ✔ |
Use for config management | Partial | ✔ |
Uninstall components like a module | ✘ | ✔ |
Prevent component deletion | ✘ | ✔ |
Programmatic installation from your own install hook | ✔ | Partial |
Known issues and caveats
Fabricator works but is currently in development. It is missing some useful features, and has some caveats.
- Components don't check module dependencies. This is planned, but not currently implemented. The workaround is to place components in modules, then specify dependencies in that module's info file.
- Blueprints will prevent duplicate installation of the base type (e.g. a content type), but otherwise have no collision checking (though fields will be reused rather than fail).
- Blueprints cannot be deleted from the Fabricator UI. However, unlike Features or normal ctools exports, Fabricator does not tell Drupal that your components are "in code". They get treated like any other database entry and are deletable.
- YAML blueprints require the Symfony YAML parser to be available, however there is no explicit check that this is present. The easiest way to ensure this is present is to install and setup Composer Manager.
Project information
- Module categories: Content Editing Experience, Developer Tools, Import and Export
- Created by xtfer on , updated
- This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.