Skip to content

Commit

Permalink
Showing 6 changed files with 22 additions and 20 deletions.
2 changes: 1 addition & 1 deletion cli/Valet/PhpFpm.php
Original file line number Diff line number Diff line change
@@ -258,7 +258,7 @@ public function isolatedDirectories()
$configuredSites = $this->nginx->configuredSites();

return $configuredSites->filter(function ($item) {
return strpos($this->files->get(VALET_HOME_PATH.'/Nginx/'.$item), 'Valet isolated PHP version') !== false;
return strpos($this->files->get(VALET_HOME_PATH.'/Nginx/'.$item), ISOLATED_PHP_VERSION) !== false;
})->map(function ($item) {
return ['url' => $item, 'version' => $this->normalizePhpVersion($this->site->customPhpVersion($item))];
});
6 changes: 3 additions & 3 deletions cli/Valet/Site.php
Original file line number Diff line number Diff line change
@@ -1082,7 +1082,7 @@ public function customPhpVersion($url)
if ($this->files->exists($this->nginxPath($url))) {
$siteConf = $this->files->get($this->nginxPath($url));

if (starts_with($siteConf, '# Valet isolated PHP version')) {
if (starts_with($siteConf, '# '.ISOLATED_PHP_VERSION)) {
$firstLine = explode(PHP_EOL, $siteConf)[0];

return preg_replace("/[^\d]*/", '', $firstLine); // Example output: "74" or "81"
@@ -1102,8 +1102,8 @@ public function replaceSockFile($siteConf, $phpVersion)
$sockFile = PhpFpm::fpmSockName($phpVersion);

$siteConf = preg_replace('/valet[0-9]*.sock/', $sockFile, $siteConf);
$siteConf = preg_replace('/# Valet isolated PHP version.*\n/', '', $siteConf); // Remove `Valet isolated PHP version` line from config
$siteConf = preg_replace('/# '.ISOLATED_PHP_VERSION.'.*\n/', '', $siteConf); // Remove ISOLATED_PHP_VERSION line from config

return '# Valet isolated PHP version: '.$phpVersion.PHP_EOL.$siteConf;
return '# '.ISOLATED_PHP_VERSION.'='.$phpVersion.PHP_EOL.$siteConf;
}
}
2 changes: 2 additions & 0 deletions cli/includes/helpers.php
Original file line number Diff line number Diff line change
@@ -23,6 +23,8 @@

define('BREW_PREFIX', (new CommandLine())->runAsUser('printf $(brew --prefix)'));

define('ISOLATED_PHP_VERSION', 'ISOLATED_PHP_VERSION');

/**
* Output the given text to the console.
*
2 changes: 1 addition & 1 deletion cli/stubs/site.valet.conf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Valet isolated PHP version: VALET_ISOLATED_PHP_VERSION
# ISOLATED_PHP_VERSION=VALET_ISOLATED_PHP_VERSION
server {
listen 127.0.0.1:80;
server_name VALET_SITE www.VALET_SITE *.VALET_SITE;
10 changes: 5 additions & 5 deletions tests/PhpFpmTest.php
Original file line number Diff line number Diff line change
@@ -98,15 +98,15 @@ public function test_utilized_php_versions()
$sites = [
[
'site' => 'isolated-site-71.test',
'conf' => '# Valet isolated PHP version: 71'.PHP_EOL.'valet71.sock',
'conf' => '# '.ISOLATED_PHP_VERSION.'=71'.PHP_EOL.'valet71.sock',
],
[
'site' => 'isolated-site-72.test',
'conf' => '# Valet isolated PHP version: [email protected]'.PHP_EOL.'valet72.sock',
'conf' => '# '.ISOLATED_PHP_VERSION.'=[email protected]'.PHP_EOL.'valet72.sock',
],
[
'site' => 'isolated-site-73.test',
'conf' => '# Valet isolated PHP version: 73'.PHP_EOL.'valet.sock',
'conf' => '# '.ISOLATED_PHP_VERSION.'=73'.PHP_EOL.'valet.sock',
],
];

@@ -146,11 +146,11 @@ public function test_it_lists_isolated_directories()
$sites = [
[
'site' => 'isolated-site-71.test',
'conf' => '# Valet isolated PHP version: 71'.PHP_EOL.'valet71.sock',
'conf' => '# '.ISOLATED_PHP_VERSION.'=71'.PHP_EOL.'valet71.sock',
],
[
'site' => 'isolated-site-72.test',
'conf' => '# Valet isolated PHP version: [email protected]'.PHP_EOL.'valet72.sock',
'conf' => '# '.ISOLATED_PHP_VERSION.'=[email protected]'.PHP_EOL.'valet72.sock',
],
[
'site' => 'not-isolated-site.test',
20 changes: 10 additions & 10 deletions tests/SiteTest.php
Original file line number Diff line number Diff line change
@@ -659,13 +659,13 @@ public function test_can_install_nginx_site_config_for_specific_php_version()
$files->shouldReceive('get')
->once()
->with($siteMock->nginxPath('site1.test'))
->andReturn('# Valet isolated PHP version: [email protected]'.PHP_EOL.'server { fastcgi_pass: valet74.sock }');
->andReturn('# '.ISOLATED_PHP_VERSION.'=[email protected]'.PHP_EOL.'server { fastcgi_pass: valet74.sock }');

$files->shouldReceive('putAsUser')
->once()
->withArgs([
$siteMock->nginxPath('site1.test'),
'# Valet isolated PHP version: [email protected]'.PHP_EOL.'server { fastcgi_pass: valet80.sock }',
'# '.ISOLATED_PHP_VERSION.'=[email protected]'.PHP_EOL.'server { fastcgi_pass: valet80.sock }',
]);

$siteMock->isolate('site1.test', '[email protected]');
@@ -682,7 +682,7 @@ public function test_can_install_nginx_site_config_for_specific_php_version()
->withArgs([
$siteMock->nginxPath('site2.test'),
Mockery::on(function ($argument) {
return preg_match('/^# Valet isolated PHP version: [email protected]/', $argument)
return preg_match('/^# '.ISOLATED_PHP_VERSION.'=[email protected]/', $argument)
&& preg_match('#fastcgi_pass "unix:.*/valet80.sock#', $argument)
&& strpos($argument, 'server_name site2.test www.site2.test *.site2.test;') !== false;
}),
@@ -733,7 +733,7 @@ public function test_retrieves_custom_php_version_from_nginx_config()
$files->shouldReceive('get')
->once()
->with($siteMock->nginxPath('site1.test'))
->andReturn('# Valet isolated PHP version: [email protected]');
->andReturn('# '.ISOLATED_PHP_VERSION.'=[email protected]');
$this->assertEquals('74', resolve(Site::class)->customPhpVersion('site1.test'));

