private/Get-PhpExtensionHandle.ps1

function Get-PhpExtensionHandle
{
    <#
    .Synopsis
    Gets the handle of a PHP extension given its name.
 
    .Parameter Name
    The name of the PHP extension.
 
    .Outputs
    string
 
    .Example
    Get-PhpExtensionHandle -Name 'Zend OPcache'
    #>

    [OutputType([string])]
    param (
        [Parameter(Mandatory = $true, Position = 0, HelpMessage = 'The name of the PHP extension')]
        [ValidateNotNull()]
        [ValidateLength(1, [int]::MaxValue)]
        [string]$Name
    )
    begin {
        $handle = $null
    }
    process {
        $handle = $Name.Trim().ToLowerInvariant()
        if ($handle -eq '') {
            throw 'Empty PHP extension name specified'
        }
        switch ($handle) {
            'zend opcache' { $handle = 'opcache' }
            'advanced php debugger (apd)' { $handle = 'apd' }
            'nt user api' { $handle = 'ntuser' }
            'the ioncube php loader' { $handle = 'ioncube_loader' }
            'pc/sc' { $handle = 'pcsc' }
            default {
                $replaced = $handle -replace '\s+', '_'
                if (-Not($replaced -match '^[a-z0-9][a-z0-9_\-]+$')) {
                    throw "Unrecognized PHP extension name: $Name"
                }
                $handle = $replaced
            }
        }
    }
    end {
        $handle
    }
}