Refactored code to use namespaces

This commit is contained in:
Andreas 2019-09-30 14:17:21 +02:00
parent 28e378fbe2
commit 929a848b23
37 changed files with 135 additions and 57 deletions

View File

@ -1,4 +1,5 @@
<?php <?php
namespace controller;
Class HUtils{ Class HUtils{
static function issetPost($arr_postvars){ static function issetPost($arr_postvars){
for ($i=0; $i <sizeof($arr_postvars) ; $i++) for ($i=0; $i <sizeof($arr_postvars) ; $i++)

View File

@ -1,4 +1,5 @@
<?php <?php
namespace controller;
class MVCController{ class MVCController{
private $model; private $model;
private $testaction; private $testaction;

View File

@ -1,5 +1,7 @@
<?php <?php
require_once(ROOT_DIR.'/controller/db/Database.php'); namespace controller;
use controller\db\Database;
use DateTime;
Class UserSession{ Class UserSession{
public $uid = -1; public $uid = -1;
public $token = "undefined"; public $token = "undefined";

View File

@ -1,5 +1,7 @@
<?php <?php
require_once ROOT_DIR.'/controller/db/Database.php'; namespace controller\db;
use model\forum\Board;
use PDO;
class DBBoard extends Database{ class DBBoard extends Database{
static function getBoards():array static function getBoards():array
{ {

View File

@ -1,6 +1,7 @@
<?php <?php
require_once ROOT_DIR.'/controller/db/Database.php'; namespace controller\db;
require_once ROOT_DIR.'/model/forum/Reply.php'; use model\forum\Reply;
use PDO;
class DBReply extends Database{ class DBReply extends Database{
static function createReply($uid, $threadID, $content){ static function createReply($uid, $threadID, $content){
$con = self::connectToDB(); $con = self::connectToDB();

View File

@ -1,5 +1,7 @@
<?php <?php
require_once ROOT_DIR.'/model/forum/Thread.php'; namespace controller\db;
use model\forum\Thread;
use PDO;
class DBThread extends Database { class DBThread extends Database {
static function getThreadByID($id){ static function getThreadByID($id){
$con = self::connectToDB(); $con = self::connectToDB();

View File

@ -1,5 +1,7 @@
<?php <?php
require_once(ROOT_DIR.'/model/forum/User.php'); namespace controller\db;
use model\forum\User;
use PDO;
class DBUser extends Database class DBUser extends Database
{ {
static function getUserByUID($uid){ static function getUserByUID($uid){

View File

@ -1,4 +1,6 @@
<?php <?php
namespace controller\db;
use PDO;
Class Database{ Class Database{
static function connectToDB(){ static function connectToDB(){
try{ try{

View File

@ -1,13 +1,41 @@
<?php <?php
define('ROOT_DIR', __DIR__);
function autoload($className){
$className = ltrim($className, '\\');
$fileName = '';
$namespace = '';
if($lastNsPos = strrpos($className, '\\')){
$namespace = substr($className, 0, $lastNsPos);
$className = substr($className, $lastNsPos + 1);
$fileName = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
}
$fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
//echo $fileName;
require ROOT_DIR . '\\' . $fileName;
}
spl_autoload_register('autoload');
use model\testactions\TestAction;
use controller\MVCController;
use controller\UserSession;
use controller\HUtils;
error_reporting(E_ALL); error_reporting(E_ALL);
ini_set('log_errors','1'); ini_set('log_errors','1');
ini_set('display_errors','1'); ini_set('display_errors','1');
define('ROOT_DIR', __DIR__);
session_start(); session_start();
require_once(ROOT_DIR.'/model/testactions/TestAction.php');
//date_default_timezone_set('Europe/Amsterdam'); //date_default_timezone_set('Europe/Amsterdam');
require_once(ROOT_DIR.'/controller/MVCController.php');
require_once(ROOT_DIR.'/controller/UserSession.php');
$mvcController = new MVCController(); $mvcController = new MVCController();
$mvcController->executeModel(); $mvcController->executeModel();
if(!isset($_POST['testaction'])){ if(!isset($_POST['testaction'])){

View File

@ -1,8 +1,8 @@
<?php <?php
require_once ROOT_DIR.'/controller/UserSession.php'; use controller\UserSession;
require_once(ROOT_DIR.'/controller/HUtils.php'); use controller\HUtils;
require_once ROOT_DIR.'/controller/db/DBReply.php'; use controller\db\DBReply;
require_once ROOT_DIR.'/model/forum/Reply.php'; Use model\forum\Reply;
//dit bestand bestaat grotendeels uit dummy code. //dit bestand bestaat grotendeels uit dummy code.
//Ik heb onvoldoende tijd gehad tijdens de afgelopen paar weken en het was extreem druk in de klas tijdens de les. //Ik heb onvoldoende tijd gehad tijdens de afgelopen paar weken en het was extreem druk in de klas tijdens de les.
$uid = $_SESSION['usersession']->uid; $uid = $_SESSION['usersession']->uid;

View File

@ -1,8 +1,8 @@
<?php <?php
require_once ROOT_DIR.'/controller/UserSession.php'; use controller\UserSession;
require_once(ROOT_DIR.'/controller/HUtils.php'); use controller\HUtils;
require_once ROOT_DIR.'/controller/db/DBThread.php'; use controller\db\DBThread;
require_once ROOT_DIR.'/model/forum/Thread.php'; use model\forum\Thread;
//dit bestand bestaat grotendeels uit dummy code. //dit bestand bestaat grotendeels uit dummy code.
//Ik heb onvoldoende tijd gehad tijdens de afgelopen paar weken en het was extreem druk in de klas tijdens de les. //Ik heb onvoldoende tijd gehad tijdens de afgelopen paar weken en het was extreem druk in de klas tijdens de les.
$uid = $_SESSION['usersession']->uid; $uid = $_SESSION['usersession']->uid;

View File

@ -3,6 +3,9 @@
require_once(ROOT_DIR."/controller/db/Database.php"); require_once(ROOT_DIR."/controller/db/Database.php");
require_once(ROOT_DIR."/controller/db/DBUser.php"); require_once(ROOT_DIR."/controller/db/DBUser.php");
require_once(ROOT_DIR."/controller/HUtils.php"); require_once(ROOT_DIR."/controller/HUtils.php");
use controller\db\Database;
use controller\db\DBUser;
use controller\HUtils;
if(HUtils::issetPost(['email', 'pass', 'pass2', 'name'])){ if(HUtils::issetPost(['email', 'pass', 'pass2', 'name'])){
$email = $_POST['email']; $email = $_POST['email'];
$pass = $_POST['pass']; $pass = $_POST['pass'];

View File

@ -1,9 +1,11 @@
<?php <?php
$debuginfo = false; $debuginfo = false;
require_once(ROOT_DIR."/controller/UserSession.php"); use controller\UserSession;
require_once(ROOT_DIR."/controller/db/Database.php"); use controller\db\Database;
require_once(ROOT_DIR."/controller/db/DBUser.php"); use controller\db\DBUser;
require_once(ROOT_DIR."/controller/HUtils.php"); use controller\HUtils;
use controller\MVCController;
use model\forum\User;
$skipoverride = false; $skipoverride = false;
if(!UserSession::isUserSignedIn()){ if(!UserSession::isUserSignedIn()){
if(HUtils::issetPost(['email','password'])){ if(HUtils::issetPost(['email','password'])){

View File

@ -1,5 +1,7 @@
<?php <?php
require_once(ROOT_DIR.'/controller/db/Database.php'); use controller\db\Database;
use controller\UserSession;
$_SESSION['usersession'] = null; $_SESSION['usersession'] = null;
Database::invalidateSession($_COOKIE['usersession']); Database::invalidateSession($_COOKIE['usersession']);
session_destroy(); session_destroy();

View File

@ -1,4 +1,5 @@
<?php <?php
namespace model\forum;
class Board { class Board {
public $id; public $id;
public $name; public $name;

View File

@ -1,4 +1,6 @@
<?php <?php
namespace model\forum;
use DateTime;
class Reply { class Reply {
public $id; public $id;
public $threadID; public $threadID;

View File

@ -1,4 +1,6 @@
<?php <?php
namespace model\forum;
use DateTime;
class Thread { class Thread {
public $id; public $id;
public $title; public $title;

View File

@ -1,5 +1,5 @@
<?php <?php
namespace model\forum;
class User { class User {
public $id; public $id;
public $username; public $username;

View File

@ -1,4 +1,6 @@
<?php <?php
namespace model\testactions;
use DateTime;
class TA_CreateDB extends TestAction{ class TA_CreateDB extends TestAction{
function TA_CreateDB(){ function TA_CreateDB(){

View File

@ -1,4 +1,5 @@
<?php <?php
namespace model\testactions;
class TA_PopulateDB extends TestAction{ class TA_PopulateDB extends TestAction{
function TA_PopulateDB(){ function TA_PopulateDB(){
parent::__construct(); parent::__construct();

View File

@ -1,4 +1,5 @@
<?php <?php
namespace model\testactions;
require_once(ROOT_DIR.'/controller/db/DBReply.php'); require_once(ROOT_DIR.'/controller/db/DBReply.php');
require_once(ROOT_DIR.'/model/forum/Reply.php'); require_once(ROOT_DIR.'/model/forum/Reply.php');
class TA_TestDBReply extends TestAction{ class TA_TestDBReply extends TestAction{

View File

@ -1,4 +1,5 @@
<?php <?php
namespace model\testactions;
require_once(ROOT_DIR.'/controller/db/DBThread.php'); require_once(ROOT_DIR.'/controller/db/DBThread.php');
require_once(ROOT_DIR.'/model/forum/Thread.php'); require_once(ROOT_DIR.'/model/forum/Thread.php');
class TA_TestDBThread extends TestAction{ class TA_TestDBThread extends TestAction{

View File

@ -1,4 +1,5 @@
<?php <?php
namespace model\testactions;
require_once(ROOT_DIR.'/controller/db/DBUser.php'); require_once(ROOT_DIR.'/controller/db/DBUser.php');
require_once(ROOT_DIR.'/model/forum/User.php'); require_once(ROOT_DIR.'/model/forum/User.php');
class TA_TestDBUser extends TestAction{ class TA_TestDBUser extends TestAction{

View File

@ -1,4 +1,5 @@
<?php <?php
namespace model\testactions;
class TA_TestSQLConnection extends TestAction{ class TA_TestSQLConnection extends TestAction{
function __construct(){ function __construct(){
parent::__construct(); parent::__construct();

View File

@ -1,4 +1,5 @@
<?php <?php
namespace model\testactions;
class TestAction{ class TestAction{
function __construct(){ function __construct(){
if(isset($_POST['auth'])){ if(isset($_POST['auth'])){

View File

@ -12,6 +12,7 @@ require_once("index.php");
<?php <?php
include_once(ROOT_DIR."/view/webcontent/content_header.php"); include_once(ROOT_DIR."/view/webcontent/content_header.php");
?> ?>
</header> </header>
<div class="main"> <div class="main">
<?php <?php

View File

@ -1,6 +1,5 @@
<?php <?php
require_once ROOT_DIR.'/model/forum/Thread.php'; use controller\MVCController;
require_once ROOT_DIR.'/model/forum/User.php';
foreach (MVCController::$viewData['boards'] as $board){ foreach (MVCController::$viewData['boards'] as $board){
include ROOT_DIR.'/view/webcontent/modules/modules_boards/module_boardtable.php'; include ROOT_DIR.'/view/webcontent/modules/modules_boards/module_boardtable.php';
} }

View File

@ -1,3 +1,6 @@
<?php
use controller\MVCController;
?>
<form action="./?p=showthread&thread=<?=MVCController::$viewData['threadid'];?>" method="post"> <form action="./?p=showthread&thread=<?=MVCController::$viewData['threadid'];?>" method="post">
<textarea placeholder="post content" name="content"></textarea><br> <textarea placeholder="post content" name="content"></textarea><br>
<input type="submit" value="Create Reply"> <input type="submit" value="Create Reply">

View File

@ -1,5 +1,5 @@
<?php <?php
require_once(ROOT_DIR.'/controller/UserSession.php'); use controller\UserSession;
if(UserSession::isUserSignedIn()){ if(UserSession::isUserSignedIn()){
include(ROOT_DIR.'/view/webcontent/header/header_signedin.php'); include(ROOT_DIR.'/view/webcontent/header/header_signedin.php');
} }

View File

@ -1,7 +1,8 @@
<?php <?php
require_once ROOT_DIR.'/model/forum/Thread.php'; use controller\MVCController;
require_once ROOT_DIR.'/model/forum/Reply.php'; use model\forum\Thread;
require_once ROOT_DIR.'/model/forum/User.php'; use model\forum\Reply;
use model\forum\User;
//$thread = new Thread(); //$thread = new Thread();
$thread = MVCController::$viewData['thread']; $thread = MVCController::$viewData['thread'];
$replies = $thread->getReplies(); $replies = $thread->getReplies();

View File

@ -1,7 +1,7 @@
<div class="logo"> <div class="logo">
hF hF
</div> </div>
<nav> <nav>
<a href="./">Home</a> <a href="./">Home</a>
<a href="?action=signout">Sign out</a> <a href="?action=signout">Sign out</a>
</nav> </nav>

View File

@ -1,8 +1,8 @@
<div class="logo"> <div class="logo">
hF hF
</div> </div>
<nav> <nav>
<a href="./">Home</a> <a href="./">Home</a>
<a href="?p=register">Register</a> <a href="?p=register">Register</a>
<a href="?p=signin">Sign in</a> <a href="?p=signin">Sign in</a>
</nav> </nav>

View File

@ -1,3 +1,6 @@
<?php
use controller\MVCController;
?>
<h2><?=$board->name?></h2> <h2><?=$board->name?></h2>
<a href="?p=createthread&board=<?=$board->id?>">Create Thread</a> <a href="?p=createthread&board=<?=$board->id?>">Create Thread</a>
<table> <table>
@ -6,7 +9,7 @@
<th width=10%>Started by</th> <th width=10%>Started by</th>
<th width=15%>Last reply</th> <th width=15%>Last reply</th>
</tr> </tr>
<?php <?php
foreach (MVCController::$viewData['threads'] as $thread){ foreach (MVCController::$viewData['threads'] as $thread){
if($thread->getBoardID() == $board->id){ if($thread->getBoardID() == $board->id){
$currentRow = []; $currentRow = [];
@ -28,7 +31,7 @@ foreach (MVCController::$viewData['threads'] as $thread){
} }
} }
} }
?> ?>
<tr> <tr>
<td> <td>
<a href="?p=showthread&thread=<?=$currentRow['threadID']?>"><?=$currentRow['threadTitle']?></a> <a href="?p=showthread&thread=<?=$currentRow['threadID']?>"><?=$currentRow['threadTitle']?></a>
@ -39,9 +42,10 @@ foreach (MVCController::$viewData['threads'] as $thread){
</td> </td>
<td> <td>
<?=$currentRow['lastUpdated']?> <?=$currentRow['lastUpdated']?>
</td> </td>
</tr> </tr>
<?php <?php
} }
} }
?> ?>

View File

@ -1,11 +1,13 @@
<?php <?php
require_once ROOT_DIR.'/controller/db/DBBoard.php'; use controller\MVCController;
require_once ROOT_DIR.'/controller/db/DBThread.php'; use controller\db\DBBoard;
require_once ROOT_DIR.'/controller/db/DBUser.php'; use controller\db\DBThread;
require_once ROOT_DIR.'/model/forum/Board.php'; use controller\db\DBUser;
require_once ROOT_DIR.'/model/forum/Thread.php'; use model\forum\Board;
require_once ROOT_DIR.'/model/forum/User.php'; use model\forum\Thread;
require_once ROOT_DIR.'/model/forum/Reply.php'; use model\forum\User;
use model\forum\Reply;
$boards = DBBoard::getBoards(); $boards = DBBoard::getBoards();
$users = []; $users = [];

View File

@ -1,4 +1,5 @@
<?php <?php
use controller\MVCController;
if(isset($_GET['thread'])){ if(isset($_GET['thread'])){
MVCController::$viewData['threadid'] = $_GET['thread']; MVCController::$viewData['threadid'] = $_GET['thread'];
} }

View File

@ -1,6 +1,6 @@
<?php <?php
require_once ROOT_DIR.'/controller/UserSession.php'; use controller\UserSession;
require_once ROOT_DIR.'/controller/MVCController.php'; use controller\MVCController;
if(UserSession::isUserSignedIn()){ if(UserSession::isUserSignedIn()){
MVCController::getMVCController()->overrideView("boards"); MVCController::getMVCController()->overrideView("boards");
} }

View File

@ -1,4 +1,10 @@
<?php <?php
use controller\MVCController;
use controller\db\DBThread;
use controller\db\DBReply;
use controller\db\DBUser;
use model\forum\User;
use model\forum\Reply;
require_once ROOT_DIR.'/controller/db/DBThread.php'; require_once ROOT_DIR.'/controller/db/DBThread.php';
require_once ROOT_DIR.'/controller/db/DBReply.php'; require_once ROOT_DIR.'/controller/db/DBReply.php';
require_once ROOT_DIR.'/controller/db/DBUser.php'; require_once ROOT_DIR.'/controller/db/DBUser.php';