PHPackages                             claudiu-cristea/drupal-project - 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. claudiu-cristea/drupal-project

ActiveComposer-plugin[Utility &amp; Helpers](/categories/utility)

claudiu-cristea/drupal-project
==============================

Allows to keep all Drupal code outside of web root

1.x-dev(6mo ago)027GPL-2.0-or-laterPHPCI passing

Since Oct 20Pushed 4mo agoCompare

[ Source](https://github.com/claudiu-cristea/drupal-project)[ Packagist](https://packagist.org/packages/claudiu-cristea/drupal-project)[ RSS](/packages/claudiu-cristea-drupal-project/feed)WikiDiscussions 1.x Synced 1mo ago

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

[![ci](https://github.com/claudiu-cristea/drupal-project/actions/workflows/ci.yml/badge.svg)](https://github.com/claudiu-cristea/drupal-project/actions/workflows/ci.yml)

Allows to keep all Drupal code outside of web root.

The package provides a Composer plugin that scaffolds the custom code directories and settings for a Drupal project. The main idea is to keep all custom code outside the web root.

When running Composer install or update, the following directories and files will be created, if they don't exist. Under web root symlinks are created in the proper location. For instance `src/Drupal/Modules` is symlinked as `web/modules/custom`, `files/public` is symlinked as `web/sites/default/files` and so on.

```
Directory/file                 Symlinked as
├─ files
│  ├─ private
│  ├─ public                   -> web/sites/default/files
│  └─ .gitignore                  Both, private and public, are ignored
...
├─ src
│  └─ Drupal
│     ├─ Modules               -> web/modules/custom
│     ├─ Profiles              -> web/profiles/custom
│     ├─ Settings
│     │  ├─ settings.php       -> web/sites/default/settings.php
│     │  ├─ settings.local.php -> web/sites/default/settings.local.php
│     │  └─ .gitignore            settings.local.php is ignored
│     └─ Themes                -> web/themes/custom

```

The webroot directory (`web/`) is also added to the project's `.gitignore` if it isn't yet there.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance73

Regular maintenance activity

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity23

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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 ~13 days

Total

3

Last Release

183d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/473868?v=4)[Claudiu Cristea](/maintainers/claudiu-cristea)[@claudiu-cristea](https://github.com/claudiu-cristea)

---

Top Contributors

[![claudiu-cristea](https://avatars.githubusercontent.com/u/473868?v=4)](https://github.com/claudiu-cristea "claudiu-cristea (11 commits)")

---

Tags

drupaldocrootwebroot

###  Code Quality

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/claudiu-cristea-drupal-project/health.svg)

```
[![Health](https://phpackages.com/badges/claudiu-cristea-drupal-project/health.svg)](https://phpackages.com/packages/claudiu-cristea-drupal-project)
```

###  Alternatives

[drupal/core-composer-scaffold

A flexible Composer project scaffold builder.

5341.9M446](/packages/drupal-core-composer-scaffold)[drupal/core-project-message

Adds a message after Composer installation.

2122.6M172](/packages/drupal-core-project-message)[lullabot/amp

A set of useful classes and utilities to convert html to AMP html (See https://www.ampproject.org/)

3802.9M10](/packages/lullabot-amp)[aleksip/plugin-data-transform

Data Transform Plugin for Pattern Lab PHP

34897.4k3](/packages/aleksip-plugin-data-transform)[acquia/drupal-recommended-settings

The composer plugin for adding drupal-recommended-settings for Acquia Cloud.

101.1M4](/packages/acquia-drupal-recommended-settings)[tripal/tripal

Tripal is a toolkit to facilitate construction of online genomic, genetic (and other biological) websites.

709.9k9](/packages/tripal-tripal)

PHPackages © 2026

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