PHPackages                             maispace/base - 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. [Framework](/categories/framework)
4. /
5. maispace/base

ActiveTypo3-cms-extension[Framework](/categories/framework)

maispace/base
=============

Base foundation extension for Maispace TYPO3 projects. Provides shared TypoScript configuration, page layout definitions, and pulls in all TYPO3 backend/infrastructure extensions that the project requires. Mail dispatch is handled by `mai\_mail` — no external mail queue package is declared here.

v14.0.0(1mo ago)01[1 issues](https://github.com/mai-space-de/typo3-extension-base/issues)GPL-2.0-or-laterPHPPHP ^8.2CI passing

Since Apr 24Pushed 1mo agoCompare

[ Source](https://github.com/mai-space-de/typo3-extension-base)[ Packagist](https://packagist.org/packages/maispace/base)[ RSS](/packages/maispace-base/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (10)Versions (6)Used By (0)

maispace/mai-base — TYPO3 Extension
===================================

[](#maispacemai-base--typo3-extension)

[![PHP](https://camo.githubusercontent.com/187240af044d09d5b14a1d9d9ebdf3f7a993e4c7bc09bdb46b4ba661a891bf5b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322532422d626c7565)](https://www.php.net/)[![TYPO3](https://camo.githubusercontent.com/8e07c24b7f613f6d30d4836b4d39c2b1722b1f030602202a878615f2d6cf25fa/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5459504f332d31332e342532304c54532d6f72616e6765)](https://typo3.org/)[![License: GPL v2](https://camo.githubusercontent.com/77e900ae34f8da9ccccc42662fce61a94ab07ddbfe3f7d066178e824f3673dbd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d47504c25323076322d626c75652e737667)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)

Base foundation extension for Maispace TYPO3 projects. Provides shared TypoScript configuration, page layout definitions, and pulls in all TYPO3 backend/infrastructure extensions that the project requires. Mail dispatch is handled by `mai_mail` — no external mail queue package is declared here.

**Requires:** TYPO3 13.4 LTS / 14.1 · PHP 8.2+

---

Installation
------------

[](#installation)

```
composer require maispace/mai-base
```

---

Development
-----------

[](#development)

### Linting

[](#linting)

```
composer lint:check     # Run all linters
composer lint:fix       # Fix auto-fixable issues
```

### Testing

[](#testing)

```
composer test           # Run all tests
composer test:unit      # Run unit tests only
```

---

Shared Icon Contract
--------------------

[](#shared-icon-contract)

`mai_base` provides three generic SVG icons that every other maispace extension uses as its default backend icons. Extensions depend on `mai_base` being loaded first; the icons and their pre-registered TYPO3 identifiers are then available globally.

### Icon files

[](#icon-files)

FilePurpose`EXT:mai_base/Resources/Public/Icons/generic_table.svg`Default record/table icon — shown in list-module rows`EXT:mai_base/Resources/Public/Icons/generic_content.svg`Default content-element / plugin icon — shown in the page module`EXT:mai_base/Resources/Public/Icons/generic_backend_module.svg`Default backend module icon — shown in the module navigation### Pre-registered identifiers

[](#pre-registered-identifiers)

`mai_base/Configuration/Icons.php` registers the following identifiers globally the moment the extension is loaded. Downstream extensions must **not** redeclare these identifiers.

IdentifierPoints to`mai-table``generic_table.svg``mai-content``generic_content.svg``mai-backend-module``generic_backend_module.svg``mai-extension``extension.svg`### Usage patterns

[](#usage-patterns)

#### 1 — TCA record icon (`->setIconFile()`)

[](#1--tca-record-icon--seticonfile)

Use the raw SVG path directly in the TCA builder chain:

```
// Configuration/TCA/tx_myext_myrecord.php
$builder
    ->setLabel('title')
    ->setIconFile('EXT:mai_base/Resources/Public/Icons/generic_table.svg');
```

Alternatively, register an extension-specific identifier in `Configuration/Icons.php`pointing to the shared source, then reference that identifier from TCA:

```
// Configuration/Icons.php
return [
    'tx_myext_myrecord' => [
        'provider' => \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
        'source'   => 'EXT:mai_base/Resources/Public/Icons/generic_table.svg',
    ],
];
```

#### 2 — Content element / plugin icon

[](#2--content-element--plugin-icon)

Pass the pre-registered `'mai-content'` identifier when registering a CType:

```
// Configuration/TCA/Overrides/tt_content.php
(new CType('maispace_myplugin', $lang('ctype.myplugin'), 'mai-content'))
    ->addDefaultHeaderPalette()
    ->register();
```

#### 3 — Backend module icon

[](#3--backend-module-icon)

Set `iconIdentifier` to the pre-registered `'mai-backend-module'` value:

```
// Configuration/Backend/Modules.php
return [
    'mai_myext' => [
        'parent'          => 'tools',
        'iconIdentifier'  => 'mai-backend-module',
        // …
    ],
];
```

### Rules

[](#rules)

- Use the shared icons during extension scaffolding — creating a unique icon per extension is optional and only required once a distinct visual identity is needed.
- Never re-register `mai-table`, `mai-content`, `mai-backend-module`, or `mai-extension`in a downstream extension — the `mai-*` namespace is reserved for `mai_base`.
- Never declare `scssphp/scssphp` or `symfony/mailer` in this extension — see the architecture constraints in `AGENTS.md`.

---

License
-------

[](#license)

GPL-2.0-or-later — see [LICENSE](../../LICENSE) for details.

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance92

Actively maintained with recent releases

Popularity1

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 85.4% 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 ~394 days

Total

2

Last Release

41d ago

Major Versions

v13.0.0 → v14.0.02026-05-23

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/28559477?v=4)[maispace](/maintainers/maispace)[@MaiSpace](https://github.com/MaiSpace)

---

Top Contributors

[![mai-space](https://avatars.githubusercontent.com/u/38419872?v=4)](https://github.com/mai-space "mai-space (41 commits)")[![Copilot](https://avatars.githubusercontent.com/in/1143301?v=4)](https://github.com/Copilot "Copilot (6 commits)")[![claude](https://avatars.githubusercontent.com/u/81847?v=4)](https://github.com/claude "claude (1 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/maispace-base/health.svg)

```
[![Health](https://phpackages.com/badges/maispace-base/health.svg)](https://phpackages.com/packages/maispace-base)
```

###  Alternatives

[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

611.1M8](/packages/netresearch-rte-ckeditor-image)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[aimeos/aimeos-typo3

Professional, full-featured and high performance TYPO3 e-commerce extension for online shops and complex B2B projects

1.5k94.0k6](/packages/aimeos-aimeos-typo3)[pagemachine/typo3-formlog

Form log for TYPO3

23238.6k8](/packages/pagemachine-typo3-formlog)[web-vision/wv_deepltranslate

DeepL Translate (CORE) - This extension provides option to translate content element, and TCA record texts to DeepL supported languages.

33304.3k](/packages/web-vision-wv-deepltranslate)[typo3/cms-seo

TYPO3 CMS SEO - SEO features including specific fields for SEO purposes, rendering of HTML meta tags and sitemaps.

168.9M155](/packages/typo3-cms-seo)

PHPackages © 2026

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