Glossary

Concise definitions for everything in the Craft ecosystem.

C

ABC
  1. Cache →

    General-purpose temporary data storage used to reduce or avoid expensive, repetitive computational tasks. Craft supports file, database, redis, and Memcached cache drivers.

    Craft
  2. Canonical →

    A designation given to elements that are not drafts or revisions of another element. Provisional (or “unsaved”) drafts can be canonical elements prior to being saved for the first time.

    Craft
  3. Cart →

    Craft Commerce’s order element is used to represent the content of a customer’s cart, prior to (and during) checkout.

    Commerce
  4. Catalog Pricing →

    Every price for a variant in Craft Commerce is determined via the pricing catalog engine. This system is flexible enough to handle all kinds of dynamic pricing conditions, from timed promotions to wholesaling.

    The pricing catalog determines the base prices shown to customers; discounts provide an additional layer of control for purchasables in a cart.

    Commerce
  5. Category →

    Element type appropriate for hierarchical taxonomies. Most features of categories can be replicated with entries.

  6. Category Group →

    Organizational unit for category elements, defining their name, handle, and field layout.

  7. Channel →

    One of the three section types, best suited for lists or catalogs of content that are always ordered by one or more properties, and flat, tag-like taxonomies.

    Craft
  8. CKEditor →

    Our first-party rich text editor that supports nested entries for fluid composition.

  9. CLI →

    A text-based interface to Craft, accessed via your computer’s terminal program. It provides a powerful suite of tools for developers, like user moderation, search indexing, migrations, and an updater.

    Craft
  10. CMS →

    Craft is a content management system, or collection of tools designed for publishing multimedia across a number of channels.

    Craft
  11. Collection →

    Craft returns Laravel Collections in place of arrays in some circumstances. They can be used just like arrays in your templates, but have a number of methods attached to streamline common tasks.

    Craft
  12. Component →

    Sometimes used interchangeably with (or as a superset of) models, components in Craft represent instantiable or configurable objects. Services, entry types, widgets, and filesystems are all examples of components you’ll encounter in the control panel that also provide points of extension.

    Components are also the foundation of Yii’s events system.

  13. Composer →

    The PHP package manager used by every Craft project.

  14. Condition →

    An individual rule that is part of a condition builder. The available conditions for a given builder depend on the type of element it will be used to match against.

    Craft
  15. Condition Builder →

    A graphical interface that allows Control Panel users to filter or match sets of elements by combining conditions. Craft uses these on element indices (to search and define custom sources), as well as field layouts (to determine tab and field visibility).

    Craft
  16. Config →

    The collection of code, state, and settings that together determine how Craft behaves. Config includes settings determined by general.php, app.php, project config, environment overrides, and CLI flags.

    Craft
  17. Console Command →

    A single action available via the CLI. To view the available commands, arguments, and options, run php craft help in your terminal.

    Craft
  18. Content →

    The text, options, and media users have added as elements, via the control panel or front end.

    Craft
  19. Controller →

    A special type of PHP class that processes an HTTP or console request and returns a response.

  20. Control Panel →

    Craft’s built-in administration interface that requires an active user account to access. Most content authoring and schema design happens here.

    Craft
  21. Craft Cloud →

    The first-party hosting platform for Craft CMS. Learn more about Craft Cloud.

    Cloud
  22. Craft CMS →

    Our self-hosted CMS product, which gave rise to Craft Console, Craft Cloud, the Plugin Store, and more!

  23. Craft Commerce →

    Our powerful, first-party ecommerce plugin. Learn more about Craft Commerce.

    Commerce
  24. Craft Console →

    The centralized platform for license management, the plugin store, and Craft Cloud projects.

  25. Credentialed →

    Craft has a special distinction for users who are able to log in or may be able to log in under their own power. Any user in the Active or Pending status is also considered credentialed.

    Craft
  26. CSRF →

    Cross-site request forgery tokens help keep Craft secure by mandating that every POST request (like a user logging in, or someone updating an entry) contains a secure value matching that user’s session.

    Craft
  27. Customer →

    In Craft Commerce, a collection of enhancements to Craft’s built-in user element that makes it easier to work with orders, addresses, payment methods, and so on.

    Commerce

D

