TYPO3 v13

This commit is contained in:
Daniel Siepmann (Codappix) 2025-01-28 08:13:18 +01:00
parent 891871a8ef
commit 6466a2d828
SSH key fingerprint: SHA256:nAjx3Dpp8kuAC+S7QXj8BWmqw+KI1Miu+5e40BP3LXA
14 changed files with 76 additions and 34 deletions

View file

@ -23,6 +23,7 @@ jobs:
- 8.1 - 8.1
- 8.2 - 8.2
- 8.3 - 8.3
- 8.4
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
@ -45,7 +46,7 @@ jobs:
- name: Install PHP - name: Install PHP
uses: shivammathur/setup-php@v2 uses: shivammathur/setup-php@v2
with: with:
php-version: "8.2" php-version: "8.4"
coverage: none coverage: none
tools: composer:v2 tools: composer:v2
@ -76,6 +77,7 @@ jobs:
with: with:
coverage: none coverage: none
tools: composer:v2 tools: composer:v2
# Lower version due to php-cs-fixer
php-version: "8.3" php-version: "8.3"
- name: Install dependencies - name: Install dependencies
@ -97,6 +99,14 @@ jobs:
typo3-version: '^12.4' typo3-version: '^12.4'
- php-version: '8.3' - php-version: '8.3'
typo3-version: '^12.4' typo3-version: '^12.4'
- php-version: '8.4'
typo3-version: '^12.4'
- php-version: '8.2'
typo3-version: '^13.4'
- php-version: '8.3'
typo3-version: '^13.4'
- php-version: '8.4'
typo3-version: '^13.4'
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
@ -126,6 +136,14 @@ jobs:
typo3-version: '^12.4' typo3-version: '^12.4'
- php-version: '8.3' - php-version: '8.3'
typo3-version: '^12.4' typo3-version: '^12.4'
- php-version: '8.4'
typo3-version: '^12.4'
- php-version: '8.2'
typo3-version: '^13.4'
- php-version: '8.3'
typo3-version: '^13.4'
- php-version: '8.4'
typo3-version: '^13.4'
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3

View file

@ -0,0 +1,28 @@
2.1.0
=====
Breaking
--------
Nothing
Features
--------
* Add compatibility for TYPO3 v13.4 and PHP 8.4.
Fixes
-----
Nothing
Tasks
-----
Nothing
Deprecation
-----------
Nothing

View file

@ -21,8 +21,8 @@ return [
'clear' => 3, 'clear' => 3,
'constants' => 'databasePlatform = mysql', 'constants' => 'databasePlatform = mysql',
'config' => ' 'config' => '
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:calendar_example/Configuration/TypoScript/Setup.typoscript"> @import "EXT:calendar_example/Configuration/TypoScript/setup.typoscript"
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:fluid_styled_content/Configuration/TypoScript/setup.typoscript"> @import "EXT:fluid_styled_content/Configuration/TypoScript/setup.typoscript"
', ',
], ],
], ],

View file

@ -275,7 +275,7 @@ class CalendarControllerTest extends FunctionalTestCase
self::assertSame(200, $result->getStatusCode()); self::assertSame(200, $result->getStatusCode());
$html = $result->getBody()->__toString(); $html = $result->getBody()->__toString();
self::assertStringContainsString((new DateFormatter())->strftime('%B %Y', 'now', 'de-DE'), $html); self::assertStringContainsString((new DateFormatter())->strftime('%B %Y', 'now', 'en-GB'), $html);
self::assertStringContainsString('exampleValue', $html); self::assertStringContainsString('exampleValue', $html);
} }

View file

