---
title: "Feature: #95089 - New PSR-14 AfterFileCommandProcessedEvent"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:feature-95089"
source: "Changelog/11.4/Feature-95089-NewPSR-14AfterFileCommandProcessedEvent.rst"
typo3-version: "11.4"
typo3-major: 11
type: "feature"
issue: 95089
forge: "https://forge.typo3.org/issues/95089"
tags: ["PHP-API", "ext:core"]
rendered: "2026-09-18T17:00:34+00:00"
---

# Feature: #95089 - New PSR-14 AfterFileCommandProcessedEvent {#feature-95089}

See [forge#95089](https://forge.typo3.org/issues/95089)

## Description {#description}

A new PSR-14 event `\TYPO3\CMS\Core\Resource\Event\AfterFileCommandProcessedEvent`
has been added to TYPO3 Core. This event is fired in the
`\TYPO3\CMS\Core\Utility\File\ExtendedFileUtility`
class and allows extensions to execute additional tasks, after a file
operation has been performed.

The event features the following methods:

-   `getCommand()`: Returns the command array while the array key is the performed action and the value is the command data ("cmdArr")
-   `getResult()`: Returns the operation result, which could e.g. be an uploaded or changed `File` or a `boolean` for the "delete" action
-   `getConflictMode()`: The conflict mode for the performed operation, e.g. "rename" or "cancel"

Registration of the Event in your extensions' `Services.yaml`:

```yaml
MyVendor\MyPackage\File\MyEventListener:
  tags:
    - name: event.listener
      identifier: 'my-package/file/my-event-listener'
```

The corresponding event listener class:

```php
use TYPO3\CMS\Core\Resource\Event\AfterFileCommandProcessedEvent;

class MyEventListener {

    public function __invoke(AfterFileCommandProcessedEvent $event): void
    {
        // do magic here
    }

}
```

## Impact {#impact}

This event can be used to perform additional tasks for specific file commands.
For example, trigger a custom indexer after a file has been uploaded.
