# PHP Extension Point and Listener List
Overview of Extension Points and Listeners for PHP.
**Product-Specific Plugin Development**: [PhpStorm](phpstorm.md)
63 Extension Points and 11 Listeners
See [](intellij_platform_extension_point_list.md) for IntelliJ Platform.
## PhpStorm
### PhpStorm – Listeners
| Topic | Listener |
|-------|----------|
| [`ComposerInstalledPackagesService#PACKAGE_MANAGER_TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.php.composer.actions.update.ComposerInstalledPackagesService.ComposerUpdateListener) ![Project-Level][project-level] | `ComposerUpdateListener` |
| [`RepositoriesComposerConfig#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.php.composer.json.cache.ComposerRepositoriesChangedListener) | `ComposerRepositoriesChangedListener` |
| [`StateChangedListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.php.config.PhpProjectSharedConfiguration.StateChangedListener) | `StateChangedListener` |
| [`StateChangedListener#LANGUAGE_LEVEL_CHANGED_TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.php.config.PhpProjectSharedConfiguration.StateChangedListener) | `StateChangedListener` |
| [`PhpProjectWorkspaceConfiguration#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.php.config.PhpProjectWorkspaceConfigurationListener) | `PhpProjectWorkspaceConfigurationListener` |
| [`DefaultStubsPathListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.php.config.PhpRuntimeConfiguration.DefaultStubsPathListener) | `DefaultStubsPathListener` |
| [`PhpInterpreterConflictResolveListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.php.config.interpreters.PhpInterpretersManagerImpl.PhpInterpreterConflictResolveListener) | `PhpInterpreterConflictResolveListener` |
| [`StateChangedListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.php.debug.listener.PhpDebugExternalConnectionsAccepter.StateChangedListener) | `StateChangedListener` |
| [`RectorChangesListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.php.rector.RectorChangesListener) | `RectorChangesListener` |
| [`PhpRemoteInterpreterChangedListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.php.remote.interpreter.ui.PhpRemoteInterpreterConfigurationForm.PhpRemoteInterpreterChangedListener) | `PhpRemoteInterpreterChangedListener` |
| [`CustomExpectationNotifier.Companion#TOPIC`](https://jb.gg/ipe/listeners?topics=com.pestphp.pest.features.customExpectations.CustomExpectationNotifier) ![Project-Level][project-level] | `CustomExpectationNotifier` |
### com.intellij.phing
| Extension Point | Implementation |
|-----------------|----------------|
| ![Non-Dynamic][non-dynamic] | `PhingPhpFileDescriptionProvider` |
| ![Non-Dynamic][non-dynamic] | `PropertyFilesManager` |
### com.intellij.php.psalm
| Extension Point | Implementation |
|-----------------|----------------|
| ![Non-Dynamic][non-dynamic] | `PsalmConfigurationProvider` |
### com.intellij.php.tools.quality.phpstan
| Extension Point | Implementation |
|-----------------|----------------|
| ![Non-Dynamic][non-dynamic] | `PhpStanConfigurationProvider` |
### com.jetbrains.php
| Extension Point | Implementation |
|-----------------|----------------|
| ![Internal][internal] ![Project-Level][project-level] | `PhpTemplateDebugConfigurable` |
| ![Internal][internal] | `PhpTemplateLanguagePathMapper` |
| ![Deprecated][deprecated] | `PhpTypeProvider2` |
| | [`EntryPoint`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInspection/reference/EntryPoint.java) |
| | `PhpRunConfigurationExtension` |
| | `PhpArrayShapesProvider` |
| ![Internal][internal] | `PhpBaseLexerProvider` |
| | `PhpClassAliasProvider` |
| | `ComposerExecutionProvider` |
| ![Internal][internal] | `ComposerConfigClient` |
| | `PhpCustomFormatFunctionsProvider` |
| | `PhpInterpreterFormProvider` |
| | `PhpInterpretersStateListener` |
| ![Internal][internal] | `PhpCoreHandler` |
| | `PhpCustomFunctionIndex` |
| ![Internal][internal] | `PhpCustomFunctionPredicateIndex` |
| ![Experimental][experimental] | `PhpCustomTemplatesNamesProvider` |
| | `PhpLocalPathFixer` |
| | `PhpDeprecationQuickFixesProvider` |
| | `PhpDeprecationProvider` |
| ![Internal][internal] | `PhpDfaStateFromAssertionProvider` |
| ![Internal][internal] | `PhpDocPrefixProvider` |
| | `PhpCustomDocTagValuesStubProvider` |
| ![Internal][internal] | `PhpExpressionClassNamesProvider` |
| | `PhpExternalUsagesSearcher` |
| | `PhpFrameworkConfigurableProvider` |
| | `PhpFrameworkUsageProvider` |
| | `PhpIncludedPathsContributor` |
| ![Project-Level][project-level] | `PhpInjectionExternalFragmentSubstProvider` |
| ![Internal][internal] | `PhpKeyTypeProvider` |
| ![Internal][internal] | `PhpLibraryRootProvider` |
| ![Internal][internal] | `PhpMagicHandler` |
| ![Internal][internal] | `PhpMetaSignatureResolver` |
| ![Internal][internal] | `PhpMetaTableProvider` |
| | `PhpNoReturnProvider` |
| | `Settings` |
| ![Internal][internal] | `PhpUnitSettingsLoader` |
| | `PhpPredefinedVariableProvider` |
| | `PhpMultipleDeclarationFilter` |
| ![Experimental][experimental] | `PhpReferenceScopeExtension` |
| | `RelatedToPhpFilesContributor` |
| | `PhpRemoteInterpreterManager` |
| ![Internal][internal] | `TemplateLanguageBackgroundColorProvider` |
| ![Deprecated][deprecated] ![Internal][internal] | `PhpTestFrameworkOldConfigHolder` |
| | `PhpTestFrameworkType` |
| | `LaravelPintConfigurationProvider` |
| | `MessDetectorConfigurationProvider` |
| | `PhpCSFixerConfigurationProvider` |
| | `PhpCSConfigurationProvider` |
| | `QualityToolType` |
| ![Deprecated][deprecated] | `PhpTypeProvider3` |
| | `PhpTypeProvider4` |
### com.jetbrains.php.behat
| Extension Point | Implementation |
|-----------------|----------------|
| | `ContextInterfaceProvider` |
### com.jetbrains.php.blade
| Extension Point | Implementation |
|-----------------|----------------|
| ![Experimental][experimental] | `BladeDirectiveContributor` |
### com.jetbrains.php.framework
| Extension Point | Implementation |
|-----------------|----------------|
| ![Internal][internal] | `FrameworkDescriptionProvider` |
### intellij.php.frontback.impl.xml
| Extension Point | Implementation |
|-----------------|----------------|
| ![Internal][internal] | `PhpDocTagParser` |
### phpstorm-remote-interpreter-plugin.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `PhpProjectConfigComponentProvider` |
| | `PhpHelperScriptProvider` |
| | `PhpRemoteProcessManager` |
[deprecated]: https://img.shields.io/badge/-Deprecated-lightgrey?style=flat-square
[removal]: https://img.shields.io/badge/-Removal-red?style=flat-square
[obsolete]: https://img.shields.io/badge/-Obsolete-grey?style=flat-square
[experimental]: https://img.shields.io/badge/-Experimental-violet?style=flat-square
[internal]: https://img.shields.io/badge/-Internal-darkred?style=flat-square
[project-level]: https://img.shields.io/badge/-Project--Level-blue?style=flat-square
[non-dynamic]: https://img.shields.io/badge/-Non--Dynamic-orange?style=flat-square
[dumb-aware]: https://img.shields.io/badge/-DumbAware-darkgreen?style=flat-square