PHPackages                             ttn/tea - 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. [Testing &amp; Quality](/categories/testing)
4. /
5. ttn/tea

ActiveTypo3-cms-extension[Testing &amp; Quality](/categories/testing)

ttn/tea
=======

TYPO3 example extension for unit testing and best practices

v4.0.0(2mo ago)9323.6k34[108 issues](https://github.com/TYPO3BestPractices/tea/issues)[12 PRs](https://github.com/TYPO3BestPractices/tea/pulls)GPL-2.0-or-laterPHPPHP ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0CI passing

Since Oct 12Pushed 4w ago9 watchersCompare

[ Source](https://github.com/TYPO3BestPractices/tea)[ Packagist](https://packagist.org/packages/ttn/tea)[ Docs](https://extensions.typo3.org/extension/tea/)[ RSS](/packages/ttn-tea/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (7)Dependencies (55)Versions (38)Used By (0)

Example TYPO3 extension for code quality checks and automated tests
===================================================================

[](#example-typo3-extension-for-code-quality-checks-and-automated-tests)

[![TYPO3 V12](https://camo.githubusercontent.com/08afacc49187e63c796f7d1c4401d0f0563bab574d9c525312b2827acb09a7c5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5459504f332d31322d6f72616e67652e737667)](https://get.typo3.org/version/12)[![TYPO3 V13](https://camo.githubusercontent.com/2cf6570821614808899422f68a66a381a2de1dd0746ba9cdba6155def1f4f396/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5459504f332d31332d6f72616e67652e737667)](https://get.typo3.org/version/13)[![License](https://camo.githubusercontent.com/6f77102efc04cb47aa0216366d2ad0c29d9adeb4dad2278a9b7b979bbf20ccfe/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f5459504f33426573745072616374696365732f746561)](https://packagist.org/packages/ttn/tea)[![GitHub CI status](https://github.com/TYPO3BestPractices/tea/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/TYPO3BestPractices/tea/actions)[![Coverage Status](https://camo.githubusercontent.com/cd722b7dd6f2006c98bf91bc9c7076a087ed9120a41e054e0c753fc772612e12/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f5459504f33426573745072616374696365732f7465612f62616467652e7376673f6272616e63683d6d61696e)](https://coveralls.io/github/TYPO3BestPractices/tea?branch=main)

This TYPO3 extension, based on Extbase and Fluid, is an example of best practices in automated code checks, unit/functional/acceptance testing and continuous integration.

You can also use this extension to manage your collection of delicious teas.

URL**Repository:****Read online:****TER:****Slack:**Feedback
--------

[](#feedback)

We value and welcome feedback of all kinds, including discussions. Feedback can be sent via TYPO3 slack within [our channel](https://app.slack.com/client/T024TUMLZ/CSQ8T0VS5) or via direct massages to the team members. We also welcome email. All the contact information is available at our [team page](https://typo3.community/contribute/teams-committees/best-practices). Another way is to create a [discussion on GitHub](https://github.com/TYPO3BestPractices/tea/discussions).

Philosophies
------------

[](#philosophies)

The following is a list of our code and technical philosophies only. Our [team page](https://typo3.community/contribute/teams-committees/best-practices)provides an overview on how we work in general.

### Semantic Versioning

[](#semantic-versioning)

The project follows [Semantic Versioning](https://semver.org/).

### Align with TYPO3 core

[](#align-with-typo3-core)

We align all decisions with the TYPO3 core, whenever applicable. TYPO3 itself is a mono repository and sometimes needs to make different decisions. We document all divergences within Documentation/DivergencesToTypo3Core/.

Presentation at the TYPO3 Online Days 2021
------------------------------------------

[](#presentation-at-the-typo3-online-days-2021)

At the TYPO3 Online Days 2021, [Oliver Klee](https://www.oliverklee.de/) held a session where her presented our approach for automating the code quality of extensions.

### Slides

[](#slides)

[![cover slide](https://camo.githubusercontent.com/351e33ea6694a08a1bb429c60c7056202129ccafa871eac0a5b4987f4de4134f/68747470733a2f2f66696c65732e737065616b65726465636b2e636f6d2f70726573656e746174696f6e732f65383138373064343633653834313538616662396639333339386564303632622f707265766965775f736c6964655f302e6a70673f3139303137393030)](https://speakerdeck.com/oliverklee/automating-the-code-quality-of-your-extensions)

### Video recording

[](#video-recording)

[![video still](https://camo.githubusercontent.com/e2e084aaec0beb536bcb8148443a88709aa25f834e3fc5388a50d9e8cc8ceb9f/68747470733a2f2f696d672e796f75747562652e636f6d2f76692f5f6f65386b7532474d38342f302e6a7067)](https://youtu.be/_oe8ku2GM84?t=6983)

###  Health Score

59

—

FairBetter than 98% of packages

Maintenance70

Regular maintenance activity

Popularity44

Moderate usage in the ecosystem

Community29

Small or concentrated contributor base

Maturity80

Battle-tested with a long release history

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~271 days

Recently: every ~335 days

Total

7

Last Release

86d ago

Major Versions

v1.1.0 → v2.0.02022-07-26

v2.0.1 → v3.0.02022-10-19

v3.1.0 → v4.0.02026-03-28

PHP version history (6 changes)v1.0.0PHP ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0

v2.0.0PHP ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0 || ~8.1

v2.0.1PHP ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0

v3.0.0PHP ~7.4.0 || ~8.0.0 || ~8.1.0

v3.1.0PHP ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0

v4.0.0PHP ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/2cc98eb6580d4532340e818ea893009da65365b7f3525f518d143732e838735a?d=identicon)[oliverklee](/maintainers/oliverklee)

---

Top Contributors

[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (615 commits)")[![oliverklee](https://avatars.githubusercontent.com/u/765746?v=4)](https://github.com/oliverklee "oliverklee (604 commits)")[![lukaszuznanski](https://avatars.githubusercontent.com/u/15106746?v=4)](https://github.com/lukaszuznanski "lukaszuznanski (141 commits)")[![DanielSiepmann](https://avatars.githubusercontent.com/u/354250?v=4)](https://github.com/DanielSiepmann "DanielSiepmann (46 commits)")[![Starkmann](https://avatars.githubusercontent.com/u/3470953?v=4)](https://github.com/Starkmann "Starkmann (29 commits)")[![kanow](https://avatars.githubusercontent.com/u/16071530?v=4)](https://github.com/kanow "kanow (22 commits)")[![d-s-codappix](https://avatars.githubusercontent.com/u/179449418?v=4)](https://github.com/d-s-codappix "d-s-codappix (21 commits)")[![sbuerk](https://avatars.githubusercontent.com/u/1453466?v=4)](https://github.com/sbuerk "sbuerk (20 commits)")[![AnReiter](https://avatars.githubusercontent.com/u/234920694?v=4)](https://github.com/AnReiter "AnReiter (14 commits)")[![cumuru](https://avatars.githubusercontent.com/u/12487311?v=4)](https://github.com/cumuru "cumuru (12 commits)")[![linxpinx](https://avatars.githubusercontent.com/u/412900?v=4)](https://github.com/linxpinx "linxpinx (11 commits)")[![andreaswolf](https://avatars.githubusercontent.com/u/159919?v=4)](https://github.com/andreaswolf "andreaswolf (11 commits)")[![linawolf](https://avatars.githubusercontent.com/u/48202465?v=4)](https://github.com/linawolf "linawolf (8 commits)")[![mabolek](https://avatars.githubusercontent.com/u/8200271?v=4)](https://github.com/mabolek "mabolek (5 commits)")[![heiko-hardt](https://avatars.githubusercontent.com/u/2315719?v=4)](https://github.com/heiko-hardt "heiko-hardt (4 commits)")[![simonschaufi](https://avatars.githubusercontent.com/u/941794?v=4)](https://github.com/simonschaufi "simonschaufi (4 commits)")[![brotkrueml](https://avatars.githubusercontent.com/u/2566282?v=4)](https://github.com/brotkrueml "brotkrueml (4 commits)")[![drc-ravisachaniya](https://avatars.githubusercontent.com/u/35260051?v=4)](https://github.com/drc-ravisachaniya "drc-ravisachaniya (3 commits)")[![jpmschuler](https://avatars.githubusercontent.com/u/12411176?v=4)](https://github.com/jpmschuler "jpmschuler (3 commits)")[![alexander-nitsche](https://avatars.githubusercontent.com/u/20297232?v=4)](https://github.com/alexander-nitsche "alexander-nitsche (2 commits)")

---

Tags

best-practiceexample-projecthacktoberfestphpquality-assurancetypo3typo3-cms-extensionphpunitunit testingTDDextensionexampletypo3Best-Practices

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/ttn-tea/health.svg)

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

###  Alternatives

[pagemachine/typo3-formlog

Form log for TYPO3

23233.9k7](/packages/pagemachine-typo3-formlog)[friendsoftypo3/content-blocks

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

101466.4k45](/packages/friendsoftypo3-content-blocks)[georgringer/news

News system - Versatile news system based on Extbase &amp; Fluid and using the latest technologies provided by TYPO3 CMS.

2825.2M112](/packages/georgringer-news)[eliashaeussler/typo3-form-consent

Extension for TYPO3 CMS that adds double opt-in functionality to EXT:form

1590.6k](/packages/eliashaeussler-typo3-form-consent)[typo3/testing-framework

The TYPO3 testing framework provides base classes for unit and functional testing.

675.3M1.1k](/packages/typo3-testing-framework)[apache-solr-for-typo3/solr

Apache Solr for TYPO3 - Apache Solr for TYPO3 is the enterprise search server you were looking for with special features such as Faceted Search or Synonym Support and incredibly fast response times of results within milliseconds.

1463.2M42](/packages/apache-solr-for-typo3-solr)

PHPackages © 2026

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