PHP compatibility and project lifecycle
Unknown. The sources show a DDEV project type of drupal11 and a Composer package named drupal/cms, but they give no PHP version, PHP 8.4 or 8.5 support, or release information. Verify these in the official documentation.
Official sources checked 2026-10-22. Browser lessons on this site run PHP 8.5.
The only evidence is two official Drupal CMS user guide pages: Set up Drupal CMS, and Install with DDEV. Anything those pages do not state is marked unknown.
What this project is
Drupal CMS is a content management product. It is a web application you install and then administer in a browser. The guide describes it as a packaged starting point for building websites. It is not a PHP runtime, an interpreter, a language extension or an application server. It is software that runs on a PHP-capable web environment.
Drupal core versus Drupal CMS
The sources use both names, and they are not interchangeable.
- Drupal core is the underlying Drupal system. The guide refers to it when it lists update topics such as updating Drupal core and updating modules and themes. The DDEV page also uses a project type named drupal11 for the environment.
- Drupal CMS is the packaged product built on that foundation. It adds a guided installer, site templates, a Dashboard and a curated guide covering content modeling, SEO, accessibility and more.
The DDEV page downloads Drupal CMS with a Composer package named drupal/cms. That package is not described as bare Drupal core. It is also not a framework component library. Framework components are reusable code libraries, while Drupal CMS is an end-user CMS product. Do not treat them as the same kind of thing.
Architecture and execution model
The sources do not describe internal architecture, so details such as the request pipeline and storage layers are unknown here. What they do show:
- It is web-based. The DDEV page says Drupal CMS is a web-based tool, and DDEV supplies what the computer needs to run it.
- The web root is a directory named web, set with the docroot option in the DDEV configuration command.
- Composer manages the download and the project dependencies.
The sources say nothing about how requests are executed. Most PHP CMS products run under the classic model: each web request starts, runs PHP code, produces a response and then discards its in-memory state. Persistent worker systems keep application memory alive across many requests. The supplied sources never mention Swoole, Open Swoole or any persistent-worker mode for Drupal CMS. Swoole and Open Swoole are separate projects, and this guide makes no claim about either. Treat persistent-worker support as unknown and unsupported by the evidence here.
The reason this matters is state leakage. In a persistent worker, static properties, singletons, caches, user identity, open connections and request globals can survive from one request to the next. That can show one visitor's data to another. Safe worker designs reset or isolate that state after every request. Classic request lifetimes give you this cleanup for free. Because Drupal CMS has no documented worker mode in these sources, stay with the standard environment the guide uses.
Content model
The setup page says site templates are complete, configured starting points. Each one brings its own design, content types and features. Named examples are Starter, which provides the least out of the box, and Byte, built around a SaaS product marketing site. Other templates are aimed at non-profits, portfolios, schools, healthcare and more. Your template choice decides which content types you get, how the site looks and what demo content is included. The guide's screenshots follow Byte, so your screens may differ.
The guide's navigation also lists content modeling, content moderation and workflows, and creating accessible content with the Editoria11y assistant. It lists add-ons and modules, theme customization, custom forms, consent and privacy policy topics, email sending, SEO tools and analytics setup. The supplied pages show only these titles, not the details, so read the official pages before relying on any feature.
Practical use cases
- Learning how a packaged CMS organizes content types and editorial work.
- Standing up a local site from a template, such as Starter, to explore administration.
- Prototyping a marketing, portfolio, school, healthcare or non-profit site, based on the template categories the guide lists.
Installation approach
The setup page mentions an installation option using the Drupal CMS launcher. The supplied text gives no details for it, so this guide covers only DDEV. The DDEV page says DDEV creates a sandbox on your computer, and it recommends WSL2 on Windows.
The steps are:
- Install DDEV by following the DDEV documentation, then confirm it with the version command.
- Create a project directory, configure DDEV with project type drupal11 and docroot web, then run the Composer create-project command for drupal/cms through DDEV. Composer is included with DDEV.
- Run the launch command. The installer opens in your browser.
- In the installer, enter a site name, choose a template, then enter an administrator email address and password.
- You arrive at the Dashboard, which shows top tasks to get started.
The status command shows your local site URL. The stop command shuts the environment down while keeping the application. Running launch again starts it back up.
The sources do not state PHP version requirements, and the DDEV command in the example does not set one. Whether PHP 8.4 or PHP 8.5 is supported is therefore unknown here. Check the official documentation and the generated DDEV configuration before assuming anything. The course track stays on PHP 8.4, with PHP 8.5 planned.
Strengths
- Site templates give a configured starting point instead of a blank install.
- The guide covers editorial, accessibility, SEO and maintenance topics.
- DDEV gives a contained local environment, and the page offers a throwaway try-out route.
- The updating section lists making a backup first.
Limitations
- Version support, PHP compatibility, licensing, pricing and support status are unknown from these sources, so lifecycle is marked unknown.
- No performance claims can be made.
- The installation needs Composer and network access, so it is not a browser exercise.
- The guide's content depends on the chosen template.
- Persistent-worker operation is undocumented in the sources.
Deployment
The setup page says you can invite colleagues after moving your site from your computer to a hosting provider. The guide has a page named Move your site to a hosting provider, but its content was not supplied, so hosting requirements are unknown. The DDEV setup is for local development only. Do not expose a development environment publicly, and never expose FastCGI services to a network. Before any production move, make a backup and read the official update and hosting pages.
Links
Use the two official guide pages listed below.
Practical examples
These examples have not been run in a live environment yet. Commands and versions follow the official documentation linked on this page; check them before relying on them, and report a problem if one does not work.
Local Drupal CMS install with DDEV and Composer
A small shell script wraps the official DDEV steps: create a project directory, configure DDEV with project type drupal11 and docroot web, and download Drupal CMS with Composer through DDEV. The installer then opens in a browser. This is a local development setup, not a browser exercise, and it needs Docker-capable DDEV, Composer (bundled with DDEV) and network access.
setup-drupal-cms.sh
#!/usr/bin/env bash
# Script based on the official Drupal CMS DDEV guide.
set -euo pipefail
mkdir my-drupal-site
cd my-drupal-site
ddev config --project-type=drupal11 --docroot=web
ddev composer create-project drupal/cms
ddev launch
Install and run
ddev --version
bash setup-drupal-cms.sh
cd my-drupal-site && ddev status
cd my-drupal-site && ddev stop
cd my-drupal-site && ddev launchExpected behavior
If the steps succeed, DDEV creates a project in my-drupal-site with web as the docroot, and Composer downloads Drupal CMS. The launch command opens the setup assistant in your browser, where you set a site name, choose a template and create an administrator account. Afterwards you land on the Dashboard. The status command shows the local URL, the stop command shuts the environment down while keeping the application, and the final launch command starts it again.
It fails if the my-drupal-site directory already exists. DDEV must already be installed (Windows users are advised to use WSL2). The PHP version is not set, and PHP 8.4 or 8.5 support is unknown from the sources. This is for local development only, not production deployment. The launcher installation route is not covered. Port settings and public exposure are not described in the sources, so keep the environment local.