PHPackages                             chi-teck/sample\_catalog - 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. chi-teck/sample\_catalog

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

chi-teck/sample\_catalog
========================

A sample module to proof concept of parallel rendering content in Drupal.

1.x-dev(1y ago)019GPL-2.0+PHPPHP &gt;=8.3

Since Nov 11Pushed 1y ago1 watchersCompare

[ Source](https://github.com/Chi-teck/sample_catalog)[ Packagist](https://packagist.org/packages/chi-teck/sample_catalog)[ RSS](/packages/chi-teck-sample-catalog/feed)WikiDiscussions 1.x Synced today

READMEChangelogDependencies (3)Versions (1)Used By (0)

Sample Catalog Module
=====================

[](#sample-catalog-module)

Introduction
------------

[](#introduction)

The **Sample Catalog** module provides a sandbox environment for testing and analyzing the performance of building content in Drupal. It offers configurable stress-testing settings and a sample catalog with product panes to evaluate the impact of various optimization techniques. This module is designed for developers who want to understand and experiment with Drupal's performance under different conditions.

[![Catalog screenshot](./assets/screenshot.jpg)](./assets/screenshot.jpg)

Usage
-----

[](#usage)

- **Configuration page**: `/admin/config/development/sample-catalog`
- **Catalog page**: `/catalog`

The catalog is a collection of panes built with plugins called `ProductPaneBuilder`. The module ships with a few builders that demonstrate different approaches for building content in Drupal.

Built-in Builders
-----------------

[](#built-in-builders)

Currently, there is no UI for configuring pane builder plugins. Use `settings.php` as described below.

### 1. Simple

[](#1-simple)

This builder creates content in a single thread, which is the typical approach for most Drupal sites.

```
$build = [];
foreach ($products as $product) {
  $build[] = $this->build($product);
}
```

#### Configuration

[](#configuration)

No options.

### 2. FPM

[](#2-fpm)

The FPM plugin relies on the [Fast CGI Client](https://github.com/hollodotme/fast-cgi-client)and allows you to build panes in background workers without requiring any extra extensions.

To get the most out of this plugin, make sure the corresponding PHP-FPM pool is configured with a sufficient number of workers.

#### Configuration

[](#configuration-1)

```
$settings['sample_catalog']['fpm']['server_address'] = 'tcp://php:9000';
// Unix sockets are also supported.
$settings['sample_catalog']['fpm']['server_address'] = 'unix:///var/run/php-fpm.sock';
```

### 3. Process

[](#3-process)

This builder creates each pane in a separate PHP CLI process.

#### Configuration

[](#configuration-2)

No options.

### 4. HTTP

[](#4-http)

This builder delegates the construction of panes to an external HTTP server. The server must provide the following endpoint:

```
Request: GET /product/{product_id}
Response: Serialized render array for the product pane

```

Although the module itself provides such an endpoint (`/sample-catalog`), it's recommended to configure a separate multi-threaded application server that boots Drupal once and stays in memory (RoadRunner, FrankenPHP, etc.).

#### Configuration

[](#configuration-3)

```
$settings['sample_catalog']['http']['base_uri'] = 'http://localhost:8080/sample-catalog';
```

###  Health Score

23

—

LowBetter than 26% of packages

Maintenance35

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity38

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

Unknown

Total

1

Last Release

599d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/673139?v=4)[Ivan](/maintainers/chi-teck)[@Chi-teck](https://github.com/Chi-teck)

---

Top Contributors

[![Chi-teck](https://avatars.githubusercontent.com/u/673139?v=4)](https://github.com/Chi-teck "Chi-teck (10 commits)")

---

Tags

drupal

### Embed Badge

![Health badge](/badges/chi-teck-sample-catalog/health.svg)

```
[![Health](https://phpackages.com/badges/chi-teck-sample-catalog/health.svg)](https://phpackages.com/packages/chi-teck-sample-catalog)
```

###  Alternatives

[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6942.5M421](/packages/drupal-core-recommended)[dagger/dagger

Dagger PHP SDK

261.1k](/packages/dagger-dagger)

PHPackages © 2026

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