@ -33,7 +33,7 @@ class ContextTest extends TestCase
#[Test] #[Test]
public function canBeCreatedFromContentObjectRenderer(): void public function canBeCreatedFromContentObjectRenderer(): void
{ {
$contentObjectRenderer = $this->createStub(ContentObjectRenderer::class); $contentObjectRenderer = self::createStub(ContentObjectRenderer::class);
$subject = Context::createFromContentObjectRenderer($contentObjectRenderer); $subject = Context::createFromContentObjectRenderer($contentObjectRenderer);
self::assertInstanceOf(Context::class, $subject); self::assertInstanceOf(Context::class, $subject);
@ -42,7 +42,7 @@ class ContextTest extends TestCase
#[Test] #[Test]
public function providesTableNameInheritedFromContentObjectRenderer(): void public function providesTableNameInheritedFromContentObjectRenderer(): void
{ {
$contentObjectRenderer = $this->createStub(ContentObjectRenderer::class); $contentObjectRenderer = self::createStub(ContentObjectRenderer::class);
$contentObjectRenderer->method('getCurrentTable')->willReturn('tx_calendar_example_table'); $contentObjectRenderer->method('getCurrentTable')->willReturn('tx_calendar_example_table');
$subject = Context::createFromContentObjectRenderer($contentObjectRenderer); $subject = Context::createFromContentObjectRenderer($contentObjectRenderer);
@ -52,7 +52,7 @@ class ContextTest extends TestCase
#[Test] #[Test]
public function providesDatabaseRowInheritedFromContentObjectRenderer(): void public function providesDatabaseRowInheritedFromContentObjectRenderer(): void
{ {
$contentObjectRenderer = $this->createStub(ContentObjectRenderer::class); $contentObjectRenderer = self::createStub(ContentObjectRenderer::class);
$contentObjectRenderer->data = [ $contentObjectRenderer->data = [
'uid' => 10, 'uid' => 10,
'pid' => 1, 'pid' => 1,

View file

@ -107,7 +107,7 @@ class DayTest extends TestCase
{ {
$subject = new Day(new \DateTime('2020-10-19')); $subject = new Day(new \DateTime('2020-10-19'));
$foreignData = $this->createStub(IsDayActive::class); $foreignData = self::createStub(IsDayActive::class);
$foreignData->method('isActive')->willReturn(false); $foreignData->method('isActive')->willReturn(false);
$this->forceProperty($subject, 'initialized', true); $this->forceProperty($subject, 'initialized', true);
@ -121,10 +121,10 @@ class DayTest extends TestCase
{ {
$subject = new Day(new \DateTime('2020-10-19')); $subject = new Day(new \DateTime('2020-10-19'));
$foreignData = $this->createStub(IsDayActive::class); $foreignData = self::createStub(IsDayActive::class);
$foreignData->method('isActive')->willReturn(true); $foreignData->method('isActive')->willReturn(true);
$factory = $this->createStub(ForeignDataFactory::class); $factory = self::createStub(ForeignDataFactory::class);
$factory->method('getData')->willReturn($foreignData); $factory->method('getData')->willReturn($foreignData);
GeneralUtility::addInstance(ForeignDataFactory::class, $factory); GeneralUtility::addInstance(ForeignDataFactory::class, $factory);

View file

@ -183,7 +183,7 @@ class MonthTest extends TestCase
{ {
$subject = new Month(02, 2018); $subject = new Month(02, 2018);
$week = $this->createStub(Week::class); $week = self::createStub(Week::class);
$week->method('isActive')->willReturn(false); $week->method('isActive')->willReturn(false);
$weeks = [$week]; $weeks = [$week];
$this->forceProperty($subject, 'weeks', $weeks); $this->forceProperty($subject, 'weeks', $weeks);
@ -196,9 +196,9 @@ class MonthTest extends TestCase
{ {
$subject = new Month(02, 2018); $subject = new Month(02, 2018);
$week = $this->createStub(Week::class); $week = self::createStub(Week::class);
$week->method('isActive')->willReturn(true); $week->method('isActive')->willReturn(true);
$week2 = $this->createStub(Week::class); $week2 = self::createStub(Week::class);
$week2->method('isActive')->willReturn(false); $week2->method('isActive')->willReturn(false);
$weeks = [$week, $week2]; $weeks = [$week, $week2];
$this->forceProperty($subject, 'weeks', $weeks); $this->forceProperty($subject, 'weeks', $weeks);

View file

@ -32,7 +32,7 @@ class NullDataFactoryTest extends TestCase
public function returnsNull(): void public function returnsNull(): void
{ {
$subject = new NullDataFactory(); $subject = new NullDataFactory();
$day = $this->createStub(Day::class); $day = self::createStub(Day::class);
self::assertNull($subject->getData($day)); self::assertNull($subject->getData($day));
} }
} }

View file

@ -175,7 +175,7 @@ class WeekTest extends TestCase
{ {
$subject = new Week(02, 2018); $subject = new Week(02, 2018);
$day = $this->createStub(Day::class); $day = self::createStub(Day::class);
$day->method('isActive')->willReturn(false); $day->method('isActive')->willReturn(false);
$days = [$day]; $days = [$day];
$this->forceProperty($subject, 'days', $days); $this->forceProperty($subject, 'days', $days);
@ -188,9 +188,9 @@ class WeekTest extends TestCase
{ {
$subject = new Week(02, 2018); $subject = new Week(02, 2018);
$day = $this->createStub(Day::class); $day = self::createStub(Day::class);
$day->method('isActive')->willReturn(true); $day->method('isActive')->willReturn(true);
$day2 = $this->createStub(Day::class); $day2 = self::createStub(Day::class);
$day2->method('isActive')->willReturn(false); $day2->method('isActive')->willReturn(false);
$days = [$day, $day2]; $days = [$day, $day2];
$this->forceProperty($subject, 'days', $days); $this->forceProperty($subject, 'days', $days);

View file

@ -114,7 +114,7 @@ class YearTest extends TestCase
{ {
$subject = new Year(2020); $subject = new Year(2020);
$month = $this->createStub(Month::class); $month = self::createStub(Month::class);
$month->method('isActive')->willReturn(false); $month->method('isActive')->willReturn(false);
$months = [$month]; $months = [$month];
$this->forceProperty($subject, 'months', $months); $this->forceProperty($subject, 'months', $months);
@ -127,7 +127,7 @@ class YearTest extends TestCase
{ {
$subject = new Year(2020); $subject = new Year(2020);
$month = $this->createStub(Month::class); $month = self::createStub(Month::class);
$month->method('isActive')->willReturn(true); $month->method('isActive')->willReturn(true);
$months = [$month]; $months = [$month];
$this->forceProperty($subject, 'months', $months); $this->forceProperty($subject, 'months', $months);

View file

@ -20,12 +20,12 @@
"minimum-stability": "dev", "minimum-stability": "dev",
"prefer-stable": true, "prefer-stable": true,
"require": { "require": {
"php": "~8.1.0 || ~8.2.0 || ~8.3.0", "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0",
"typo3/cms-backend": "^12.4", "typo3/cms-backend": "^12.4 || ^13.4",
"typo3/cms-core": "^12.4", "typo3/cms-core": "^12.4 || ^13.4",
"typo3/cms-extbase": "^12.4", "typo3/cms-extbase": "^12.4 || ^13.4",
"typo3/cms-fluid-styled-content": "^12.4", "typo3/cms-fluid-styled-content": "^12.4 || ^13.4",
"typo3/cms-frontend": "^12.4" "typo3/cms-frontend": "^12.4 || ^13.4"
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {

View file

@ -10,7 +10,7 @@ $EM_CONF['calendar'] = [
'state' => 'alpha', 'state' => 'alpha',
'uploadfolder' => 0, 'uploadfolder' => 0,
'clearCacheOnLoad' => 0, 'clearCacheOnLoad' => 0,
'version' => '2.0.0', 'version' => '2.1.0',
'constraints' => [ 'constraints' => [
'depends' => [ 'depends' => [
'typo3' => '*', 'typo3' => '*',

View file

@ -1,7 +1,7 @@
{ pkgs ? import <nixpkgs> { } }: { pkgs ? import <nixpkgs> { } }:
let let
php = pkgs.php82.buildEnv { php = pkgs.php84.buildEnv {
extensions = { enabled, all }: enabled ++ (with all; [ extensions = { enabled, all }: enabled ++ (with all; [
xdebug xdebug
]); ]);
@ -20,7 +20,7 @@ let
]; ];
text = '' text = ''
rm -rf vendor/ .Build/ rm -rf vendor/ .Build/
composer install --prefer-dist --no-progress --working-dir="$PROJECT_ROOT" composer install --prefer-dist --no-progress
''; '';
}; };
@ -35,7 +35,7 @@ let
''; '';
}; };
in pkgs.mkShell { in pkgs.mkShellNoCC {
name = "TYPO3 Extension Watchlist"; name = "TYPO3 Extension Watchlist";
buildInputs = [ buildInputs = [
projectInstall projectInstall
@ -44,9 +44,5 @@ in pkgs.mkShell {
composer composer
]; ];
shellHook = '' typo3DatabaseDriver = "pdo_sqlite";
export PROJECT_ROOT="$(pwd)"
export typo3DatabaseDriver=pdo_sqlite
'';
} }