ABC
  1. Dashboard →

    Control Panel users each have their own customizable landing page. You can add and arrange any number of built-in or plugin-provided widgets to suit your use.

    Craft
  2. Database →

    Craft uses a MySQL or Postgres database to store and retrieve your content. Databases underpin many of Craft’s powerful and highly-optimized query and relational features.

  3. DDEV →

    Our recommended local development environment, based on Docker.

  4. Deployment →

    The process of applying changes to code and configuration to a remote environment for testing or public release. Deployments also typically involve applying migrations and project config.

  5. Deprecation Warning →

    A message logged at runtime alerting developers that they are using a feature that is scheduled to be removed from Craft (or a plugin) in a future version. You can view deprecation warnings in the control panel by visiting the Deprecation Warnings utility.

  6. Derivative →

    An element that was split (or “derived”) from a canonical element. Drafts and revisions are examples of derivative elements.

  7. Dev Mode →

    A special setting for development environments that enables verbose logging, profiling, and error reporting. It can be enabled via the devMode config setting, or by setting CRAFT_DEV_MODE=true in your .env file.

  8. Directory →

    A directory contains files and other directories. Traditional filesystems often use this interchangeably with folder. Every Craft project contains a number of nested directories, each with a specific purpose.

  9. Discount →

    A built-in adjuster that applies special pricing to items in a customer’s cart.

    Commerce
  10. Docker →

    A popular containerization engine that simplifies development and deployment of Craft projects by providing stable, replicable services and configuration. Our recommended development environment, DDEV, is based on Docker, as are many modern “platform-as-a-service” products.

    Craft
  11. Donation →

    One of the default purchasable implementations provided by Craft Commerce. Customers can define their own “amount” when adding a donation to their cart.

    Commerce
  12. Draft →

    Edits to a canonical element that have been automatically saved (or explicitly saved with a temporary name). Drafts can be applied to the element they were derived from.

E

ABC
  1. Eager Loading →

    An element query optimization feature that loads sets of nested or related elements together. It is commonly used to avoid N+1 problems.

  2. Edition →

    Craft (and many plugins) use editions to provide different functionality at different price-points. Licenses are tied to specific editions; new Craft projects use the free Solo edition, and can be upgraded to Team or Pro at any time. Some plugins may require specific Craft editions.

  3. Element →

    The core unit of content in a Craft application, usually encountered as one of the built-in element types.

    Craft
  4. Element Index →

    A table or grid of elements in the control panel (often separated into sources) designed for finding elements to edit, or attaching elements to a relational field. Matrix fields also provide a streamlined “element index” View mode for managing nested entries.

    Craft
  5. Element Query →

    An extension of the base database query class, tailored for loading a specific type of element. Element queries expose methods for narrowing results by custom field values, relations, and search keywords.

  6. Element Type →

    An implementation of the generic element interface, distinguished by special methods, properties, or management tools. Craft includes seven primary, built-in element types (addresses, assets, categories, entries, global sets, tags, and users), which many plugins supplement.

  7. Enabled →

    The primary status control for element. Unless explicitly configured otherwise, element queries only return enabled elements, and an element must be enabled for Craft to respond at its URI.

  8. Entrification →

    As the capabilities of entries grow, we have gradually recommended their use over global sets, categories, and tags. Craft 5.0 was the first release to remove an element type, by consolidating the “Matrix block” element type into nested elements.

  9. Entry →

    One of Craft’s built-in element types, and the most flexible content container. Entries can belong to a section or owned by another entry via a Matrix or CKEditor field.

    Craft
  10. Entry Type →

    Globally-configured content types that can be selected from sections, Matrix fields, and CKEditor fields. Entries’ field layouts are defined via enrtry types.

    Craft
  11. Environment Variable →

    Values read from a server’s environment or a .env file at the root of your project. Environment variables can be used to dynamically resolve some config values, or directly override specific settings like database connection details.

    Craft
  12. Error →

    When there is a problem serving a request, Craft reports the issue as an exception in the logs (with the error level), as well as a stack trace (when dev mode is on), a succinct message (for user-facing exceptions), or a generic “server error” when no additional information is available or suitable.

    Craft
  13. Event →

    Emitted by many system components and models as certain actions take place, providing plugins an opportunity to extend, customize, or prevent certain behavior.

    Craft
  14. Exception →

    An error raised by the system at runtime. Exceptions always include a message and are logged by Craft, but only some are surfaced to users. When Dev Mode is on, Craft displays a full exception view and stack trace.

    Craft

F

