Dateien hochladen nach „classes“

This commit is contained in:
Tobias Hopp 2020-06-24 22:15:14 +02:00
parent 8c9e2bc1c4
commit afd29103e4
4 changed files with 235 additions and 0 deletions

View File

@ -0,0 +1,79 @@
<?php
/**
* Class Autoloader
* Loads a class on call
*/
class Autoloader
{
/**
* All directorys to search for classes
* You can add directorys if you want
* @var static $directorys
*
**/
private static $directorys = array('classes', 'controller', 'model', 'views');
/**
* Load's the autoloader
*
* @return void
*/
public function __construct()
{
if ( !spl_autoload_register( array( $this, 'load_class' ) ) )
{
die('A fatal error has occurred.');
}
} # function __construct()
/**
* register the autoloader
*
* @return void
*/
public static function register()
{
new Autoloader();
} # function register()
/**
* Loads a class
*
* @param string $a_class_name Klassen-Name
* @return void
*
*/
public function load_class( $a_class_name )
{
foreach ( self::$directorys as $folder )
{
$file = __DIR__ . '/../' . $folder . '/' . $a_class_name . '.class.inc.php';
if ( file_exists( $file ) )
{
require_once $file;
}
else
{
$file = __DIR__ . '/../' . $folder . '/' . mb_strtolower( $a_class_name ) . '.class.inc.php';
if ( file_exists( $file ) )
{
require_once $file;
}
else
{
$file = __DIR__ . '/../' . $folder . '/' . ucfirst( $a_class_name ) . '.class.inc.php';
if ( file_exists( $file ) )
{
require_once $file;
}
}
}
}
} # function load_class(...)
} # class

View File

@ -0,0 +1,35 @@
<?php
/**
* Class database
* This class is for connecting with a database with PDO
*/
class Database
{
/**
* @var PDO
*/
private static $pdo;
/**
* @param PDO $a_pdo PDO instance
*
* @return void
*/
public static function setConnection( PDO $a_pdo )
{
self::$pdo = $a_pdo;
} # function setConnection(...)
/**
* @return PDO
*/
public static function getConnection()
{
return self::$pdo;
} # function getConnection()
} # class

View File

@ -0,0 +1,65 @@
<?php
/**
* Class Factory
* This class returns the action and controller for index file
*/
class Factory
{
/**
* Returns the right controller
*
* @param Request $a_request Request
*
* @return mixed
*/
public static function getController( Request $a_request )
{
# Prepare name of controller
$controller_name = mb_strtolower( $a_request->getVar( 'controller' ) );
$controller_name = ucfirst( $controller_name );
$controller_name .= 'Controller';
if ( $controller_name === 'Controller')
{
$controller = new DefaultController();
return $controller;
}
# if controller doesn't exist
if ( !file_exists( __DIR__ . '/../controller/' . $controller_name . '.class.inc.php' ) )
{
return new DefaultController();
}
# Call controller and returns it
$controller = new $controller_name();
return $controller;
} # function getController(...)
/**
* Returns the right action
* @param $a_controller
* @param Request $a_request Request
* @return string
*/
public static function getAction( $a_controller, Request $a_request )
{
# Prepare name of the action
$action_name = mb_strtolower( $a_request->getVar('action') );
$action_name = str_ireplace( 'action', '', $action_name );
$action_name .= 'Action';
# Action not found
if ( !method_exists( $a_controller, $action_name ) )
{
return 'indexAction';
}
return $action_name;
} # function getAction(...)
} # class

View File

@ -0,0 +1,56 @@
<?php
/**
* Behandelt die Variablen im Request GET / POST
* Syntax:
* $request = getVar( "Name", "Default Wert falls kein Wert gefunden wurde", "POST/GET" );
*/
class Request
{
/**
* GET-Request Name
* @var static
*/
public static $GET = 'GET';
/**
* POST-Request Name
* @var static
*/
public static $POST = 'POST';
/**
* Request Variablen-Wert zurückgeben
*
* @param string $a_name Name des Parameters
* @param string|null $a_default Default-Wert, falls nicht vorhadnen
* @param string $a_request Request(GET oder POST)
*
* @return mixed
*/
public function getVar( $a_name, $a_default = null, $a_request = 'GET' )
{
if ( $a_request === self::$GET )
{
$requestArray = $_GET;
}
else if ( $a_request === self::$POST )
{
$requestArray = $_POST;
}
else
{
$requestArray = array();
}
# Wert im Request vorhanden
if ( isset( $requestArray[$a_name] ) )
{
return htmlspecialchars( $requestArray[$a_name] );
}
return $a_default;
} # function getVar(...)
} # class