TYPO3 Crawler with TYPO3 9 & 10 Support
Tags: typo3, php, crawler, extension
Published: 2020-04-14 14:47:05

11th of November 2018, I added the `typo3/cms-core:^9.5` to the composer dependency for the TYPO3 Crawler extension, the goal was set to make the Crawler compatible with TYPO3 9 LTS. 

Unfortunately, it's been a very look journey, also way too long, as we are facing the TYPO3 10 LTS release in just a couple of days. 

Finally, can I not only present a Crawler 9.0.0 which is compatible with TYPO3 9 LTS but at least as important also compatible with TYPO3 10LTS. 

### What has been added, changed or removed? 

It's too much to list here so I'll recommend to browser through the [changelog on Github](https://github.com/AOEpeople/crawler/blob/master/CHANGELOG.md).

####Breaking Changes

* Support for TYPO3 8
* Support for TYPO3 7
* PHP support for `<7.2` [@TomasVotruba](https://github.com/TomasVotruba)
* Remove root_template_pid option [@bmack](https://github.com/bmack)
* Dependency for `helhum/typo3-console`
* RealURL support
* "legacy" Scheduler Tasks
* nc_staticfile_cache hook not needed for TYPO3 9 LTS+

As integration the thing you need to pay most attention to is the Crawler Tasks, they need to be reconfigured as the Tasks classes are removed.

You will need to reconfigure them using the `Execute console commands` instead.

### Thanks to ...

All these changes wouldn't be possible without help from others, or perhaps, but then we would have a release before TYPO3 11 LTS ;) 

There have been 13 different contributors to the `typo3v9` development branch, since the beginning. Thanks a lot to everyone pushing changes, fixes etc. 

But of course also thanks to everyone contributing in the form of issues/bug reports and testing, this is also really important contributions, please keep doing that. 

There are four persons, especially that I want to thank for helping out during this period of time. Three of them and I really got kick-started at the TYPO3 Developer Days 2019 (hereafter T3DD19), and I got the motivation back to really get it off the table. 

**You might know them already:**

**Benni Mack**
[Github](https://github.com/bmack) [Twitter](https://twitter.com/bennimack)

Benni has helped the Crawler a lot getting closer to the TYPO3 Core and using more standard PHP Libraries, to have less Crawler specific code. He is also always a good sparing when having questions on best practises. 

He has for instance introduced/changed following into the crawler

* Execution Strategy classes
* Migrated FE hooks to PSR-15 middleware
* Backend Module switched to Fluid templates
* Implemented Site Handling

**Tizian Schmidlin**
[Github](https://github.com/cdro) [Twitter](https://twitter.com/TizianTweets)

Tizian started working on the Crawler even before I got to know him in person, at the T3DD19. Tizian has been taking care of most of the Doctrine migration and implemented the new Workers that is also included in the TYPO3 Core to decouple the Crawler dependency in `indexed_search`. 

**Tobias Stahn**
[Github](https://github.com/tstahn) [Twitter](https://twitter.com/tstahn_io)

I also got to know Tobias at the T3DD19, he had some question regarding the Crawler and we connected very well. 

Since then Tobias has been very helpful with e.g implementing Extension API to handle extension settings. Besides that Tobias also has been helping with improving the documentation and done a lot of testing and review. 

The last but not least person I want to say thank to is: 

**Tomáš Votruba**
[Github](https://github.com/TomasVotruba) [Twitter](https://twitter.com/VotrubaT)

Tomas isn't from the TYPO3 Community, but from [Rector](https://getrector.org/), he helped set up a better CI Pipeline with PHPStan, Rector, Coding Standards etc. This is something that will really benefit the TYPO3 Crawling in the future as it will be used in every commit forward in time.

Besides helping with the CI pipeline, he also helped clean up the code and removed support for `PHP <7.2` which makes the crawler or more modern codebase. There are still work to be done, but with the help from Tomas and Rector, the next steps to deprecated PHP 7.2 will be easier.

#### Thanks again

I cannot pay them for their help in any way besides saying thanks as often as possible, if you want to tip them a little something, I think you should be able to find a Paypal, Github sponsoring, amazon wishlists or similar somewhere on their social profiles.

### Sponsors

Of course, [AOE](https://aoe.com) is one of my biggest sponsors, as they have allowed me to do some of the work during my normal working hours. 

But they are not the only one to say thanks to. During the last one and a half year, some people has sponsored me over [Amazon Wishlist](https://www.amazon.de/hz/wishlist/ls/17UAQSDUH49DK), [Github Sponsor](https://github.com/tomasnorre), [Paypal](https://www.paypal.me/tomasnorre/10) and so on. 

It ranges from money and golf tees to Klarstein food processor, Ubiquiti cloud key and Ubiquiti switch. I'm thankful for every single piece of it, big or small, your appreciation is an important part, not the size of the gift/donation.

People/companies who have donated/sponsored me in that period are, no specific order.

* [DKD](https://dkd.de)
* [B13](https://b13.com)
* [Benni Mack](https://twitter.com/bennimack)
* [Olivier Dobberkau](https://twitter.com/T3RevNeverEnd)
* [Thomas Hempel](https://twitter.com/thomas_hempel)
* [Benjamin Kott](https://twitter.com/benjaminkott)
* [Kay Strobach](https://twitter.com/kaystrobach)
* [Richard Haeser](https://twitter.com/Haassie82)
* [Markus Günther](https://twitter.com/Markus306)
* [Benjamin Riezler](https://github.com/briezler)

Thanks to all of you!

It's important to mention that they have all been sponsoring me personally and not AOE, as most of the work in done in my spare time unrelated to my work at AOE. 

### Some fun facts

As already mentioned I started this work on the 11th of November 2018, roughly one and a half year ago. 

Since then we had:
* ~ 170 Commits
* 13 Contributors
* 319 files changed, 8236 insertions(+), 22502 deletions(-)

### Bug and issues
If you find any bugs or issues in general with the crawler please create and [issue on Github](https://github.com/aoepeople/crawler/issues)

### Future ?

The next period of time, I will of course take care of the bugs and issues being reported. 

My main work will be focussed on:

* Fixing the Functional tests for `TYPO3 ^10.3` - haven't proven any problems with the functionality, so decided to launch with 5 failing tests.
* Adding behaviour driven tests, there are already a few added to the pipeline but want more, to ease the development further. 
* Add better test coverage in general
* Refactor some of the "too big"-functions that make the maintenance to hard. 

Currently, there are no big features in the pipeline, but hoping to continue improving the code base, so the next update will get smaller and closer to the LTS releases of the TYPO3 CMS.

I am looking forward to what the next time will bring, 

\#HappyCrawling!