PHPackages                             kanopi/saplings-domain - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. kanopi/saplings-domain

ActiveDrupal-recipe[Utility &amp; Helpers](/categories/utility)

kanopi/saplings-domain
======================

Base Domain Access configuration for modern Drupal.

1.0.1(11mo ago)191GPL-2.0-or-later

Since Mar 14Pushed 11mo ago7 watchersCompare

[ Source](https://github.com/kanopi/saplings-domain)[ Packagist](https://packagist.org/packages/kanopi/saplings-domain)[ RSS](/packages/kanopi-saplings-domain/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (7)Versions (4)Used By (0)

Saplings Domain
===============

[](#saplings-domain)

Overview
--------

[](#overview)

This recipe installs base Domain Access modules.

Features
--------

[](#features)

- Requires and enables commonly used Domain modules:
    - domain
    - domain\_access
    - domain\_access\_logo
    - domain\_alias
    - domain\_config
    - domain\_config\_ui
    - domain\_content
    - domain\_entity
    - domain\_login\_restrict
    - domain\_menus
    - domain\_path

Getting Started
---------------

[](#getting-started)

To start using Saplings Theme, follow these steps:

1. In your project: `fin composer require kanopi/saplings-domain`
2. [Configuring Drupal to Apply Recipes](https://snippets.cacher.io/snippet/263fab3a292182ff3e34)
3. [Apply the recipe](https://snippets.cacher.io/snippet/263fab3a292182ff3e34#F0_MH--applying-a-recipe)
4. Validate the recipe on your project
5. [Unpack the recipe](https://snippets.cacher.io/snippet/263fab3a292182ff3e34#F0_MH--unpacking-a-recipe) (to move its composer requirements into your project's composer.json file)
6. Complete domain configuration - see Configuration section below
7. In your project: `fin composer remove kanopi/saplings-domain`
8. `fin drush cex -y`
9. `git checkout -b [mybranch]`
10. `git add .`
11. `git commit -m "applies saplings-domain recipe`
12. `git push`
13. Create and submit PR

Patches
-------

[](#patches)

Once you have applied and unpacked this recipe, add the following patches to your project's main composer.json file and then run `fin composer install`:

```
    "patches": {
        "drupal/domain": {
            "Use core route provider with addExtraCacheKeyPart for route caching?": "https://www.drupal.org/files/issues/2023-05-09/domain-route-provider-addextracachekeypart-3359253-02.patch",
            "Domain Entity module compatibility issue causes hasDomainPermissions() to return nothing": "https://www.drupal.org/files/issues/2024-03-06/domain-3426236-2.patch"
        },
        "drupal/domain_menus": {
            "Errors on Group menus": "https://www.drupal.org/files/issues/2024-01-31/domain_menus-3418527-1.patch"
        }
    }

```

Notes
-----

[](#notes)

This recipe does not install the [Domain Language](https://www.drupal.org/project/domain_language) module.

If your project is enabling Drupal translation, you should require it and enable it manually and add the following patch to your project's composer.json:

```
    "patches": {
        "drupal/domain_language": {
            "DomainLanguageOverrider service arguments": "https://www.drupal.org/files/issues/2023-09-26/domain_language-3388388-7.patch"
        }
    }

```

Without this patch, you won't be able to configure different language preferences per domain without getting a fatal error. If all your domains have the same languages and the same default language, you don't need this patch.

Configuration
-------------

[](#configuration)

1. Go to admin/config/domain
2. Create your default domain and any additional domains you need
3. Go back to admin/config/domain
4. Select Aliases from the option list for your default domain
5. Create local, testing (multidev), dev, and staging (test) aliases for each domain
6. Go to /admin/config/domain/entities/node and enable domain access for each of your project's content types
7. Go to /admin/config/domain/menu/access/settings - if you want separate menus per domain, and you want them to be auto-configured when you add future domains enable them here. You can also just assign menus to certain domains, so this is optional.
8. Go to /admin/config/domain/domain\_menus - set options here as needed for your project
9. Later, after all this config is deployed to your canonical site, go to /admin/config/domain/domain\_access\_logo if you want different logos per domain (because you have to upload files for this, you should do this config on your canonical site and then synch the database down to your local so you can export the config there)
10. Go to /admin/config/domain/entities - we have pre-enabled common entity types like users, nodes and terms, but you may want to enable it for entities for your project, e.g, Sitewide Alerts
11. Set Domain module permissions for your site's roles/needs

Resources
---------

[](#resources)

See [this cacher](https://snippets.cacher.io/snippet/6a7201959cdb2290d3c0) on working with Domains and Domain aliases (for local, multidevs, dev, test and live). It is Pantheon-centric, but the information about configuring domain aliases is relevant despite hosting platform.

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance55

Moderate activity, may be stable

Popularity7

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 66.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~452 days

Total

2

Last Release

333d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/bf9dca5c46910be861bb00920034637b5a36a1f6277413be6817a50a1ce6fc74?d=identicon)[kanopi\_studios](/maintainers/kanopi_studios)

---

Top Contributors

[![banoodle](https://avatars.githubusercontent.com/u/7685811?v=4)](https://github.com/banoodle "banoodle (4 commits)")[![echechulina](https://avatars.githubusercontent.com/u/59713012?v=4)](https://github.com/echechulina "echechulina (1 commits)")[![kmurphychi247](https://avatars.githubusercontent.com/u/82771690?v=4)](https://github.com/kmurphychi247 "kmurphychi247 (1 commits)")

---

Tags

do-not-archivedrupaldrupal-recipeinternal-toolsaplings

### Embed Badge

![Health badge](/badges/kanopi-saplings-domain/health.svg)

```
[![Health](https://phpackages.com/badges/kanopi-saplings-domain/health.svg)](https://phpackages.com/packages/kanopi-saplings-domain)
```

###  Alternatives

[michael-rubel/laravel-couponables

This package provides polymorphic coupon functionality for your Laravel application.

19590.7k1](/packages/michael-rubel-laravel-couponables)[loadsys/cakephp_sitemap

A CakePHP Plugin for adding automatic XML and HTML Sitemaps to an app

2819.6k](/packages/loadsys-cakephp-sitemap)[mauricerenck/komments

A comment and webmention plugin for Kirby 3

501.2k1](/packages/mauricerenck-komments)[myweb/show-out-of-stock-products

Show out-of-stock product configurations for configurable products on the front end.

131.7k](/packages/myweb-show-out-of-stock-products)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
