Move rendering to View Controller, Update Controllers, Remove apps/Services branch

This commit is contained in:
overplayed 2025-02-01 20:47:06 -05:00
parent d78176c3b7
commit 9f7558a7fb
15 changed files with 533 additions and 195 deletions

View File

@ -1,20 +1,37 @@
<?php
namespace WizdomNetworks\WizeWeb\Controllers;
use WizdomNetworks\WizeWeb\Core\Controller;
use WizdomNetworks\WizeWeb\Core\View;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
class AboutController extends Controller
class AboutController
{
public function index(): void
public function index()
{
Logger::debug("AboutController::index() - Executing about page rendering.");
$this->render('pages/about', [
'title' => 'About Us - Wizdom Networks',
'content' => '<h1>About Wizdom Networks</h1>
<p>We specialize in delivering top-notch IT solutions to help your business thrive.</p>'
]);
try {
$data = [
'title' => 'About Us - Wizdom Networks',
'heroConfig' => [
'title' => 'About Wizdom Networks',
'description' => 'Who we are and what we do.',
'image' => '/assets/images/about-hero.jpg',
'cta' => ['text' => 'Contact Us', 'link' => '/contact'],
'style' => 'default',
'position' => 'top'
],
'content' => "<h1>About Wizdom Networks</h1><p>We specialize in IT consulting and technology solutions.</p>"
];
Logger::debug("AboutController::index() - Data prepared successfully.");
View::render('pages/about', $data);
Logger::info("AboutController::index() - About page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("AboutController::index() - Error rendering about page: " . $e->getMessage());
ErrorHandler::exception($e);
}
}
}

View File

@ -1,8 +1,37 @@
<?php
namespace WizdomNetworks\WizeWeb\Controllers;
use WizdomNetworks\WizeWeb\Core\View;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
class ClientsController
{
// Placeholder for future implementation
public function index()
{
Logger::debug("ClientsController::index() - Executing clients & partners page rendering.");
try {
$data = [
'title' => 'Our Clients & Partners - Wizdom Networks',
'heroConfig' => [
'title' => 'Trusted by Industry Leaders',
'description' => 'Our valued clients and strategic partners.',
'image' => '/assets/images/clients-hero.jpg',
'cta' => ['text' => 'Join Us', 'link' => '/contact'],
'style' => 'default',
'position' => 'top'
],
'content' => "<h1>Our Clients & Partners</h1><p>We collaborate with top organizations to deliver innovative IT solutions.</p>"
];
Logger::debug("ClientsController::index() - Data prepared successfully.");
View::render('pages/clients', $data);
Logger::info("ClientsController::index() - Clients & partners page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("ClientsController::index() - Error rendering clients page: " . $e->getMessage());
ErrorHandler::exception($e);
}
}
}

View File

@ -1,44 +1,38 @@
<?php
namespace WizdomNetworks\WizeWeb\Controllers;
use WizdomNetworks\WizeWeb\Core\Controller;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
use WizdomNetworks\WizeWeb\Core\View;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
/**
* Contact Controller
*
* This controller handles the logic for rendering the contact page of the application.
*/
class ContactController extends Controller
class ContactController
{
/**
* Index method for the ContactController.
*
* This method prepares the data for the contact page and renders the corresponding view.
*
* @throws \Exception If the view cannot be rendered or an error occurs.
*/
public function index(): void
{
try {
Logger::info("[DEBUG] Entering ContactController::index");
Logger::debug("ContactController::index() - Executing contact page rendering.");
try {
// Prepare data for the contact page
$data = [
'title' => 'Contact Us - Wizdom Networks',
'description' => 'Get in touch with our team for inquiries and support.',
'heroConfig' => [
'title' => 'Get in Touch',
'description' => 'Reach out to our team for inquiries and support.',
'image' => '/assets/images/contact-hero.jpg',
'cta' => ['text' => 'Send a Message', 'link' => '/contact'],
'style' => 'default',
'position' => 'top'
],
'content' => "<h1>Contact Us</h1>
<p>We're here to help. Send us a message and we'll get back to you as soon as possible.</p>"
];
// Render the contact page view
$this->render('pages/contact', $data);
Logger::info("[DEBUG] Successfully rendered contact page");
} catch (\Exception $e) {
// Log and handle any exceptions
Logger::debug("ContactController::index() - Data prepared successfully.");
View::render('pages/contact', $data);
Logger::info("ContactController::index() - Contact page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("ContactController::index() - Error rendering contact page: " . $e->getMessage());
ErrorHandler::exception($e);
throw $e; // Rethrow or handle as needed
}
}
}

View File

@ -1,8 +1,45 @@
<?php
namespace WizdomNetworks\WizeWeb\Controllers;
use WizdomNetworks\WizeWeb\Core\View;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
class EmergencySupportController
{
// Placeholder for future implementation
public function index()
{
Logger::debug("EmergencySupportController::index() - Executing emergency support page rendering.");
try {
$data = [
'title' => 'Emergency IT Support - Wizdom Networks',
'heroConfig' => [
'title' => '24/7 Emergency IT Support',
'description' => 'Immediate assistance for critical IT issues.',
'image' => '/assets/images/emergency-support.jpg',
'cta' => ['text' => 'Get Help Now', 'link' => '/contact'],
'style' => 'default',
'position' => 'top'
],
'content' => "<h1>Emergency IT Support</h1>
<p>Round-the-clock emergency IT support for critical issues.</p>",
'service_details' => [
'features' => [
'24/7 availability',
'Rapid response',
'Critical system recovery'
],
'pricing' => 'Custom pricing based on severity and scope'
]
];
Logger::debug("EmergencySupportController::index() - Data prepared successfully.");
View::render('pages/emergency_support', $data);
Logger::info("EmergencySupportController::index() - Emergency support page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("EmergencySupportController::index() - Error rendering emergency support page: " . $e->getMessage());
ErrorHandler::exception($e);
}
}
}

View File

@ -1,8 +1,45 @@
<?php
namespace WizdomNetworks\WizeWeb\Controllers;
class HelpDeskController {
// Placeholder
}
use WizdomNetworks\WizeWeb\Core\View;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
class HelpDeskController
{
public function index()
{
Logger::debug("HelpDeskController::index() - Executing help desk page rendering.");
try {
$data = [
'title' => 'Help Desk - Wizdom Networks',
'heroConfig' => [
'title' => 'Reliable IT Support',
'description' => 'Get expert help with your IT issues.',
'image' => '/assets/images/helpdesk-hero.jpg',
'cta' => ['text' => 'Submit a Ticket', 'link' => '/contact'],
'style' => 'default',
'position' => 'top'
],
'content' => "<h1>Help Desk Services</h1>
<p>We provide fast and reliable IT support for businesses of all sizes.</p>",
'service_details' => [
'features' => [
'24/7 support',
'Remote troubleshooting',
'On-site assistance'
],
'pricing' => 'Custom pricing based on service level'
]
];
Logger::debug("HelpDeskController::index() - Data prepared successfully.");
View::render('pages/helpdesk', $data);
Logger::info("HelpDeskController::index() - Help desk page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("HelpDeskController::index() - Error rendering help desk page: " . $e->getMessage());
ErrorHandler::exception($e);
}
}
}

View File

@ -1,32 +1,32 @@
<?php
namespace WizdomNetworks\WizeWeb\Controllers;
use WizdomNetworks\WizeWeb\Core\Controller;
use WizdomNetworks\WizeWeb\Core\View;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
class HomeController extends Controller
class HomeController
{
/**
* Displays the home page.
*/
public function index(): void
public function index()
{
Logger::info("HomeController::index() invoked.");
$data = [
'title' => 'Welcome to Wizdom Networks',
'description' => 'Your trusted IT consulting partner.',
];
Logger::debug("HomeController::index() - Executing home page rendering.");
try {
$this->render('pages/home', $data);
Logger::info("Home page rendered successfully.");
} catch (\Exception $e) {
Logger::error("Failed to render home page: " . $e->getMessage());
http_response_code(500);
echo "An internal error occurred.";
$data = [
'title' => 'Home - Wizdom Networks',
'showSlider' => [
'type' => 'hero'
],
'content' => "<h1>Welcome to Wizdom Networks</h1><p>Your trusted partner for IT Consulting and Services.</p>"
];
Logger::debug("HomeController::index() - Data prepared successfully.");
View::render('pages/home', $data);
Logger::info("HomeController::index() - Home page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("HomeController::index() - Error rendering home page: " . $e->getMessage());
ErrorHandler::exception($e);
}
}
}

View File

@ -0,0 +1,45 @@
<?php
namespace WizdomNetworks\WizeWeb\Controllers;
use WizdomNetworks\WizeWeb\Core\View;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
class ITConsultingController
{
public function index()
{
Logger::debug("ITConsultingController::index() - Executing IT consulting page rendering.");
try {
$data = [
'title' => 'IT Consulting - Wizdom Networks',
'heroConfig' => [
'title' => 'Expert IT Consulting Services',
'description' => 'Driving your business forward with strategic IT solutions.',
'image' => '/assets/images/it-consulting-hero.jpg',
'cta' => ['text' => 'Learn More', 'link' => '/contact'],
'style' => 'default',
'position' => 'top'
],
'content' => "<h1>IT Consulting Services</h1>
<p>Our expert consultants help you with IT strategy, infrastructure planning, and cloud integration.</p>",
'service_details' => [
'features' => [
'Infrastructure planning',
'Cloud integration',
'Technology strategy'
],
'pricing' => 'Custom pricing based on requirements'
]
];
Logger::debug("ITConsultingController::index() - Data prepared successfully.");
View::render('pages/it_consulting', $data);
Logger::info("ITConsultingController::index() - IT consulting page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("ITConsultingController::index() - Error rendering IT consulting page: " . $e->getMessage());
ErrorHandler::exception($e);
}
}
}

View File

@ -0,0 +1,45 @@
<?php
namespace WizdomNetworks\WizeWeb\Controllers;
use WizdomNetworks\WizeWeb\Core\View;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
class ManagedHostingController
{
public function index()
{
Logger::debug("ManagedHostingController::index() - Executing managed hosting page rendering.");
try {
$data = [
'title' => 'Managed Hosting - Wizdom Networks',
'heroConfig' => [
'title' => 'Comprehensive Managed Hosting Services',
'description' => 'Keeping your business online and optimized.',
'image' => '/assets/images/managed-hosting-hero.jpg',
'cta' => ['text' => 'Learn More', 'link' => '/contact'],
'style' => 'default',
'position' => 'top'
],
'content' => "<h1>Managed Hosting Services</h1>
<p>Our managed hosting solutions ensure reliable performance, security, and uptime.</p>",
'service_details' => [
'features' => [
'Server management',
'Performance optimization',
'Data backups and recovery'
],
'pricing' => 'Custom pricing based on hosting requirements'
]
];
Logger::debug("ManagedHostingController::index() - Data prepared successfully.");
View::render('pages/managed_hosting', $data);
Logger::info("ManagedHostingController::index() - Managed hosting page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("ManagedHostingController::index() - Error rendering managed hosting page: " . $e->getMessage());
ErrorHandler::exception($e);
}
}
}

View File

@ -0,0 +1,45 @@
<?php
namespace WizdomNetworks\WizeWeb\Controllers;
use WizdomNetworks\WizeWeb\Core\View;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
class OnlineBrandManagementController
{
public function index()
{
Logger::debug("OnlineBrandManagementController::index() - Executing online brand management page rendering.");
try {
$data = [
'title' => 'Online Brand Management - Wizdom Networks',
'heroConfig' => [
'title' => 'Strategic Online Brand Management',
'description' => 'Enhance your digital presence and reputation.',
'image' => '/assets/images/online-brand-management-hero.jpg',
'cta' => ['text' => 'Learn More', 'link' => '/contact'],
'style' => 'default',
'position' => 'top'
],
'content' => "<h1>Online Brand Management Services</h1>
<p>We provide strategic online brand management to help businesses strengthen their online presence.</p>",
'service_details' => [
'features' => [
'Social media management',
'Reputation monitoring',
'Content strategy'
],
'pricing' => 'Custom pricing based on campaign requirements'
]
];
Logger::debug("OnlineBrandManagementController::index() - Data prepared successfully.");
View::render('pages/online_brand_management', $data);
Logger::info("OnlineBrandManagementController::index() - Online brand management page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("OnlineBrandManagementController::index() - Error rendering online brand management page: " . $e->getMessage());
ErrorHandler::exception($e);
}
}
}

View File

@ -0,0 +1,45 @@
<?php
namespace WizdomNetworks\WizeWeb\Controllers;
use WizdomNetworks\WizeWeb\Core\View;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
class ProjectManagementController
{
public function index()
{
Logger::debug("ProjectManagementController::index() - Executing project management page rendering.");
try {
$data = [
'title' => 'Project Management - Wizdom Networks',
'heroConfig' => [
'title' => 'Professional Project Management',
'description' => 'Ensuring success from start to finish.',
'image' => '/assets/images/project-management-hero.jpg',
'cta' => ['text' => 'Get Started', 'link' => '/contact'],
'style' => 'default',
'position' => 'top'
],
'content' => "<h1>Project Management Services</h1>
<p>We provide expert project management to ensure your projects are completed efficiently and successfully.</p>",
'service_details' => [
'features' => [
'Planning and scheduling',
'Resource allocation',
'Risk management'
],
'pricing' => 'Custom pricing based on project scope'
]
];
Logger::debug("ProjectManagementController::index() - Data prepared successfully.");
View::render('pages/project_management', $data);
Logger::info("ProjectManagementController::index() - Project management page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("ProjectManagementController::index() - Error rendering project management page: " . $e->getMessage());
ErrorHandler::exception($e);
}
}
}

View File

@ -1,48 +1,37 @@
<?php
namespace WizdomNetworks\WizeWeb\Controllers;
use WizdomNetworks\WizeWeb\Core\Controller;
use WizdomNetworks\WizeWeb\Core\View;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
class ServicesController extends Controller
class ServicesController
{
public function index(): void
public function index()
{
// Render the services page with the layout
$this->render('pages/services', ['title' => 'Our Services']);
}
Logger::debug("ServicesController::index() - Executing services page rendering.");
public function itConsulting(): void
{
try {
$data = [
'title' => 'Our Services - Wizdom Networks',
'heroConfig' => [
'title' => 'Explore Our IT Solutions',
'description' => 'Comprehensive IT consulting and management services.',
'image' => '/assets/images/services-hero.jpg',
'cta' => ['text' => 'Get Started', 'link' => '/contact'],
'style' => 'default',
'position' => 'top'
],
'content' => "<h1>Our IT Services</h1><p>We provide a range of IT consulting and managed services.</p>"
];
$this->render('pages/services/it_consulting', [
'title' => 'IT Consulting - Wizdom Networks',
'content' => '<h1>IT Consulting</h1>
<p>We provide tailored IT solutions to help your business thrive.</p>'
]);
}
Logger::debug("ServicesController::index() - Data prepared successfully.");
View::render('pages/services', $data);
Logger::info("ServicesController::index() - Services page rendered successfully.");
public function emergencySupport(): void
{
$this->render('pages/services/emergency_support', [
'title' => 'Emergency Support - Wizdom Networks',
'content' => '<h1>Emergency Support</h1>
<p>24/7 emergency IT support to ensure smooth operations.</p>'
]);
}
public function managedServices(): void
{
// Render the managed services page with the layout
$this->render('pages/services/managed_services', [
'title' => 'Managed Services',
'content' => '<h1>Managed Services</h1>
<p>We offer a wide array of managed services</p>'
]);
} catch (\Throwable $e) {
Logger::error("ServicesController::index() - Error rendering services page: " . $e->getMessage());
ErrorHandler::exception($e);
}
}
}

View File

@ -1,19 +1,42 @@
<?php
namespace WizdomNetworks\WizeWeb\Controllers;
use WizdomNetworks\WizeWeb\Core\Controller;
use WizdomNetworks\WizeWeb\Core\View;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
class TestimonialsController extends Controller
class TestimonialsController
{
public function index(): void
public function index()
{
$contactForm = $this->getContactForm('Want to leave us feedback?');
Logger::debug("TestimonialsController::index() - Executing testimonials page rendering.");
$this->render('pages/testimonials', [
'title' => 'Testimonials - Wizdom Networks',
'content' => '<h1>Testimonials</h1>
<p>Here\'s what our clients have to say about us:</p>' . $contactForm
]);
try {
$data = [
'title' => 'Client Testimonials - Wizdom Networks',
'heroConfig' => [
'title' => 'What Our Clients Say',
'description' => 'Read testimonials from satisfied customers.',
'image' => '/assets/images/testimonials-hero.jpg',
'cta' => ['text' => 'Contact Us', 'link' => '/contact'],
'style' => 'default',
'position' => 'top'
],
'content' => "<h1>Client Testimonials</h1>
<p>Discover how our services have made a difference for our clients.</p>",
'testimonials' => [
['client' => 'John Doe, CEO of TechCorp', 'quote' => 'Wizdom Networks transformed our IT infrastructure!'],
['client' => 'Jane Smith, Founder of Startup Inc.', 'quote' => 'Exceptional service and expertise. Highly recommended!'],
['client' => 'Michael Brown, CIO of Enterprise Solutions', 'quote' => 'Reliable and professional IT consulting.']
]
];
Logger::debug("TestimonialsController::index() - Data prepared successfully.");
View::render('pages/testimonials', $data);
Logger::info("TestimonialsController::index() - Testimonials page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("TestimonialsController::index() - Error rendering testimonials page: " . $e->getMessage());
ErrorHandler::exception($e);
}
}
}

View File

@ -3,68 +3,43 @@
namespace WizdomNetworks\WizeWeb\Core;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
abstract class Controller
/**
* Base Controller
*
* This class provides foundational methods for all controllers, including rendering views
* and handling data passing.
*/
class Controller
{
/**
* Render a view file with the given data.
* Renders a view file and passes data to it.
*
* @param string $view The path to the view file.
* @param array $data Data to be extracted and used in the view.
* @throws \Exception If the view file cannot be found.
* @param string $view The name of the view file (relative to /resources/views/).
* @param array $data Associative array of variables to pass to the view.
* @throws \Exception If the view file is not found.
*/
protected function render(string $view, array $data = []): void
{
try {
// Extract data for use in the view
extract($data);
// Resolve the view path
$viewPath = __DIR__ . "/../../resources/views/$view.php";
Logger::info("[DEBUG] Resolving view: $view | Path: $viewPath");
if (file_exists($viewPath)) {
Logger::info("[DEBUG] Including view file: $viewPath");
include $viewPath;
Logger::info("[DEBUG] Successfully rendered view: $view");
} else {
throw new \Exception("View file not found: $view\nPath: $viewPath");
}
} catch (\Exception $e) {
// Log the exception with Logger
Logger::error("[ERROR] Exception while rendering view: " . $e->getMessage());
throw $e;
}
}
/**
* Get the rendered content of the contact form.
*
* This method renders the contact form view and returns the output as a string.
* It is used for embedding the contact form in various parts of the application.
*
* @param array $data Optional data to pass to the contact form view.
* @return string The rendered contact form HTML.
* @throws \Exception If the contact form view cannot be rendered.
*/
protected function getContactForm(array $data = []): string
{
try {
Logger::info("[DEBUG] Rendering contact form with data: " . json_encode($data));
// Buffer output to capture rendered content
ob_start();
$this->render('partials/contact_form', $data);
$output = ob_get_clean();
Logger::info("[DEBUG] Successfully rendered contact form");
return $output;
} catch (\Exception $e) {
// Log any exception that occurs
Logger::error("[ERROR] Exception while rendering contact form: " . $e->getMessage());
throw $e;
Logger::debug("Rendering view: $view");
// Extract data to make variables available in the view
extract($data);
// Build the full path to the view file
$viewPath = __DIR__ . "/../../resources/views/$view.php";
// Debugging: Log resolved path
Logger::debug("Resolved view path: $viewPath");
// Check if the file exists before including it
if (file_exists($viewPath)) {
include $viewPath;
Logger::debug("Successfully rendered view: $view");
} else {
Logger::error("View file not found: $view | Resolved path: $viewPath");
throw new \Exception("View file not found: $view");
}
}
}

View File

@ -5,45 +5,66 @@ namespace WizdomNetworks\WizeWeb\Core;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
/**
* Router Class
*
* Handles application routing by mapping URL paths to controller methods.
* Ensures all requests are routed through controllers and logs dispatch details.
*/
class Router
{
protected array $routes = [];
private array $routes = [];
/**
* Registers a new route.
*
* @param string $path The URL path.
* @param string $controller The fully qualified controller class name.
* @param string $method The method within the controller.
*/
public function add(string $path, string $controller, string $method): void
{
// Normalize the path to remove leading/trailing slashes
$normalizedPath = trim($path, '/');
$this->routes[$normalizedPath] = ['controller' => $controller, 'method' => $method];
Logger::info("Route added: $normalizedPath -> $controller::$method");
Logger::debug("Registering route: $path -> $controller::$method");
$this->routes[trim($path, '/')] = [$controller, $method];
}
public function dispatch(string $path): void
/**
* Dispatches the request to the appropriate controller and method.
*
* @param string $path The requested URL path.
*/
public function dispatch($path)
{
// Normalize the incoming path to remove leading/trailing slashes
$path = trim($path, '/');
Logger::debug("Dispatching path: $path");
Logger::info("Dispatching path: $path");
if (isset($this->routes[$path])) {
[$controllerName, $method] = $this->routes[$path];
Logger::debug("Loading controller: $controllerName::$method");
if (!isset($this->routes[$path])) {
try {
if (class_exists($controllerName)) {
$controller = new $controllerName();
if (method_exists($controller, $method)) {
Logger::info("Successfully dispatched: $controllerName::$method");
$controller->$method();
} else {
Logger::error("Method not found: $controllerName::$method");
throw new \Exception("Method $method not found in $controllerName");
}
} else {
Logger::error("Controller not found: $controllerName");
throw new \Exception("Controller $controllerName not found.");
}
} catch (\Throwable $e) {
ErrorHandler::exception($e);
Logger::error("Router dispatch error: " . $e->getMessage());
echo "500 Internal Server Error";
}
} else {
Logger::error("Route not found: $path");
http_response_code(404);
echo "404 - Page not found";
return;
echo "404 Not Found";
}
$controllerName = $this->routes[$path]['controller'];
$method = $this->routes[$path]['method'];
Logger::info("Loading controller: $controllerName::$method");
if (!class_exists($controllerName) || !method_exists($controllerName, $method)) {
Logger::error("Controller or method not found: $controllerName::$method");
http_response_code(500);
echo "500 - Internal server error";
return;
}
$controller = new $controllerName();
$controller->$method();
}
}

View File

@ -2,7 +2,43 @@
namespace WizdomNetworks\WizeWeb\Core;
class View {
// Placeholder
}
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
/**
* View Renderer
*
* Handles view rendering, ensuring proper data passing and error handling.
*/
class View
{
/**
* Renders a view file and passes data to it.
*
* @param string $view The name of the view file (relative to /resources/views/).
* @param array $data Associative array of variables to pass to the view.
* @throws \Exception If the view file is not found.
*/
public static function render(string $view, array $data = []): void
{
Logger::debug("Rendering view: $view");
// Extract data to make variables available in the view
extract($data);
// Build the full path to the view file
$viewPath = __DIR__ . "/../../resources/views/$view.php";
// Debugging: Log resolved path
Logger::debug("Resolved view path: $viewPath");
// Check if the file exists before including it
if (file_exists($viewPath)) {
include $viewPath;
Logger::debug("Successfully rendered view: $view");
} else {
Logger::error("View file not found: $view | Resolved path: $viewPath");
throw new \Exception("View file not found: $view");
}
}
}