for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Mnabialek\LaravelVersion;
use Illuminate\Contracts\Foundation\Application;
class Version
{
/**
* @var Application
*/
private $app;
* Version constructor.
*
* @param Application $app
public function __construct(Application $app)
$this->app = $app;
}
* Verify whether application is Laravel.
* @return bool
public function isLaravel()
return mb_strpos($this->full(), 'Lumen') === false;
* Verify whether application is Lumen.
public function isLumen()
return ! $this->isLaravel();
* Get original application version string.
* @return string
public function full()
return $this->app->version();
* Get application version.
public function get()
$version = $this->full();
if ($this->isLumen()) {
$version = $this->lumenVersion($version);
return $version;
* Verify whether application version is minimum at given version.
* @param string $version
public function min($version)
return version_compare($this->get(), $version) >= 0;
* Get Lumen application version.
protected function lumenVersion($version)
if (preg_match('#Lumen\s*\((.*)\)#U', $version, $matches)) {
$version = $matches[1];