PHPackages                             pharmaline/phlabc - 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. [Security](/categories/security)
4. /
5. pharmaline/phlabc

ActiveTypo3-cms-extension[Security](/categories/security)

pharmaline/phlabc
=================

Pharmaline Extension to manage access to objects, content and actions with permissions.

2.0.1(1mo ago)7200↓60%GPL-3.0-or-laterPHPPHP ^8.4

Since Jan 26Pushed 4mo agoCompare

[ Source](https://github.com/Pharmaliner/phlabc)[ Packagist](https://packagist.org/packages/pharmaline/phlabc)[ RSS](/packages/pharmaline-phlabc/feed)WikiDiscussions main Synced 2w ago

READMEChangelogDependencies (51)Versions (12)Used By (0)

[![Logo of extension phlabc](documentation/assets/logo.png)](documentation/assets/logo.png)

phlabc
======

[](#phlabc)

Foreword 📖
----------

[](#foreword-)

In modern web applications, fine-grained control of user permissions plays a crucial role—especially when it comes to access to sensitive content and features in the frontend. The TYPO3 extension **phlabc** was developed with exactly this goal in mind: to provide flexible, centralised, and fine-grained management of permissions for frontend users.

Based on the well-established Symfony Voter concept, this extension offers an elegant and powerful architecture that allows access rights to be controlled not only at the action level but also for individual objects. This opens up a wide range of possibilities for developers and administrators to create a secure yet user-friendly experience.

phlabc integrates seamlessly with TYPO3 and leverages established mechanisms such as user and group management, as well as role models. The extension places particular emphasis on extensibility and ease of use, enabling it to support both standard applications and complex scenarios.

We hope this extension helps you equip your TYPO3 projects with robust and flexible frontend permission control and wish you every success in meeting your individual requirements.

Table of contents
-----------------

[](#table-of-contents)

- [1. Foreword 📖](#foreword-)
- [2. Concept 💡](./documentation/Concept.md)
- 3. Documentation 📚🛠️
    - [3.1. Installation 📦](./documentation/Installation.md)
    - [Requirements 📋✅](./documentation/Installation.md#requirements-)
    - [Step-by-step guide 🪜📝](./documentation/Installation.md#step-by-step-guide-)
    - [Integration of the Extension with Permissions, Roles, and Presets](./documentation/Integration.md#integration-of-the-extension-with-permissions-roles-and-presets)
        - [Overview](./documentation/Integration.md#overview)
        - [1. Integration in composer.json](./documentation/Integration.md#1-integration-in-composerjson)
        - [2. Definition of Permissions (permissions.yaml)](./documentation/Integration.md#2-definition-of-permissions-permissionsyaml)
        - [3. Definition of Roles (roles.yaml)](./documentation/Integration.md#3-definition-of-roles-rolesyaml)
        - [4. Definition of Presets (presets.yaml)](./documentation/Integration.md#4-definition-of-presets-presetsyaml)
        - [5. Specials and Advanced Features for Presets](./documentation/Integration.md#5-specials-and-advanced-features-for-presets)
            - [5.1 Wildcard \*](./documentation/Integration.md#51-wildcard-)
            - [5.2 Partial Wildcards PART\_OF\_PERMISSION\_NAME\_\*](./documentation/Integration.md#52-partial-wildcards-part_of_permission_name_)
        - [6. Importing the Configuration](./documentation/Integration.md#6-importing-the-configuration)
    - [Usage Guide 📘](./documentation/usage/UsageGuide.md)
        - [Checking User Permissions 🔐](./documentation/usage/UsageGuide.md#checking-user-permissions-)
        - [How It Works 🧠](./documentation/usage/UsageGuide.md#how-it-works-)
        - [Parameters 🔧](./documentation/usage/UsageGuide.md#parameters-)
        - [Best Practices 🔄](./documentation/usage/UsageGuide.md#best-practices-)
        - [Advanced Usage: Passing a Subject to `vote()` ➕](./documentation/usage/UsageGuide.md#advanced-usage-passing-a-subject-to-vote-)
        - [Implementation Example ✅](./documentation/usage/UsageGuide.md#implementation-example-)
            - [Implementation Controller](./documentation/usage/Controller.md)
                - [Purpose and Usage](./documentation/usage/Controller.md#-purpose-and-usage)
                - [Dependencies](./documentation/usage/Controller.md#-dependencies)
                - [Constructor](./documentation/usage/Controller.md#-constructor)
                - [Method: indexAction](./documentation/usage/Controller.md#-method-indexaction)
                - [Access Control](./documentation/usage/Controller.md#access-control)
                - [Parameters](./documentation/usage/Controller.md#-parameters)
                - [Return Value](./documentation/usage/Controller.md#return-value)
                - [Example Code](./documentation/usage/Controller.md#full-example-code)
            - [Implementation Service](./documentation/usage/Service.md)
                - [Namespace &amp; Dependencies](./documentation/usage/Service.md#namespace--dependencies)
                - [Constructor](./documentation/usage/Service.md#constructor)
                - [Method: serviceMethod()](./documentation/usage/Service.md#method-servicemethod)
                - [Purpose](./documentation/usage/Service.md#purpose)
                - [Logic](./documentation/usage/Service.md#logic)
                - [Example Usage](./documentation/usage/Service.md#example-usage)
                - [Benefits](./documentation/usage/Service.md#benefits)
                - [Extensibility](./documentation/usage/Service.md#extensibility)
            - [Implementation Static Access](./documentation/usage/StaticAccess.md)
                - [Purpose and Motivation](./documentation/usage/StaticAccess.md#purpose-and-motivation)
                - [Why is this approach necessary?](./documentation/usage/StaticAccess.md#why-is-this-approach-necessary)
                - [Component Breakdown](./documentation/usage/StaticAccess.md#component-breakdown)
                - [VoterInterface](./documentation/usage/StaticAccess.md#voterinterface)
                - [VoterServiceLocator](./documentation/usage/StaticAccess.md#voterservicelocator)
                - [Constructor](./documentation/usage/StaticAccess.md#constructor)
                - [Static Method: serviceFunction()](./documentation/usage/StaticAccess.md#static-method-servicefunction)
                - [Example usage](./documentation/usage/StaticAccess.md#example-usage)
                - [Benefits of This Design](./documentation/usage/StaticAccess.md#benefits-of-this-design)
                - [Limitations and Considerations](./documentation/usage/StaticAccess.md#limitations-and-considerations)
                - [Conclusion](./documentation/usage/StaticAccess.md#conclusion)
            - [Implementation ViewHelper](./documentation/usage/ViewHelper.md)
                - [Declaration](./documentation/usage/ViewHelper.md#-viewhelper-declaration)
                - [Parameters](./documentation/usage/ViewHelper.md#-parameters)
                - [Code Example](./documentation/usage/ViewHelper.md#code-example)
                - [How it works](./documentation/usage/ViewHelper.md#how-it-works)
                - [Purpose](./documentation/usage/ViewHelper.md#purpose)
                - [Usage Instructions](./documentation/usage/ViewHelper.md#usage-instructions)
                - [Example Usage](./documentation/usage/ViewHelper.md#example-usage)
- [Contact](#contact)

Contact
-------

[](#contact)

If you have any questions, problems or suggestions for improving the extension, please feel free to contact us:

**Publisher**
- **Name:** Pharmaline GmbH
- **E-Mail:**
- **GitHub Issues:**
- **Website:** **Developer**
- **Name:** MCEikens
- **E-Mail:**
- **GitHub Issues:**
- **Website:**

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance84

Actively maintained with recent releases

Popularity20

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

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

Recently: every ~21 days

Total

7

Last Release

38d ago

Major Versions

1.1.0 → 2.0.02026-04-21

1.1.1 → 2.0.12026-07-13

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1246840?v=4)[Christian Platt](/maintainers/Pharmaline)[@pharmaline](https://github.com/pharmaline)

---

Top Contributors

[![eikedrost](https://avatars.githubusercontent.com/u/23308585?v=4)](https://github.com/eikedrost "eikedrost (42 commits)")

---

Tags

securitytypo3typo3-extensionTYPO3 Frontend LoginTYPO3 Felogin

###  Code Quality

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/pharmaline-phlabc/health.svg)

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

###  Alternatives

[typo3/cms

TYPO3 CMS is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.

1.2k1.9M122](/packages/typo3-cms)[eliashaeussler/typo3-warming

Warming - Warms up Frontend caches based on an XML sitemap. Cache warmup can be triggered via TYPO3 backend or using a console command. Supports multiple languages and custom crawler implementations.

22272.4k](/packages/eliashaeussler-typo3-warming)[typo3/cms-core

TYPO3 CMS Core

3313.6M5.6k](/packages/typo3-cms-core)[eliashaeussler/typo3-form-consent

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

15100.9k](/packages/eliashaeussler-typo3-form-consent)[friendsoftypo3/content-blocks

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

103574.3k70](/packages/friendsoftypo3-content-blocks)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.8M676](/packages/shopware-core)

PHPackages © 2026

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