From 530e4c30dd7a42cb9d7cf91e3277e46f49641761 Mon Sep 17 00:00:00 2001 From: Matt Stauffer Date: Sun, 13 Mar 2022 22:17:50 -0400 Subject: [PATCH] Update normalizePhpVersion regex Handle "php@8.1" Simplify the entire method into one block Co-Authored-By: Nathan Morgan --- cli/Valet/PhpFpm.php | 6 +----- tests/PhpFpmTest.php | 9 +++++++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/cli/Valet/PhpFpm.php b/cli/Valet/PhpFpm.php index f8b487e..59554ff 100644 --- a/cli/Valet/PhpFpm.php +++ b/cli/Valet/PhpFpm.php @@ -311,11 +311,7 @@ public function symlinkPrimaryValetSock($phpVersion) */ public function normalizePhpVersion($version) { - if (strpos($version, 'php') === false) { - $version = 'php'.$version; - } - - return preg_replace('/(php)([0-9+])(?:.)?([0-9+])/i', '$1@$2.$3', $version); + return preg_replace('/(?:php@?)?([0-9+])(?:.)?([0-9+])/i', 'php@$1.$2', $version); } /** diff --git a/tests/PhpFpmTest.php b/tests/PhpFpmTest.php index ecfa5c1..9d810af 100644 --- a/tests/PhpFpmTest.php +++ b/tests/PhpFpmTest.php @@ -51,6 +51,15 @@ public function test_it_can_generate_sock_file_name_from_php_version() $this->assertEquals('valet72.sock', resolve(PhpFpm::class)->fpmSockName('72')); } + public function test_it_normalizes_php_versions() + { + $this->assertEquals('php@8.1', resolve(PhpFpm::class)->normalizePhpVersion('php@8.1')); + $this->assertEquals('php@8.1', resolve(PhpFpm::class)->normalizePhpVersion('php8.1')); + $this->assertEquals('php@8.1', resolve(PhpFpm::class)->normalizePhpVersion('php81')); + $this->assertEquals('php@8.1', resolve(PhpFpm::class)->normalizePhpVersion('8.1')); + $this->assertEquals('php@8.1', resolve(PhpFpm::class)->normalizePhpVersion('81')); + } + public function test_utilized_php_versions() { $fileSystemMock = Mockery::mock(Filesystem::class);