Skip to content
Back to skills

2500 Skill Php84 C12582c5

ASecurity

PHP 8.4 patterns for TYPO3 Core contributions. Using new language features in Core patches.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
documentationphpbashtesting

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 2500-skill-php84_c12582c5 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 2500 Skill Php84 C12582c5?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 2500 Skill Php84 C12582c5
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-2500-skill-php84-c12582c5/badge)](https://www.skillsdirectory.com/skills/tools-only-2500-skill-php84-c12582c5)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: typo3-core-contributions-php84
description: PHP 8.4 patterns for TYPO3 Core contributions. Using new language features in Core patches.
version: 1.0.0
php_compatibility: "8.4+"
typo3_compatibility: "13.0 - 14.x"
related_skills:
  - typo3-core-contributions
  - php-modernization
triggers:
  - core php 8.4
  - contribute php84
---

# TYPO3 Core Contributions with PHP 8.4

> **Compatibility:** PHP 8.4+, TYPO3 v13.x and v14.x
> 
> **Related Skills:**
> - [typo3-core-contributions](./SKILL.md) - Main contributions guide
> - [php-modernization/SKILL-PHP84](../php-modernization/SKILL-PHP84.md) - PHP 8.4 features

---

## 1. Core PHP 8.4 Adoption

### TYPO3 v14 PHP Requirements

TYPO3 v14 requires PHP 8.3+ and fully supports PHP 8.4 features.

### When to Use PHP 8.4 Features in Core

| Feature | Core Usage |
|---------|------------|
| Property hooks | For value objects and DTOs |
| Asymmetric visibility | For immutable services |
| New array functions | For collection operations |
| `#[\Deprecated]` | For deprecating Core methods |

---

## 2. Example Core Patch Patterns

### Using Property Hooks

```php
<?php

declare(strict_types=1);

namespace TYPO3\CMS\Core\Configuration;

final class SiteConfiguration
{
    public string $identifier {
        set (string $value) {
            if (!preg_match('/^[a-z][a-z0-9_-]*$/', $value)) {
                throw new \InvalidArgumentException(
                    'Site identifier must be lowercase alphanumeric',
                    1234567890
                );
            }
            $this->identifier = $value;
        }
    }
}
```

### Using #[\Deprecated]

```php
<?php

declare(strict_types=1);

namespace TYPO3\CMS\Core\Utility;

final class GeneralUtility
{
    #[\Deprecated(
        message: 'Use native array_find() instead',
        since: 'TYPO3 14.0'
    )]
    public static function arrayFind(array $array, callable $callback): mixed
    {
        trigger_error(
            'GeneralUtility::arrayFind() is deprecated. Use array_find().',
            E_USER_DEPRECATED
        );
        return array_find($array, $callback);
    }
}
```

---

## 3. Commit Message for PHP 8.4 Changes

```
[TASK] Use PHP 8.4 array_find() in ContentRepository

Replace manual loop with native array_find() function
introduced in PHP 8.4.

Resolves: #12345
Releases: main
```

---

## 4. Testing PHP 8.4 Changes

```bash
# Run Core tests with PHP 8.4
Build/Scripts/runTests.sh -p 8.4 -s functional

# Check for deprecations
Build/Scripts/runTests.sh -s checkDeprecations
```

---

## References

- [typo3-core-contributions SKILL.md](./SKILL.md)
- [php-modernization SKILL-PHP84](../php-modernization/SKILL-PHP84.md)
- [TYPO3 Contribution Guide](https://docs.typo3.org/m/typo3/guide-contributionworkflow/main/en-us/)

---

## Credits & Attribution

This skill is part of the webconsulting.at TYPO3 skills collection.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…