Administration screenshot of precedence module in affect...

This project is not covered by Drupal’s security advisory policy.

Shows which services, listeners, hooks and preprocess functions run first — and which never run at all.

Drupal decides "what runs first" through four unrelated mechanisms, and none of them are visible from the admin UI. When two modules both want to build the breadcrumb, or a contrib module's alter silently loses to another, the only way to find out today is to read services.yml files and reason about priorities by hand. Precedence puts that ordering on a page.

This is deliberately not a Devel submodule. Devel's /devel/container/service is a registry view — a searchable list of services. Precedence is an ordering view: it reconstructs the chains, states the rule that resolves each one, and can evaluate a chain against a real path.

This module is informational and offers no libraries or services that can be directly taken advantage of.

If you wish to suggest other ways this module could be useful, please create a ticket and let's see how we can improve it!

Short History

This module was designed after trying to figure out why several breadcrumb modules, when enabled, were causing configuration collisions and complicating the administration of a site for non-Drupal users and managers of the site. When digging through the various chains, services and bootstrapping of Drupal, I came across some very interesting and hidden values in the operational precedence of modules. This module help to expose some of that so I could better understand what was going on.

I hope this module comes in handy for others.

Project information

Releases