ABC
  1. Field →

    An instance of a field type attached to a field layout. Sometimes referred to as custom fields, they are the foundation of your content schema.

    Craft
  2. Field Layout →

    A group of tabs, field layout elements, and conditions that govern the authoring experience for a particular type of element. Field layouts are configured on entry types, category groups, tag groups, global sets, and other system components that implement craft\base\FieldLayoutProviderInterface.

    Craft
  3. Field Layout Element →

    Custom fields, native properties, and other features are added to a field layouts and displayed based on conditions.

    Craft
  4. Field Type →

    When defining custom fields for a project, you choose from the registered field types, which provide distinct user interfaces and storage mechanisms. Examples of built-in field types are: Plain Text, Entries, Dropdown, and Matrix. The field type determines what kind of value it stores, and how you use that value in templates.

    Craft
  5. Filesystem →

    Adapter for asset storage on various media like a local disk (a traditional computer “filesystem”) or cloud bucket (a proprietary API). Each volume is tied to a filesystem, but any underlying differences are standardized by Craft into a single file management interface.

    Craft
  6. Filter →

    Twig language feature that operates on and returns a value, accepting optional arguments to customize behavior.

    Filter is also used in conjunction with Yii’s request middleware, action filters.

    Craft
  7. Flash →

    A message held in the session for display on a subsequent request. Flashes are typically keyed as notice or error, and (in addition to the HTTP response code) contain information about the result of a POST request. You may encounter flashes when working with Craft’s actions via a front-end forms.

    Craft
  8. Form →

    HTML element that can submit data in an HTTP GET or POST request. Forms are used to submit data from your front end to Craft’s controller actions.

  9. Front End →

    Often used to describe the public-facing portion of a website, viewed in a browser, or to differentiate from privileged back end resources, like the control panel.

  10. Function →

    Twig language feature that accepts arguments and (usually) returns a value.

    Craft

L

ABC
  1. Layout →

    Informally, a layout is a template extended by a child. It might contain high-level HTML tags like the <head> and define blocks that the child can inject content into.

    Craft doesn’t make any assumptions about how your templates are structured, so you won’t see any references to layouts in the control panel; you can also have multiple layouts in a single project (and choose between them in each template), or establish a chain of inheritance (say, to use a consistent header and footer but switch between general structures for the main content of pages).

    Craft
  2. Letterbox Transform →

    One of Craft’s built-in image transform options. Images are resized to fit within the defined width and height, with the remaining space becoming a “mat” of the chosen color.

    Craft
  3. License →

    Terms that govern your use of Craft (or a plugin). Every Craft install is “licensed,” but use of the Team and Pro editions require payment.

  4. Lightswitch →

    One of Craft’s built-in field types, which uses a “switch” or toggle UI and stores its value as a boolean.

    Craft
  5. Line Item →

    Craft Commerce’s representation of a purchasable in a customer’s cart (or order), including quantity, adjusters, custom options, notes, and more.

    Commerce
  6. Live Preview →

    A feature available to most element types that lets authors preview changes in a simplified side-by-side editor. Developers can configure each type of content with multiple preview targets.

    Craft
  7. Localization →

    Another word used to describe the process of internationalization or translation.

    Craft
  8. Logs →

    Some information, warnings, and errors emitted at runtime are sent to one or more log targets for later review. At a minimum, this is typically a record of a request having been processed, along with the path, HTTP status code, and memory usage statistics. When Dev Mode is enabled, logs contain additional context and are extremely verbose.

    Craft

P

ABC
  1. Partner →

    Individual developers and agencies in our Partner program enjoy visibility in our official directory, and can be vetted and matched for specific capabilities.

  2. Path →

    This may refer to the location of a file on disk, a portion of a URI or URL, or the $PATH variable on Unix systems.

    Craft’s directory structure is determined by a handful of path constants, and it builds a variety of filesystem paths and URLs using object templates.

  3. Pattern →

    Websites and applications often need to test and manipulate text while routing or validating and sanitizing input. Pattern-matching is typically handled using regular expressions.

    Pattern may also refer to a component (or collections of components) within a design systems.

  4. Permission →

    Capability granted to a user, directly or via membership in a user group.

    Craft
  5. Plugin →

    An extension to Craft CMS published to the Plugin Store or included in a project, privately.

    Craft
  6. Plugin Store →

    The first-party publishing, discovery, and licensing platform for Craft CMS extensions.

    Craft Console
  7. Postgres →

    One of Craft’s supported database engines.

  8. Preview Target →

    Developers may define any number of locations that an element can be previewed, alongside its main URI format.

    Craft
  9. Product →

    An element type provided by Craft Commerce that contains one or more variants, custom field content, and organizational information.

    Commerce
  10. Product Type →

    Customizable definitions for broad “types” of products that determine the number of supported variants, localization settings, and define field layouts for products and variants.

  11. Project →

    We often refer to any individual Craft installation as a project, instead of a site (of which a project may have many). This holds true for Craft Cloud, as well—each paid plan, trial, and sandbox is a project, within Craft Console.

    Projects are often backed by a git repository and tied to a license.

    Craft Cloud Console
  12. Project Config →

    Craft’s system for tracking changes to a project’s content schema and settings. Project Config is updated any time you change settings in the control panel, and should be applied to other environments when you integrate code or deploy.

    Craft
  13. Propagation →

    Elements (and their field values) have a variety of settings that determine how content is created and synchronized across sites and site groups.

    Craft
  14. Provisional Draft →

    Changes to an element that have not been explicitly saved are stored in a special draft visible only to you. Those edits can be discarded, applied to the canonical element, or saved as a named draft.

    Craft
  15. Purchasable →

    The base element type provided by Craft Commerce underpinning all items that can be added to a cart. variants and donations are the two built-in purchasables, but plugins can provide others (like a ticket, membership, or license).

    Commerce

