Skip to content

Commit

Permalink
🐛 Fix various minor issues (discovered via #162)
Browse files Browse the repository at this point in the history
- Renaming the configuration files from `www.conf` to the backup
  (`disabled-by-phpmon`) will now succeed if the `disabled-by-phpmon`
  file already exists. This would fail if the `disabled-by-phpmon` file
  already existed in previous builds.

- The PHP-FPM alert when there's an issue with a missing socket
  configuration file has been tweaked and now contains a workaround if
  you want to run a newer version of PHP (e.g. PHP 8.2) that is not
  officially supported by Valet yet.

- When attempting to list the PHP version numbers, the `parse()` method
  is now used, as opposed to `PhpVersionNumber.make()`, which couldn't
  correctly handle pre-release versions of PHP.

- Updated tests to reflect these changes to `PhpVersionNumber`.
  • Loading branch information
nicoverbruggen committed Apr 20, 2022
1 parent f3b1172 commit df506e4
Show file tree
Hide file tree
Showing 7 changed files with 22 additions and 12 deletions.
8 changes: 4 additions & 4 deletions PHP Monitor.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1324,7 +1324,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 757;
CURRENT_PROJECT_VERSION = 760;
DEBUG = YES;
DEVELOPMENT_TEAM = 8M54J5J787;
ENABLE_HARDENED_RUNTIME = YES;
Expand All @@ -1334,7 +1334,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
MARKETING_VERSION = 5.2.1;
MARKETING_VERSION = 5.2.2;
PRODUCT_BUNDLE_IDENTIFIER = com.nicoverbruggen.phpmon;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand All @@ -1350,7 +1350,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 757;
CURRENT_PROJECT_VERSION = 760;
DEBUG = NO;
DEVELOPMENT_TEAM = 8M54J5J787;
ENABLE_HARDENED_RUNTIME = YES;
Expand All @@ -1360,7 +1360,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
MARKETING_VERSION = 5.2.1;
MARKETING_VERSION = 5.2.2;
PRODUCT_BUNDLE_IDENTIFIER = com.nicoverbruggen.phpmon;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down
10 changes: 7 additions & 3 deletions phpmon-tests/Versions/PhpVersionNumberTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,24 @@ import XCTest
class PhpVersionNumberTest: XCTestCase {

func testCanDeconstructPhpVersion() throws {
XCTAssertEqual(
try! PhpVersionNumber.parse("PHP 8.2.0-dev"),
PhpVersionNumber(major: 8, minor: 2, patch: 0)
)
XCTAssertEqual(
try! PhpVersionNumber.parse("PHP 8.1.0RC5-dev"),
PhpVersionNumber(major: 8, minor: 1, patch: 0)
)
XCTAssertEqual(
PhpVersionNumber.make(from: "8.0.11"),
try! PhpVersionNumber.parse("8.0.11"),
PhpVersionNumber(major: 8, minor: 0, patch: 11)
)
XCTAssertEqual(
PhpVersionNumber.make(from: "7.4.2"),
try! PhpVersionNumber.parse("7.4.2"),
PhpVersionNumber(major: 7, minor: 4, patch: 2)
)
XCTAssertEqual(
PhpVersionNumber.make(from: "7.4"),
try! PhpVersionNumber.parse("7.4"),
PhpVersionNumber(major: 7, minor: 4, patch: nil)
)
XCTAssertEqual(
Expand Down
2 changes: 1 addition & 1 deletion phpmon/Common/Helpers/VersionExtractor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import Foundation
class VersionExtractor {

/**
This attempts to extract the version number from the command line output of Valet.
This attempts to extract the version number from any given string.
*/
public static func from(_ string: String) -> String? {
do {
Expand Down
2 changes: 1 addition & 1 deletion phpmon/Common/PHP/PHP Version/PhpVersionNumber.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public struct PhpVersionNumberCollection: Equatable {

public static func make(from versions: [String]) -> Self {
return PhpVersionNumberCollection(
versions: versions.map { PhpVersionNumber.make(from: $0)! }
versions: versions.map { try! PhpVersionNumber.parse($0) }
)
}

Expand Down
4 changes: 4 additions & 0 deletions phpmon/Common/PHP/Switcher/InternalSwitcher.swift
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ class InternalSwitcher: PhpSwitcher {
let existing = URL(string: "file://\(Paths.etcPath)/php/\(version)/php-fpm.d/www.conf")!
let new = URL(string: "file://\(Paths.etcPath)/php/\(version)/php-fpm.d/www.conf.disabled-by-phpmon")!
do {
if (FileManager.default.fileExists(atPath: new.path)) {
Log.info("A moved `www.conf.disabled-by-phpmon` file was found for PHP \(version), cleaning up so the newer `www.conf` can be moved again.")
try FileManager.default.removeItem(at: new)
}
try FileManager.default.moveItem(at: existing, to: new)
Log.info("Success: A default `www.conf` file was disabled for PHP \(version).")
} catch {
Expand Down
3 changes: 2 additions & 1 deletion phpmon/Domain/PHP/ActivePhpInstallation+Checks.swift
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ extension ActivePhpInstallation {
BetterAlert()
.withInformation(
title: "alert.php_fpm_broken.title".localized,
subtitle: "alert.php_fpm_broken.info".localized
subtitle: "alert.php_fpm_broken.info".localized,
description: "alert.php_fpm_broken.description".localized
)
.withPrimary(text: "OK")
.show()
Expand Down
5 changes: 3 additions & 2 deletions phpmon/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -262,8 +262,9 @@ problem manually, using your own Terminal app (this just shows you the output)."
"alert.fix_homebrew_permissions_done.desc" = "When you are done with Homebrew (after running `brew upgrade`, for example) you should restart PHP Monitor and select \"Restart All Services\" if you want Valet to work again. It is always recommended to restart PHP Monitor whenever you upgrade PHP versions with `brew upgrade`, or things might break.";

// PHP FPM Broken
"alert.php_fpm_broken.title" = "PHP-FPM configuration is incorrect";
"alert.php_fpm_broken.info" = "PHP Monitor has determined that there are issues with your PHP-FPM config: it's not pointing to the Valet socket. This will result in 502 Bad Gateway if you visit websites linked via Valet.\n\nYou can usually fix this by running\n`valet install`, which updates your\n PHP-FPM configuration.";
"alert.php_fpm_broken.title" = "Your PHP-FPM configuration is not pointing at the Valet socket!";
"alert.php_fpm_broken.info" = "PHP Monitor has determined that there are issues with your PHP-FPM config. This will result in '502 Bad Gateway' responses if you visit websites linked via Valet.";
"alert.php_fpm_broken.description" = "If it's been a while, you can usually fix this by running `valet install`, which updates your PHP-FPM configuration.\n\nIf you are seeing this message and you are trying to run a pre-release version of PHP, it is possible that Valet does not support this pre-release version of PHP yet.\n\nIf that is the case, you can try the following workaround: edit the file at `~/.composer/vendor/laravel/valet/cli/Valet/Brew.php` and add e.g. `[email protected]` to the `SUPPORTED_PHP_VERSIONS` array. After editing the file, try running `valet install`. (This will, if all goes well, set up all the required Valet configuration files.)";

// PHP Monitor Cannot Start
"alert.cannot_start.title" = "PHP Monitor cannot start due to a configuration problem";
Expand Down

0 comments on commit df506e4

Please sign in to comment.