From ac4b8f6f4026a66e3a243dab03110849a2b3f71e Mon Sep 17 00:00:00 2001 From: Matt Stauffer Date: Tue, 20 Dec 2022 12:13:34 -0500 Subject: [PATCH] Add type hints and return types to PhpFpm --- cli/Valet/PhpFpm.php | 40 ++++++++++++++++++++++------------------ tests/PhpFpmTest.php | 2 +- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/cli/Valet/PhpFpm.php b/cli/Valet/PhpFpm.php index 72ce377..714a624 100644 --- a/cli/Valet/PhpFpm.php +++ b/cli/Valet/PhpFpm.php @@ -3,6 +3,7 @@ namespace Valet; use DomainException; +use Illuminate\Support\Collection; class PhpFpm { @@ -44,7 +45,7 @@ public function __construct(Brew $brew, CommandLine $cli, Filesystem $files, Con * * @return void */ - public function install() + public function install(): void { info('Installing and configuring phpfpm...'); @@ -71,7 +72,7 @@ public function install() * * @return void */ - public function uninstall() + public function uninstall(): void { $this->brew->uninstallAllPhpVersions(); rename(BREW_PREFIX.'/etc/php', BREW_PREFIX.'/etc/php-valet-bak'.time()); @@ -86,7 +87,7 @@ public function uninstall() * @param string $phpVersion * @return void */ - public function createConfigurationFiles($phpVersion) + public function createConfigurationFiles(string $phpVersion): void { info("Updating PHP configuration for {$phpVersion}..."); @@ -135,7 +136,7 @@ public function createConfigurationFiles($phpVersion) * @param string|null $phpVersion * @return void */ - public function restart($phpVersion = null) + public function restart(?string $phpVersion = null): void { $this->brew->restartService($phpVersion ?: $this->utilizedPhpVersions()); } @@ -145,7 +146,7 @@ public function restart($phpVersion = null) * * @return void */ - public function stop() + public function stop(): void { call_user_func_array( [$this->brew, 'stopService'], @@ -159,7 +160,7 @@ public function stop() * @param string|null $phpVersion * @return string */ - public function fpmConfigPath($phpVersion = null) + public function fpmConfigPath(?string $phpVersion = null): string { if (! $phpVersion) { $phpVersion = $this->brew->linkedPhp(); @@ -174,7 +175,7 @@ public function fpmConfigPath($phpVersion = null) /** * Stop only the running php services. */ - public function stopRunning() + public function stopRunning(): void { $this->brew->stopService( $this->brew->getAllRunningServices() @@ -191,7 +192,7 @@ public function stopRunning() * @param string|null $phpVersion * @return void */ - public function stopIfUnused($phpVersion = null) + public function stopIfUnused(?string $phpVersion = null): void { if (! $phpVersion) { return; @@ -211,7 +212,7 @@ public function stopIfUnused($phpVersion = null) * @param string $version * @return void */ - public function isolateDirectory($directory, $version) + public function isolateDirectory(string $directory, string $version): void { $site = $this->site->getSiteUrl($directory); @@ -237,7 +238,7 @@ public function isolateDirectory($directory, $version) * @param string $directory * @return void */ - public function unIsolateDirectory($directory) + public function unIsolateDirectory(string $directory): void { $site = $this->site->getSiteUrl($directory); @@ -253,9 +254,9 @@ public function unIsolateDirectory($directory) /** * List all directories with PHP isolation configured. * - * @return \Illuminate\Support\Collection + * @return Collection */ - public function isolatedDirectories() + public function isolatedDirectories(): Collection { return $this->nginx->configuredSites()->filter(function ($item) { return strpos($this->files->get(VALET_HOME_PATH.'/Nginx/'.$item), ISOLATED_PHP_VERSION) !== false; @@ -271,7 +272,7 @@ public function isolatedDirectories() * @param bool $force * @return string|void */ - public function useVersion($version, $force = false) + public function useVersion(string $version, bool $force = false): ?string { $version = $this->validateRequestedVersion($version); @@ -316,15 +317,18 @@ public function useVersion($version, $force = false) * @param string $phpVersion * @return void */ - public function symlinkPrimaryValetSock($phpVersion) + public function symlinkPrimaryValetSock(string $phpVersion): void { $this->files->symlinkAsUser(VALET_HOME_PATH.'/'.$this->fpmSockName($phpVersion), VALET_HOME_PATH.'/valet.sock'); } /** * If passed php7.4, or php74, 7.4, or 74 formats, normalize to php@7.4 format. + * + * @param string|null + * @return string */ - public function normalizePhpVersion($version) + public function normalizePhpVersion(?string $version): string { return preg_replace('/(?:php@?)?([0-9+])(?:.)?([0-9+])/i', 'php@$1.$2', (string) $version); } @@ -335,7 +339,7 @@ public function normalizePhpVersion($version) * @param string $version * @return string */ - public function validateRequestedVersion($version) + public function validateRequestedVersion(string $version): string { if (is_null($version)) { throw new DomainException("Please specify a PHP version (try something like 'php@8.1')"); @@ -366,7 +370,7 @@ public function validateRequestedVersion($version) * @param string|null $phpVersion * @return string */ - public static function fpmSockName($phpVersion = null) + public static function fpmSockName(?string $phpVersion = null): string { $versionInteger = preg_replace('~[^\d]~', '', $phpVersion); @@ -379,7 +383,7 @@ public static function fpmSockName($phpVersion = null) * * @return array */ - public function utilizedPhpVersions() + public function utilizedPhpVersions(): array { $fpmSockFiles = $this->brew->supportedPhpVersions()->map(function ($version) { return self::fpmSockName($this->normalizePhpVersion($version)); diff --git a/tests/PhpFpmTest.php b/tests/PhpFpmTest.php index 7b5cc4d..d2abc69 100644 --- a/tests/PhpFpmTest.php +++ b/tests/PhpFpmTest.php @@ -448,7 +448,7 @@ public function test_isolate_will_throw_if_site_is_not_parked_or_linked() class StubForUpdatingFpmConfigFiles extends PhpFpm { - public function fpmConfigPath($phpVersion = null) + public function fpmConfigPath(?string $phpVersion = null): string { return __DIR__.'/output/fpm.conf'; }