R

ABC
  1. Record →

    Models that are saved to the database often use an intermediate record to marshal fields or columns into a single table. Saving an element (or other complex objects like sections and sites) may involve multiple models, tables, and records.

  2. Redis →

    Popular key-value database that Craft can use for caches, user sessions, and mutex locks.

    Craft
  3. Reference Tag →

    Simple syntax for loading and interpolating values from other elements into another string. A reference tag always includes the element type and an identifier, and may specify a property or getter method. If no property is requested, Craft replaces the tag with the element’s URL. To parse references in a piece of text, pass it to the parseRefs Twig filter.

    Craft
  4. Relation →

    A connection between two elements defined in a custom field. Related elements are returned by their field handles, and can be used to filter an element query via the .relatedTo() method.

    Craft
  5. Request →

    Information about incoming traffic is encapsulated in a request. Craft inspects the request, figures out how to route it, and assembles a response that is sent back to the client.

    Not every HTTP request that arrives at your server is necessarily handled by Craft, though! Typically, files in your web root are automatically accessible without Craft—and Craft can generate URLs to resources that it may not be involved with serving (like an asset).

    Internally, Craft also handles CLI actions as “requests.”

    Craft
  6. Response →

    The document and headers returned by an HTTP server. Craft determines most aspects of the response based on information in the request, including any active user session.

    Craft
  7. Responsive Design →

    An interactive design philosophy or process that involves deep consideration of many devices and modes of access. Combined with accessibility, it provides a framework for delivering your experience to the widest possible audience.

  8. Revision →

    Each time an element is saved, Craft duplicates is previous state into a revision, which can be viewed or restored later. Revisions are a special kind of derivative element, like a draft.

    Craft
  9. Route →

    A path or rule that determines how a request is handled. Routes may be defined statically (by Craft itself or via configuration) or dynamically (based on your content architecture). Any request that can’t be matched to a route is considered an error.

S

ABC
  1. Sale →

    Legacy promotion feature of Craft Commerce, replaced by catalog pricing.

    Commerce
  2. Search →

    Craft automatically indexes your elements and eligible fields so that they can be searched in the control panel and front end. Search terms can be taken from the query string and passed to an element query to provide ranked, on-site results.

    Craft
  3. Section →

    Most entries in Craft exist within a section. Sections can be set up as channels, structures, or singles. Each section determines which entry types can exist within it, what sites entries can be created in, and what those entries’ URLs look like.

    Craft
  4. Service →

    Craft’s core API is composed of singleton classes, mounted to the main application instance. Yii refers to these as components, a special type of object that accepts deep configuration and supports dependency injection.

    Your first exposure to services will likely be in Twig, using features exposed via the craft.app global variable.

    Craft
  5. Session →

    Many websites and applications require that context is preserved across multiple requests and responses. A session is opened to keep users logged in, validate form submissions, or track personalizations.

  6. Settings →

    In the control panel, admin users have a great deal of control over Craft’s content model and behavior via the Settings screen. In live environments (or anywhere the allowAdminChanges config option is off), this area is read-only.

    Craft
  7. Single →

    One of three section types. Singles are limited to one entry, have a predefined URI, and are never created or deleted by authors—just edited. Most developers use singles for evergreen pages, or as containers for arbitrary content that they may need to access in multiple places throughout a site.

    Craft
  8. Site →

    Every Craft project has at least one site. Sites provide a way to localize content for multiple audiences, manage different sitemaps across distinct properties, or some combination of the two. Craft can serve sites at different paths, domains, and subdomains.

    Craft
  9. Site Group →

    Sites can be organized into groups to manage complex localization and propagation rules. Groups do not impose restrictions on their sites’ base URLs or languages.

    Craft
  10. Slug →

    A human-readable identifier for a piece of content. Slugs are not inherently unique across all elements (or even within a section), but if they’re used as part of a URI format, Craft validates the entire URI’s uniqueness.

    Content authors are typically able to update slugs, so they are not a stable identifier for use in hard-coded element queries.

    Craft
  11. Soft Delete →

    Many records in Craft (including elements and some project config features) are not immediately deleted. Instead, they are marked with a dateDeleted and can be restored within the softDeleteDuration (at which point they may be permanently deleted during garbage collection).

    Craft
  12. Source →

    In an element index, sources appear in the sidebar. Each source contains some default criteria or conditions that determine what elements can be displayed therein, as well as information about which view modes and columns to use.

    Craft
  13. Status →

    Every element has a status, typically synthesized from its enabled and enabledForSite properties. Entries also use their postDate and expiryDate properties; users eschew enabled for specific moderation flags; Craft Commerce order elements explicitly store custom statuses.

    Statuses are represented in the control panel by colored pips, labels, or shapes (when the corresponding accessibility {entry:glossary/user-preference:linkLower} is enabled).

  14. Structure →

    One of three section types. Structures store entries in a hierarchical, ordered “tree.” Entries can be relocated within a structure by dragging-and-dropping on an element index, or by selecting a new Parent on an individual entry’s edit screen.

    Craft

