<?php namespace App\Classes\Frame; use Illuminate\Support\Facades\Log; use App\Classes\Server; use App\User; abstract class Action { const prefix = 'App\Classes\Frame\Action\\'; public $so = NULL; public $uo = NULL; public $action = NULL; public $mode = NULL; public $page = []; public function __construct(Server $so,User $uo,int $action,int $mode) { $this->so = $so; $this->uo = $uo; $this->action = $action; $this->mode = $mode; } public static function factory(string $class,Server $so,User $uo,int $action,int $mode) { $c = self::prefix.$class; $o = class_exists($c) ? new $c($so,$uo,$action,$mode) : FALSE; $so->log('debug',sprintf(($o ? 'Executing: %s' : 'Class doesnt exist: %s'),$c)); return $o; } abstract public function handle(array $fielddata); }