diff --git a/PHP Monitor.xcodeproj/project.pbxproj b/PHP Monitor.xcodeproj/project.pbxproj index f9c7386..dcf9120 100644 --- a/PHP Monitor.xcodeproj/project.pbxproj +++ b/PHP Monitor.xcodeproj/project.pbxproj @@ -647,7 +647,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 57; DEVELOPMENT_TEAM = 8M54J5J787; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = phpmon/Info.plist; @@ -655,7 +655,7 @@ "$(inherited)", "@executable_path/../Frameworks", ); - MARKETING_VERSION = 3.4; + MARKETING_VERSION = 3.4.1; PRODUCT_BUNDLE_IDENTIFIER = com.nicoverbruggen.phpmon; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -671,7 +671,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 56; + CURRENT_PROJECT_VERSION = 57; DEVELOPMENT_TEAM = 8M54J5J787; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = phpmon/Info.plist; @@ -679,7 +679,7 @@ "$(inherited)", "@executable_path/../Frameworks", ); - MARKETING_VERSION = 3.4; + MARKETING_VERSION = 3.4.1; PRODUCT_BUNDLE_IDENTIFIER = com.nicoverbruggen.phpmon; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/phpmon-tests/ExtensionParserTest.swift b/phpmon-tests/ExtensionParserTest.swift index 72565b7..c6d58cd 100644 --- a/phpmon-tests/ExtensionParserTest.swift +++ b/phpmon-tests/ExtensionParserTest.swift @@ -27,11 +27,16 @@ class ExtensionParserTest: XCTestCase { return ext.name } + // These 6 should be found XCTAssertTrue(extensionNames.contains("xdebug")) XCTAssertTrue(extensionNames.contains("imagick")) + XCTAssertTrue(extensionNames.contains("sodium-next")) XCTAssertTrue(extensionNames.contains("opcache")) XCTAssertTrue(extensionNames.contains("yaml")) + XCTAssertTrue(extensionNames.contains("custom")) + XCTAssertFalse(extensionNames.contains("fake")) + XCTAssertFalse(extensionNames.contains("nice")) } func testExtensionStatusIsCorrect() throws { @@ -47,7 +52,7 @@ class ExtensionParserTest: XCTestCase { func testToggleWorksAsExpected() throws { let destination = Utility.copyToTemporaryFile(resourceName: "php", fileExtension: "ini")! let extensions = PhpExtension.load(from: destination) - XCTAssertEqual(extensions.count, 4) + XCTAssertEqual(extensions.count, 6) // Try to disable xdebug (should be detected first)! let xdebug = extensions.first! diff --git a/phpmon-tests/php.ini b/phpmon-tests/php.ini index e0128ba..320c8e7 100644 --- a/phpmon-tests/php.ini +++ b/phpmon-tests/php.ini @@ -1,8 +1,16 @@ +# These should be detected + zend_extension="xdebug.so" ; zend_extension="imagick.so" zend_extension=/opt/homebrew/opt/php/lib/php/20200930/opcache.so zend_extension="/opt/homebrew/opt/php/lib/php/20200930/yaml.so" -#zend_extension="/opt/homebrew/opt/php/lib/php/20200930/fake.so" +;zend_extension="sodium-next.so" +extension = custom.so + +# These should not be detected + +#zend_extension="/opt/homebrew/opt/php/lib/php/20200930/commented.so" +hextension = nice.so [PHP] diff --git a/phpmon/Domain/PHP/PhpExtension.swift b/phpmon/Domain/PHP/PhpExtension.swift index ca3a96a..edf2716 100644 --- a/phpmon/Domain/PHP/PhpExtension.swift +++ b/phpmon/Domain/PHP/PhpExtension.swift @@ -46,7 +46,7 @@ class PhpExtension { - Note: Extensions that are disabled in a different way will not be detected. This is intentional. */ - static let extensionRegex = #"^(extension=|zend_extension=|; extension=|; zend_extension=)(?["]?(?:\/?.\/?)+(?:\.so)"?)$"# + static let extensionRegex = #"^((\s?)extension|(\s?)zend_extension|;(\s?)extension|;(\s?)zend_extension)(\s?)(=)(\s?)(?["]?(?:\/?.\/?)+(?:\.so)"?)$"# /** When registering an extension, we do that based on the line found inside the .ini file.