T

ABC
  1. Tag →

    One of Craft’s built-in element types, best suited for loose folksonomies. Tags are non-hierarchical, and have no implicit order.

    A tag is also a Twig language feature, primarily used for logic or control flow.

    Craft
  2. Tag Group →

    Tags are created via tag fields, within a predetermined group. Tag groups have a name, handle, and define a field layout.

    Craft
  3. Template →

    With very few exceptions, the front end HTML output by a Craft site is the product of Twig templates created by the developer. Templates can have static text, markup, interpolated content, scripts, styles, loops, and other logic of varying complexity. Templates can also include or extend other templates.

    Craft
  4. Terminal →

    The program through which you issue commands on your computer. Terminals can be dedicated applications or integrated into a code editor for convenience. You use a terminal to interact with Craft via its CLI.

  5. Token →

    This may refer to:

    A secure query string parameter in a URL generated by Craft that corresponds to a predetermined action. A placeholder in a route.
    Craft
  6. Transform →

    Craft can create and track different optimized versions of image-like assets. Developers configure named transforms via the control panel, or define them ad-hoc in templates.

    Craft
  7. Translation →

    Content and static strings can be translated via Craft’s powerful internationalization features. A translation might refer to content that is managed discretely per-language (via sites and site groups), or a piece of UI text passed through Craft::t() or the |t Twig filter.

    Craft
  8. Trash →

    Soft-deleted elements are accessible via this special status in the control panel, or with the .trashed() element query method.

  9. Twig →

    Craft uses templates as part of most front-end HTML responses. These templates are written in Twig, a fast and powerful language for merging content and data with markup.

    Craft

U

ABC
  1. Uploader →

    The user who originally uploaded an asset (or, if the file is replaced, the user who last replaced it).

    Craft
  2. URI →

    Acronym for Uniform Resource Identifier. URIs in Craft are often path-like strings generated from URI Format settings in various places (like sections), and stored in such a way that makes routing requests efficient and accurate. An additional benefit of this is that Craft’s database is portable between environments—as opposed to storing the full url (including the domain) for every element or resource.

  3. URL →

    Acronym for uniform resource locator, typically differentiated from a URI by the inclusion of a host and scheme. Craft is capable of generates absolute URLs for most elements, as well as when using the url() and siteUrl() Twig functions. Multi-site installations use the requested URL to determine which site should be served.

  4. User →

    One of Craft’s built-in element types, representing people with some relationship to your site. The control panel is accessible only to credentialed users, via flexible authentication and permissions schemes.

    Craft
  5. User Group →

    A role that collects permissions or otherwise organizes your site’s users.

    Craft
  6. User Preference →

    Each control panel user can customize their experience with a handful of localization and accessibility settings.

    Users can also manage their personal address book via their account’s edit screen.

    Craft
  7. Utility →

    Special control panel pages that provide back-office functionality (like clearing caches, running updates, or observing the queue) to users with the necessary permissions.

    Craft

Search