Initial backend folder structure and setup

This commit is contained in:
MosLaptop\Not.Reda 2025-06-13 12:32:36 +02:00
parent 504f6ef3e2
commit 2ccfce135d
6 changed files with 70 additions and 0 deletions

6
.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
/vendor/
/node_modules/
*.log
.env
.idea/
/sql/*

20
app/Config/database.php Normal file
View File

@ -0,0 +1,20 @@
<?php
class Database {
private $host = "mysql.pb.bib.de";
private $db_name = "media_locale";
private $username = "vpr_pbat3h23a";
private $password = "SBHwIWNqmMevnlqt";
public $conn;
public function getConnection() {
$this->conn = null;
try {
$this->conn = new PDO("mysql:host={$this->host};dbname={$this->db_name}",
$this->username, $this->password);
$this->conn->exec("set names utf8");
} catch (PDOException $exception) {
echo "Connection error: " . $exception->getMessage();
}
return $this->conn;
}
}

View File

@ -0,0 +1,14 @@
<?php
require_once __DIR__ . '/../Models/Project.php';
class ProjectController {
private $project;
public function __construct($db) {
$this->project = new Project($db);
}
public function getAllProjects() {
return $this->project->fetchAll();
}
}

16
app/Models/Project.php Normal file
View File

@ -0,0 +1,16 @@
<?php
class Project {
private $conn;
private $table = "projects";
public function __construct($db) {
$this->conn = $db;
}
public function fetchAll() {
$query = "SELECT * FROM " . $this->table;
$stmt = $this->conn->prepare($query);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}

5
index.php Normal file
View File

@ -0,0 +1,5 @@
<?php
require_once __DIR__ . '/../app/Config/database.php';
require_once __DIR__ . '/../routes/api.php';
echo "Media Locale Backend is running.";

9
routes/api.php Normal file
View File

@ -0,0 +1,9 @@
<?php
require_once __DIR__ . '/../app/Config/database.php';
require_once __DIR__ . '/../app\Controllers\ProjectController.php';
$db = (new Database())->getConnection();
$controller = new ProjectController($db);
header("Content-Type: application/json");
echo json_encode($controller->getAllProjects());