// Site without any custom nginx config
@@ -757,28 +757,28 @@ public function test_replace_sock_file_in_nginx_config()
// When switching to php71, valet71.sock should be replaced with valet.sock;
// isolation header should be prepended
$this->assertEquals(
'# Valet isolated PHP version: 71'.PHP_EOL.'server { fastcgi_pass: valet71.sock }',
'# '.ISOLATED_PHP_VERSION.'=71'.PHP_EOL.'server { fastcgi_pass: valet71.sock }',
$site->replaceSockFile('server { fastcgi_pass: valet71.sock }', '71')
);

// When switching to php72, valet.sock should be replaced with valet72.sock
$this->assertEquals(
'# Valet isolated PHP version: 72'.PHP_EOL.'server { fastcgi_pass: valet72.sock }',
'# '.ISOLATED_PHP_VERSION.'=72'.PHP_EOL.'server { fastcgi_pass: valet72.sock }',
$site->replaceSockFile('server { fastcgi_pass: valet.sock }', '72')
);

// When switching to php73 from php72, valet72.sock should be replaced with valet73.sock;
// isolation header should be updated to [email protected]
$this->assertEquals(
'# Valet isolated PHP version: 73'.PHP_EOL.'server { fastcgi_pass: valet73.sock }',
$site->replaceSockFile('# Valet isolated PHP version: 72'.PHP_EOL.'server { fastcgi_pass: valet72.sock }', '73')
'# '.ISOLATED_PHP_VERSION.'=73'.PHP_EOL.'server { fastcgi_pass: valet73.sock }',
$site->replaceSockFile('# '.ISOLATED_PHP_VERSION.'=72'.PHP_EOL.'server { fastcgi_pass: valet72.sock }', '73')
);

// When switching to php72 from php74, valet72.sock should be replaced with valet74.sock;
// isolation header should be updated to [email protected]
$this->assertEquals(
'# Valet isolated PHP version: [email protected]'.PHP_EOL.'server { fastcgi_pass: valet74.sock }',
$site->replaceSockFile('# Valet isolated PHP version: 72'.PHP_EOL.'server { fastcgi_pass: valet.sock }', '[email protected]')
'# '.ISOLATED_PHP_VERSION.'=[email protected]'.PHP_EOL.'server { fastcgi_pass: valet74.sock }',
$site->replaceSockFile('# '.ISOLATED_PHP_VERSION.'=72'.PHP_EOL.'server { fastcgi_pass: valet.sock }', '[email protected]')
);
}

0 comments on commit 383aa62

Please sign in to comment.