for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* Quantum PHP Framework
*
* An open source software development framework for PHP
* @package Quantum
* @author Arman Ag. <[email protected]>
* @copyright Copyright (c) 2018 Softberg LLC (https://softberg.org)
* @link http://quantum.softberg.org/
* @since 2.9.5
*/
namespace Quantum\App;
use Quantum\App\Exceptions\AppException;
use Quantum\App\Contracts\AppInterface;
use Quantum\Exceptions\BaseException;
* Class App
* @package Quantum\App
class App
{
* Web app adapter
const WEB = 'web';
* Console app adapter
const CONSOLE = 'console';
* @var string
private static $baseDir;
* @var AppInterface
private $adapter;
* @param AppInterface $adapter
public function __construct(AppInterface $adapter)
$this->adapter = $adapter;
}
* @param string $baseDir
public static function setBaseDir(string $baseDir)
self::$baseDir = $baseDir;
* @return string
public static function getBaseDir(): string
return self::$baseDir;
* @return AppInterface
public function getAdapter(): AppInterface
return $this->adapter;
* @param string $method
* @param array|null $arguments
* @return mixed
* @throws BaseException
public function __call(string $method, ?array $arguments)
if (!method_exists($this->adapter, $method)) {
throw AppException::methodNotSupported($method, get_class($this->adapter));
return $this->adapter->$method(...$arguments);