PHPackages                             code711/speedupyaml - 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. code711/speedupyaml

ActiveTypo3-cms-extension

code711/speedupyaml
===================

This extension provides an XCLASS for TYPO3\\CMS\\Core\\Configuration\\Loader\\YamlFileLoader to use the pecl extension YAML if available instead of the Symfonies\\'s Yaml::parse. This extension is experimental and a proof-of-concept. It might work in production.

0606↓50%PHP

Since Jun 26Pushed 1y ago1 watchersCompare

[ Source](https://github.com/codeseveneleven/speedupyaml)[ Packagist](https://packagist.org/packages/code711/speedupyaml)[ RSS](/packages/code711-speedupyaml/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

TYPO3 speed up yaml parsing
===========================

[](#typo3-speed-up-yaml-parsing)

[![Latest Stable Version](https://camo.githubusercontent.com/6f746150fc73f629162aa20016c53fe9b376f9e9b2b6fae5845e39b495472c34/68747470733a2f2f706f7365722e707567782e6f72672f636f64653731312f7370656564757079616d6c2f762f737461626c652e737667)](https://extensions.typo3.org/code711/speedupyaml/)[![TYPO3 12](https://camo.githubusercontent.com/08afacc49187e63c796f7d1c4401d0f0563bab574d9c525312b2827acb09a7c5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5459504f332d31322d6f72616e67652e737667)](https://get.typo3.org/version/12)[![TYPO3 11](https://camo.githubusercontent.com/5432de37ab8517e6d9e6f803a2e1a7674a308c6d93896fe8a6fbc8a4cb50aece/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5459504f332d31312d6f72616e67652e737667)](https://get.typo3.org/version/11)[![TYPO3 10](https://camo.githubusercontent.com/614ff8ea70de89b6c0ffa951832460b9b407e0c321814a05fe00c02fe6999487/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5459504f332d31302d6f72616e67652e737667)](https://get.typo3.org/version/10)[![Total Downloads](https://camo.githubusercontent.com/ce48ed61f59fa1a502ab18a316c811294ad3f15f5b8f8fe549a27318af866ce4/68747470733a2f2f706f7365722e707567782e6f72672f636f64653731312f7370656564757079616d6c2f642f746f74616c2e737667)](https://packagist.org/packages/code711/speedupyaml)[![Monthly Downloads](https://camo.githubusercontent.com/2cc369b36bfcc29b221a4e301e7fa7e9f0b0fa6e63ebd432e634ed9c1b6e4a65/68747470733a2f2f706f7365722e707567782e6f72672f636f64653731312f7370656564757079616d6c2f642f6d6f6e74686c79)](https://packagist.org/packages/code711/speedupyaml)

This extension is a proof of concept but should work in production as well.

TYPO3 uses the [Symfony Yaml Component](https://symfony.com/doc/current/components/yaml.html) to parse YAML files. This is especially done in the TYPO3 Core class [TYPO3\\Core\\Configuration\\Loader\\YamlFileLoader](https://github.com/TYPO3-CMS/core/blob/main/Classes/Configuration/Loader/YamlFileLoader.php) using the Symfony `Yaml::parse` method.

Me - and others - were under the impression that `Yaml::parse` will fall back to the [PECL Yaml Extension](https://pecl.php.net/package/yaml) using [yaml\_parse](https://www.php.net/yaml_parse) if available.

***This is not the case, and seemingly never has been***

This extension will [XCLASS](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Xclasses/Index.html) the TYPO3 core class `TYPO3\\Core\\Configuration\\Loader\\YamlFileLoader` and extend the method `TYPO3\\Core\\Configuration\\Loader\\YamlFileLoader::loadAndParse` so it will use the PECL yaml extension.

The PECL yaml extension will then use the official YAML parser written in C, making the parsing of YAML files about 40% faster.

### Problems(?) / Limitations

[](#problems--limitations)

The feature set of the PECL yaml extensions is different from the Symfony YAML Component, which does **not** cover the whole feature set of YAML, while the PECL extension does. This **COULD** lead to different results when parsing the same file.

Additionally, the Symfony Yaml Component might handle edge-cases differently than the PECL extension. I don't have enough examples what that might be, but in my TYPO3 centric tests everything resulted in the same parsed array.

This XCLASS will do nothing for EXT:forms. Helmut Hummels [helhum/typo3-config-handling](https://github.com/helhum/typo3-config-handling) does something similar, but only for the scope of the extension. I actually took my inspiration for handling the error-cases `yaml_parse` might throw from this extension as an example.

I will not publish this extension to the TER for now, as this is something that should be handled in the core itself.

It should work on TYPO3 10, 11 and 12 as the `TYPO3\\Core\\Configuration\\Loader\\YamlFileLoader` class did not change in the regards that matter for the case here over that time.

###  Health Score

18

—

LowBetter than 8% of packages

Maintenance27

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity18

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/35fe42b338d9a56b03685815a4d6b198d7d78be7d75859f0e8978c88f4605afe?d=identicon)[code711](/maintainers/code711)

---

Top Contributors

[![foppelfb](https://avatars.githubusercontent.com/u/7147768?v=4)](https://github.com/foppelfb "foppelfb (6 commits)")

### Embed Badge

![Health badge](/badges/code711-speedupyaml/health.svg)

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

PHPackages © 2026

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