rosell-dk / locate-binaries
Locate a binaries by means of exec() or similar
Installs: 4 097 225
Dependents: 2
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 1
Requires
- php: >=5.6
- rosell-dk/exec-with-fallback: ^1.0.0
- rosell-dk/file-util: ^0.1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.11
- phpstan/phpstan: ^1.5
- phpunit/phpunit: ^9.3
- squizlabs/php_codesniffer: 3.*
This package is auto-updated.
Last update: 2024-12-13 16:20:13 UTC
README
Just a little class for locating binaries.
You need exec()
, shell_exec()
or similar enabled for it to work. Otherwise, it will throw.
Works on Linux, Windows and Mac.
Usage
To locate installed cwebp
binaries (found on Linux with which -a
, falling back to whereis -b
; on Windows found using where
):
use LocateBinaries\LocateBinaries;
$cwebBinariesFound = LocateBinaries::locateInstalledBinaries('cwebp');
Note that you get an array of matches - there may be several versions of a binary on a system.
The library also adds another method for locating binaries by peeking in common system paths, such as usr/bin and C:\Windows\System32
However, beware that these dirs could be subject to open_basedir restrictions which can lead to warning entries in the error log. The other method is therefore best.
Well warned, here it is the alternative, which you in some cases might want to fall back to after trying the first.
$imagickBinariesFound = LocateBinaries::locateInCommonSystemPaths('convert');
Installing
Install with composer:
composer require rosell-dk/locate-binaries
Notes
The library uses the exec-with-fallback library in order to be able to use alternatives to exec() when exec() is disabled.
Do you like what I do?
Perhaps you want to support my work, so I can continue doing it :)
Thanks!