mirror of
https://github.com/nicoverbruggen/phpmon.git
synced 2025-08-08 04:20:07 +02:00
The version constraint checks will also be used in the future to evaluate whether any given site's PHP constraint (if set) is valid for the currently linked version of PHP. For example, assuming you have PHP 8.1.2 linked, we could evaluate: * A site requires "8.0" -> invalid * A site requires "^8.0" -> valid * A site requires "^8.0.0" -> valid * A site requires "~8.0" -> valid * A site requires "~8.0.0" -> invalid Currently, this constraint check is used to determine which versions that are currently installed are good suggestions to switch to. If you have a site with constraint "^8.0" for example, and you have PHP 8.0 and 8.1 installed (with 8.1 linked), then you will get a suggestion to switch back to 8.0.
37 lines
1.0 KiB
Swift
37 lines
1.0 KiB
Swift
//
|
||
// PhpInstallation.swift
|
||
// PHP Monitor
|
||
//
|
||
// Created by Nico Verbruggen on 28/11/2021.
|
||
// Copyright © 2021 Nico Verbruggen. All rights reserved.
|
||
//
|
||
|
||
import Foundation
|
||
|
||
class PhpInstallation {
|
||
|
||
var longVersion: PhpVersionNumber
|
||
|
||
/**
|
||
In order to determine details about a PHP installation, we’ll simply run `php-config --version`
|
||
in the relevant directory.
|
||
*/
|
||
init(_ version: String) {
|
||
|
||
let phpConfigExecutablePath = "\(Paths.optPath)/php@\(version)/bin/php-config"
|
||
self.longVersion = PhpVersionNumber.make(from: version)!
|
||
|
||
if Shell.fileExists(phpConfigExecutablePath) {
|
||
let longVersionString = Command.execute(
|
||
path: phpConfigExecutablePath,
|
||
arguments: ["--version"]
|
||
).trimmingCharacters(in: .whitespacesAndNewlines)
|
||
|
||
self.longVersion = PhpVersionNumber.make(
|
||
from: String(longVersionString.split(separator: "-")[0])
|
||
)!
|
||
}
|
||
}
|
||
|
||
}
|