diff --git a/.playwright-mcp/blade-index-final.png b/.playwright-mcp/blade-index-final.png new file mode 100644 index 0000000..cafb683 Binary files /dev/null and b/.playwright-mcp/blade-index-final.png differ diff --git a/.playwright-mcp/blade-index-fixed.png b/.playwright-mcp/blade-index-fixed.png new file mode 100644 index 0000000..840afc7 Binary files /dev/null and b/.playwright-mcp/blade-index-fixed.png differ diff --git a/.playwright-mcp/blade-index.png b/.playwright-mcp/blade-index.png new file mode 100644 index 0000000..d31d5cc Binary files /dev/null and b/.playwright-mcp/blade-index.png differ diff --git a/.playwright-mcp/twig-index.png b/.playwright-mcp/twig-index.png new file mode 100644 index 0000000..4d067b4 Binary files /dev/null and b/.playwright-mcp/twig-index.png differ diff --git a/LICENSE b/LICENSE index b93dbbf..81f2e4d 100755 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 Marco Costa (marcocosta@gmx.com) +Copyright (c) 2026 Marco Costa (marcocosta@gmx.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is provided to do so, subject to the following conditions: diff --git a/README.md b/README.md index a364394..f0a74cf 100755 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This software is free to use, modify, and distribute under the terms of the MIT License. -- **Website:** [https://sysmvc.duckdns.org](https://sysmvc.duckdns.org) +- **Website:** [https://sysmvc.syspanel.com.br](https://sysmvc.syspanel.com.br) - **GitHub:** [https://github.com/syspanel/SysMVC](https://github.com/syspanel/SysMVC) --- @@ -334,4 +334,4 @@ This project is licensed under the **MIT License**. You may use, copy, modify, m See [LICENSE](LICENSE) for the full license text. -© 2025 Marco Costa — All rights reserved under the MIT License. +© 2026 Marco Costa — All rights reserved under the MIT License. diff --git a/app/Controllers/CrudExampleController.php b/app/Controllers/CrudExampleController.php index 487ddc1..f4babea 100755 --- a/app/Controllers/CrudExampleController.php +++ b/app/Controllers/CrudExampleController.php @@ -17,6 +17,7 @@ class CrudExampleController extends BaseController public function __construct(BladeOne $blade, Logger $logger) { + parent::__construct(); $this->blade = $blade; $this->logger = $logger; } @@ -56,10 +57,9 @@ class CrudExampleController extends BaseController return 'Record not found'; } - $csrfToken = generateCsrfToken(); $crudexample = Sanitizer::sanitizeOutput($crudexample->toArray()); - return $this->blade->run('crudexample.edit', ['crudexample' => $crudexample, 'csrfToken' => $csrfToken]); + return $this->blade->run('crudexample.edit', ['crudexample' => $crudexample]); } catch (\Exception $e) { $this->logger->error('Error when displaying the edit page: ' . $e->getMessage()); return 'Error when displaying the edit page: ' . $e->getMessage(); diff --git a/app/Controllers/IndexController.php b/app/Controllers/IndexController.php index 1d3bb0b..fac4fb8 100755 --- a/app/Controllers/IndexController.php +++ b/app/Controllers/IndexController.php @@ -18,6 +18,6 @@ class IndexController extends BaseController public function index() { // Pass data to the view and render - return $this->blade->run('home', ['title' => 'Welcome to SysMVC2025!']); + return $this->blade->run('home', ['title' => 'Welcome to SysMVC 2.0!']); } } diff --git a/app/Controllers/TwigExampleController.php b/app/Controllers/TwigExampleController.php index 038eb38..3d4fc94 100755 --- a/app/Controllers/TwigExampleController.php +++ b/app/Controllers/TwigExampleController.php @@ -19,6 +19,7 @@ class TwigExampleController extends BaseController public function __construct(Environment $twig, Logger $logger, BladeOne $blade) { + parent::__construct(); $this->twig = $twig; $this->logger = $logger; $this->blade = $blade; @@ -53,7 +54,7 @@ class TwigExampleController extends BaseController { try { $this->logger->info('Displaying the creation page of the TwigExampleController.'); - return $this->twig->render('twigexample/create.twig.php', ['csrf_token' => htmlspecialchars(getCsrfToken(), ENT_QUOTES, 'UTF-8')]); + return $this->twig->render('twigexample/create.twig.php'); } catch (\Exception $e) { $this->logger->error('Error displaying the creation page: ' . $e->getMessage()); return 'Error displaying the creation page: ' . $e->getMessage(); @@ -73,7 +74,7 @@ class TwigExampleController extends BaseController $twigexample = Sanitizer::sanitizeOutput($twigexample->toArray()); $this->logger->info("Displaying the edit page for the record with ID: $id."); - return $this->twig->render('twigexample/edit.twig.php', ['twigexample' => $twigexample, 'csrf_token' => htmlspecialchars(getCsrfToken(), ENT_QUOTES, 'UTF-8')]); + return $this->twig->render('twigexample/edit.twig.php', ['twigexample' => $twigexample]); } catch (\Exception $e) { $this->logger->error('Error displaying the edit page: ' . $e->getMessage()); return 'Error displaying the edit page: ' . $e->getMessage(); diff --git a/app/Services/BaseController.php b/app/Services/BaseController.php index 32c858d..7d5673c 100755 --- a/app/Services/BaseController.php +++ b/app/Services/BaseController.php @@ -6,6 +6,9 @@ class BaseController { public function __construct() { + if (session_status() === PHP_SESSION_NONE) { + session_start(); + } // Adding security headers header("Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' https://trusted.cdn.com; img-src 'self' data:;"); header("X-Frame-Options: DENY"); diff --git a/bootstrap/csrf.php b/bootstrap/csrf.php index b28a125..0f02185 100755 --- a/bootstrap/csrf.php +++ b/bootstrap/csrf.php @@ -18,7 +18,10 @@ function generateCsrfToken() { function getCsrfToken() { startSessionIfNeeded(); - return $_SESSION['csrf_token'] ?? ''; + if (empty($_SESSION['csrf_token'])) { + $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); + } + return $_SESSION['csrf_token']; } function validateCsrfToken($token) { diff --git a/cache/crudexample.create_037f6998fb1d7c9150960f5f1a8cde08782263fa.bladec b/cache/crudexample.create_037f6998fb1d7c9150960f5f1a8cde08782263fa.bladec new file mode 100644 index 0000000..c058045 --- /dev/null +++ b/cache/crudexample.create_037f6998fb1d7c9150960f5f1a8cde08782263fa.bladec @@ -0,0 +1,52 @@ + + +startSection('title', 'Crud Example Create'); ?> + +startSection('content'); ?> +
+

Blade - Crud Example New Item

+ + + +
+ + +
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+stopSection(); ?> + +runChild('layout'); } ?> \ No newline at end of file diff --git a/cache/crudexample.index_a32003139e163dee015907d81f466497e3abeeb8.bladec b/cache/crudexample.index_a32003139e163dee015907d81f466497e3abeeb8.bladec new file mode 100644 index 0000000..434222a --- /dev/null +++ b/cache/crudexample.index_a32003139e163dee015907d81f466497e3abeeb8.bladec @@ -0,0 +1,47 @@ + + +startSection('title', 'Crud Example List'); ?> + +startSection('content'); ?> +
+
+

Blade - Crud Example List

+ Add New Item +
+
+ + + + + + + + + + + addLoop($__currentLoopData);$this->getFirstLoop(); + foreach($__currentLoopData as $item): $loop = $this->incrementLoopIndices(); ?> + + + + + + + popLoop(); $loop = $this->getFirstLoop(); ?> + +
IDNameCompanyActions
+
+ View + Edit +
+ + + +
+
+
+
+
+stopSection(); ?> + +runChild('layout'); } ?> \ No newline at end of file diff --git a/cache/crudexample.show_d88dd6335709adbf5da7ded6cbb01ed8ea2cd951.bladec b/cache/crudexample.show_d88dd6335709adbf5da7ded6cbb01ed8ea2cd951.bladec new file mode 100644 index 0000000..5a51d32 --- /dev/null +++ b/cache/crudexample.show_d88dd6335709adbf5da7ded6cbb01ed8ea2cd951.bladec @@ -0,0 +1,51 @@ + + +startSection('title', 'Crud Example Show'); ?> + +startSection('content'); ?> +
+

Blade - Crud Example Show

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID
Name
Company
Address
Phone
Email
Notes
+ Edit + + +
+ + + +
+ + Back to List +
+stopSection(); ?> + +runChild('layout'); } ?> \ No newline at end of file diff --git a/cache/home.about_26eff7de6dd07822babadd2880b079d6b5eedf4c.bladec b/cache/home.about_26eff7de6dd07822babadd2880b079d6b5eedf4c.bladec new file mode 100644 index 0000000..184a604 --- /dev/null +++ b/cache/home.about_26eff7de6dd07822babadd2880b079d6b5eedf4c.bladec @@ -0,0 +1,30 @@ + + +startSection('title', 'About'); ?> + +startSection('content'); ?> +
+

About Us

+

Welcome to SysMVC - PHP Framework!

+

SysMVC is a PHP framework developed to simplify the creation of robust and scalable web applications. We use the best development practices and modern tools to provide an efficient and enjoyable development experience.

+

Our mission is to help developers build high-quality web applications quickly and effectively. We offer a solid and flexible framework, allowing you to focus on what really matters: creating amazing features for your users.

+

If you have any questions or need support, feel free to contact us. We are here to help!

+

Marco Costa

+

Developer and Creator of SysMVC

+

Official website: sysmvc.syspanel.com.br

+

Contact email: syspanel@gmx.com

+

Github: https://github.com/syspanel/SysMVC.git

+ +
+ +

🙎 Support the Project

+

If you find this project useful, consider supporting its development with a donation via PayPal:

+

+ + Donate via PayPal + +

+
+stopSection(); ?> + +runChild('layout'); } ?> \ No newline at end of file diff --git a/cache/home.app-development_8962d22c692cd7913008b10e791fad36ea250b5e.bladec b/cache/home.app-development_8962d22c692cd7913008b10e791fad36ea250b5e.bladec new file mode 100644 index 0000000..25f39c0 --- /dev/null +++ b/cache/home.app-development_8962d22c692cd7913008b10e791fad36ea250b5e.bladec @@ -0,0 +1,55 @@ + + +startSection('title', 'App Development with SysMVC'); ?> + +startSection('content'); ?> +
+

App Development with SysMVC

+

How to use SysMVC as a base for application development.

+ +

SysMVC is a flexible and powerful framework, perfect for serving as the foundation for developing modern web applications.

+ +

Modular Structure

+

SysMVC allows you to create independent modules, making it easier to organize your code and maintain the project.

+ +

Simple Routing

+

With SysMVC's router, you can define your routes in a simple and intuitive way:

+

+Router::get('/home', 'HomeController@index');
+Router::post('/client', 'ClientController@store');
+ 
+ +

Template Rendering

+

Use BladeOne to efficiently and neatly render your templates:

+

+echo $blade->run("home.index", ["clients" => $clients]);
+ 
+ +

With these tools, SysMVC provides a solid foundation for developing robust and scalable web applications.

+ +

+ +

Github: https://github.com/syspanel/SysMVC.git

+ +

+ +

Contact

+

If you're interested in SysMVC, get in touch:

+ + +
+ +

🙎 Support the Project

+

If you find this project useful, consider supporting its development with a donation via PayPal:

+

+ + Donate via PayPal + +

+
+stopSection(); ?> + +runChild('layout'); } ?> \ No newline at end of file diff --git a/cache/home.console-cli_51835b7aae1ed3b9727e8f5eecb077eba4fa46b4.bladec b/cache/home.console-cli_51835b7aae1ed3b9727e8f5eecb077eba4fa46b4.bladec new file mode 100644 index 0000000..3d5cf0b --- /dev/null +++ b/cache/home.console-cli_51835b7aae1ed3b9727e8f5eecb077eba4fa46b4.bladec @@ -0,0 +1,93 @@ + + +startSection('title', 'Console CLI'); ?> + +startSection('content'); ?> +
+

Console CLI

+

The SysMVC CLI console, based on Symfony Console, allows you to efficiently manage your project using command-line commands.

+ +

Useful Commands

+ + +

Extending with More Commands

+

The Symfony Console allows you to create and extend custom commands. Here is an example of how to create a custom command:

+
+ 
+ // src/Command/SayHelloCommand.php
+ namespace App\Command;
+
+ use Symfony\Component\Console\Command\Command;
+ use Symfony\Component\Console\Input\InputInterface;
+ use Symfony\Component\Console\Output\OutputInterface;
+
+ class SayHelloCommand extends Command
+ {
+ protected static $defaultName = 'app:say-hello';
+
+ protected function configure()
+ {
+ $this
+ ->setDescription('Says hello.')
+ ->setHelp('This command allows you to say hello...');
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $output->writeln('Hello from SysMVC!');
+ return Command::SUCCESS;
+ }
+ }
+ 
+ 
+ +

To register the command, add it to the service in the config/services.yaml file:

+
+ 
+ # config/services.yaml
+ services:
+ App\Command\SayHelloCommand:
+ tags: ['console.command']
+ 
+ 
+ +

Now you can execute the custom command:

+
+ 
+ $ php bin/console app:say-hello
+ 
+ 
+ +

For more information about available commands and how to create custom commands, check the Symfony Console documentation.

+
+ + +

+ +

Github: https://github.com/syspanel/SysMVC.git

+ +

+ +

Contact

+

If you're interested in SysMVC, get in touch:

+ + +
+ +

🙎 Support the Project

+

If you find this project useful, consider supporting its development with a donation via PayPal:

+

+ + Donate via PayPal + +

+ +stopSection(); ?> + +runChild('layout'); } ?> \ No newline at end of file diff --git a/cache/home.database_e1679d355525ebc4c94def0963ab8bd9e61cdd10.bladec b/cache/home.database_e1679d355525ebc4c94def0963ab8bd9e61cdd10.bladec new file mode 100644 index 0000000..1d1a726 --- /dev/null +++ b/cache/home.database_e1679d355525ebc4c94def0963ab8bd9e61cdd10.bladec @@ -0,0 +1,70 @@ + + +startSection('title', 'Database Usage'); ?> + +startSection('content'); ?> +
+

Database Usage

+

CRUD Example with SysMVC.

+ +

SysMVC makes it easy to interact with databases through the use of Eloquent ORM. You can easily create, read, update, and delete records in the database using intuitive methods.

+ +

CRUD Example

+

Below is a basic example of CRUD operations:

+ +

Creating a Record

+

+$client = new Client();
+$client->name = 'Client Name';
+$client->email = 'email@example.com';
+$client->save();
+ 
+ +

Reading Records

+

+$clients = Client::all();
+foreach ($clients as $client) {
+ echo $client->name;
+}
+ 
+ +

Updating a Record

+

+$client = Client::find(1);
+$client->name = 'New Name';
+$client->save();
+ 
+ +

Deleting a Record

+

+$client = Client::find(1);
+$client->delete();
+ 
+ +

With these examples, you can see how easy it is to work with databases using SysMVC.

+

+ +

Github: https://github.com/syspanel/SysMVC.git

+ +

+ +

Contact

+

If you're interested in SysMVC, get in touch:

+ + +
+ +

🙎 Support the Project

+

If you find this project useful, consider supporting its development with a donation via PayPal:

+

+ + Donate via PayPal + +

+
+stopSection(); ?> + +runChild('layout'); } ?> \ No newline at end of file diff --git a/cache/home.dependency-injection_594c89ed9d56dcafb43051ec4fdf5cf31afef7ad.bladec b/cache/home.dependency-injection_594c89ed9d56dcafb43051ec4fdf5cf31afef7ad.bladec new file mode 100644 index 0000000..51cbdbc --- /dev/null +++ b/cache/home.dependency-injection_594c89ed9d56dcafb43051ec4fdf5cf31afef7ad.bladec @@ -0,0 +1,66 @@ + + +startSection('title', 'Dependency Injection with PHP-DI'); ?> + +startSection('content'); ?> +
+

Dependency Injection with PHP-DI

+

How to use PHP-DI in SysMVC.

+ +

SysMVC uses the PHP-DI library to manage dependency injection. This allows you to write more modular and testable code.

+ +

Basic Configuration

+

To configure PHP-DI, you can create a di-config.php file with the definitions of your dependencies:

+
addDefinitions([
+ // Define your dependencies here
+ ClientRepository::class => \DI\create(MySqlClientRepository::class),
+ ]);
+ };'??'', ENT_QUOTES, 'UTF-8', false); ?>
+ +

Usage

+

To use dependency injection in your classes, simply pass the dependencies through the constructor:

+
clientRepository = $clientRepository;
+ }
+ 
+ public function getClients() {
+ return $this->clientRepository->findAll();
+ }
+ }'??'', ENT_QUOTES, 'UTF-8', false); ?>
+ +

With dependency injection, you can easily swap implementations and keep your code decoupled and more testable.

+ +

+ +

Github: https://github.com/syspanel/SysMVC.git

+ +

+ +

Contact

+

If you're interested in SysMVC, get in touch:

+ + +
+ +

🙎 Support the Project

+

If you find this project useful, consider supporting its development with a donation via PayPal:

+

+ + Donate via PayPal + +

+
+stopSection(); ?> + + + +runChild('layout'); } ?> \ No newline at end of file diff --git a/cache/home.readme_6e943e700f9ea471f77e2e66a077c13c16103af1.bladec b/cache/home.readme_6e943e700f9ea471f77e2e66a077c13c16103af1.bladec new file mode 100644 index 0000000..3279242 --- /dev/null +++ b/cache/home.readme_6e943e700f9ea471f77e2e66a077c13c16103af1.bladec @@ -0,0 +1,199 @@ + + +startSection('title', 'Readme - SysMVC'); ?> + +startSection('content'); ?> +
+ +

SysMVC

+

A lightweight PHP MVC framework by Marco Costa — MIT License

+ +

+ SysMVC is a system developed by Marco Costa + (syspanel@gmx.com), with source code licensed under the MIT License. +

+

This software is offered for free and can be used, modified, and distributed under the terms of the MIT License.

+

+ Website: https://sysmvc.syspanel.com.br
+ GitHub: https://github.com/syspanel/SysMVC +

+ +
+ + +

🙎 Support the Project

+

If you find this project useful, consider supporting its development with a donation via PayPal:

+

+ + Donate via PayPal + +

+ +
+ + +

🚀 Features

+ + +
+ + +

🔧 Requirements

+ + + + + + + + + + + + + +
RequirementVersion
PHP>= 7.4
Composerlatest stable
Web ServerApache or Nginx
DatabaseMySQL 5.7+
+ +
+ + +

🛠🏽 Installation

+ +

1° Unzip the File

+

Download and unzip the SysMVC file to your local environment:

+
unzip sysmvc.zip -d sysmvc
+cd sysmvc
+ +

2° Install the Dependencies

+

Use Composer to install the project dependencies:

+
composer install
+ +

3° Configure the Environment

+

Copy the .env.example file to .env and configure your environment variables:

+
cp .env.example .env
+

Open the .env file and edit the following lines with your information:

+
DB_CONNECTION=mysql
+DB_HOST=127.0.0.1
+DB_PORT=3306
+DB_DATABASE=your_database
+DB_USERNAME=your_username
+DB_PASSWORD=your_password
+ +

4° Set Permissions

+

Change the permissions of the storage, cache, and logs directories to ensure the web server can write to them:

+
chmod -R 775 storage
+chmod -R 775 cache
+chmod -R 775 logs
+chmod -R 775 bootstrap/cache
+ +

5° Generate the Application Key

+
php bin/console generate:app-key
+ +

6° Run the Migrations

+

Run the migrations to create the tables in the database:

+
php bin/console migrate:crudexample
+ +

7° Configure the Web Server

+ +
📄 Apache
+

Add the following configuration to your Apache configuration file:

+
<VirtualHost *:80>
+ ServerName sysmvc.local
+ DocumentRoot /path/to/sysmvc/public
+
+ <Directory /path/to/sysmvc/public>
+ AllowOverride All
+ Require all granted
+ </Directory>
+</VirtualHost>
+ +
📄 Nginx
+

Add the following configuration to your Nginx configuration file:

+
server {
+ listen 80;
+ server_name sysmvc.local;
+ root /path/to/sysmvc/public;
+
+ index index.php index.html index.htm;
+
+ location / {
+ try_files $uri $uri/ /index.php?$query_string;
+ }
+
+ location ~ \.php$ {
+ include snippets/fastcgi-php.conf;
+ fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
+ }
+}
+ +
+ + +

📦 Dependencies Used

+

The project uses the following third-party packages, each with its respective license:

+ +

✔ Packages with MIT License

+ + +
+ + +

📝 Terms of Use

+

This project is licensed under the MIT License.

+

You can use, copy, modify, merge, publish, distribute, sublicense, or sell copies of the Software, as long as the license and copyright notice are included in all copies or substantial portions of the Software.

+

The Software is provided “as is”, without warranties of any kind. For more details, see the MIT License.

+

For more information, contact: syspanel@gmx.com

+ +

© 2026 Marco Costa — All rights reserved under the MIT License.

+ +
+stopSection(); ?> + +runChild('layout'); } ?> \ No newline at end of file diff --git a/cache/home.security_00e407a7103632baec32bcc5bb945eb192609887.bladec b/cache/home.security_00e407a7103632baec32bcc5bb945eb192609887.bladec new file mode 100644 index 0000000..47b9b78 --- /dev/null +++ b/cache/home.security_00e407a7103632baec32bcc5bb945eb192609887.bladec @@ -0,0 +1,43 @@ + + +startSection('title', 'Security'); ?> + +startSection('content'); ?> +
+

Security

+

We have implemented several security measures in SysMVC to protect your application against threats. Here are some of the implementations:

+

CSRF Protection

+

We use CSRF tokens to protect against Cross-Site Request Forgery attacks.

+

Data Sanitization

+

All input and output data are sanitized to prevent code injections and other attacks.

+

Security Headers

+

We add HTTP security headers to protect against attacks like clickjacking and MIME-type sniffing.

+

For more information about security, refer to the OWASP documentation.

+
+ +

+ +

Github: https://github.com/syspanel/SysMVC.git

+ +

+ +

Contact

+

If you're interested in SysMVC, feel free to contact us:

+ + +
+ +

🙎 Support the Project

+

If you find this project useful, consider supporting its development with a donation via PayPal:

+

+ + Donate via PayPal + +

+ +stopSection(); ?> + +runChild('layout'); } ?> \ No newline at end of file diff --git a/cache/home.templates-blade_6e0634407f54502874bdbf5974d193d272b120a5.bladec b/cache/home.templates-blade_6e0634407f54502874bdbf5974d193d272b120a5.bladec new file mode 100644 index 0000000..9b00240 --- /dev/null +++ b/cache/home.templates-blade_6e0634407f54502874bdbf5974d193d272b120a5.bladec @@ -0,0 +1,56 @@ + + +startSection('title', 'SysMVC Advantages - Blade, Twig, and Pure PHP'); ?> + +startSection('content'); ?> +
+

SysMVC: Support for Blade, Twig, and Pure PHP

+

SysMVC is a versatile PHP framework that supports three template rendering methods: Blade, Twig, and Pure PHP. This flexibility allows developers to choose the tool that best suits their needs, providing several advantages.

+ +

Blade Advantages

+

Blade is a simple yet powerful template engine developed for the Laravel framework. With Blade, developers can easily create reusable layouts and dynamic components. It is known for its clean and clear syntax, making template development fast and intuitive.

+

For more information, refer to the official Blade documentation.

+ +

Twig Advantages

+

Twig is a flexible and robust template engine, widely used in various PHP frameworks. It offers a series of advanced features such as template inheritance, filters, custom extensions, and more. Twig is known for its security and performance, making it a reliable choice for projects of any scale.

+

For more information, refer to the official Twig documentation.

+ +

Pure PHP Advantages

+

SysMVC also supports template rendering using pure PHP. This means you can directly include PHP files and render content dynamically. If you prefer not to use a template engine, you can simply use the include command to include template files and generate the desired content. This can be a simpler and more straightforward choice for smaller projects or developers more familiar with PHP.

+

Example of using pure PHP in SysMVC:

+
include('page.php');
+ +

Why Choose SysMVC?

+

With SysMVC, you don't have to worry about choosing between Blade, Twig, or Pure PHP. You can use any of these options, or even combine different approaches within the same project, depending on the context. This flexibility is a significant advantage, as it allows developers to take the best of each tool, adapting to their preferences and specific requirements.

+ +

Conclusion

+

Whether you're a Blade enthusiast, a Twig fan, or someone who prefers pure PHP, SysMVC is ready to meet your needs. The ability to switch between these options makes SysMVC an excellent choice for developers seeking efficiency, flexibility, and ease of use in their PHP projects.

+
+ +

+ +

Github: https://github.com/syspanel/SysMVC.git

+ +

+ +

Contact

+

If you're interested in SysMVC, feel free to contact us:

+ + +
+ +

🙎 Support the Project

+

If you find this project useful, consider supporting its development with a donation via PayPal:

+

+ + Donate via PayPal + +

+ +stopSection(); ?> + + +runChild('layout'); } ?> \ No newline at end of file diff --git a/cache/home_6e120cc9acc88bff03fde36dfe633a1bfbc6aaca.bladec b/cache/home_6e120cc9acc88bff03fde36dfe633a1bfbc6aaca.bladec new file mode 100644 index 0000000..cee727d --- /dev/null +++ b/cache/home_6e120cc9acc88bff03fde36dfe633a1bfbc6aaca.bladec @@ -0,0 +1,87 @@ + + +startSection('title', 'SysMVC - PHP Framework'); ?> + +startSection('content'); ?> +
+

Welcome to SysMVC

+

PHP framework for website and app development.

+ Learn More Details +
+ +
+
+
+ Image +
+
Database Usage
+

Learn how to use the database in SysMVC with CRUD examples.

+ See More +
+
+
+
+
+ Image +
+
Dependency Injection
+

Learn how to use dependency injection with PHP-DI in SysMVC.

+ See More +
+
+
+
+
+ Image +
+
App Projects
+

See how to use SysMVC as a base for application development.

+ See More +
+
+
+
+ +
+ +
+ +
+
+ Image +
+
Blade & Twig Templates Engine
+

Learn more about using Blade and/or Twig templates with SysMVC.

+ See More +
+
+
+ + + +
+
+ Image +
+
Security
+

Security implementations in SysMVC.

+ See More +
+
+
+ + +
+
+ Image +
+
Console CLI
+

Use the CLI console to manage your SysMVC project.

+ See More +
+
+
+
+stopSection(); ?> + +runChild('layout'); } ?> \ No newline at end of file diff --git a/cache/layout_61d625cce8d73fa5a4bdd25fd2592bba4196d57c.bladec b/cache/layout_61d625cce8d73fa5a4bdd25fd2592bba4196d57c.bladec new file mode 100644 index 0000000..d95c62d --- /dev/null +++ b/cache/layout_61d625cce8d73fa5a4bdd25fd2592bba4196d57c.bladec @@ -0,0 +1,97 @@ + + + + + + <?php echo $this->yieldContent('title', 'Default Title'); ?> + + + + + + + + + + + + + + + + + + + + +
+ yieldContent('content'); ?> +
+ + + + + + + + + + + + + + + + + diff --git a/cache/test_ddcde3b0d4cf049757ae99a187db0aab86ad0f2c.bladec b/cache/test_ddcde3b0d4cf049757ae99a187db0aab86ad0f2c.bladec new file mode 100644 index 0000000..344f261 --- /dev/null +++ b/cache/test_ddcde3b0d4cf049757ae99a187db0aab86ad0f2c.bladec @@ -0,0 +1,11 @@ + + + + <?php echo \htmlentities($title??'', ENT_QUOTES, 'UTF-8', false); ?> + + +

+

Esta é a página do TesteController.

+ + + diff --git a/composer.json b/composer.json index e6d0d18..3452380 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "sysmvc/sysmvc", "description": "SysCMS", - "version": "1.0.0", + "version": "2.0.0", "date": "2025-03-08", "authors": [ { diff --git a/config/container.php b/config/container.php index 19fc80e..fa6c3c4 100755 --- a/config/container.php +++ b/config/container.php @@ -24,9 +24,9 @@ $containerBuilder->addDefinitions([ $loader = new FilesystemLoader(VIEWS_PATH); $twig = new Environment($loader); - // Register the PHP function getCsrfToken + // Register the csrf helper — returns a hidden input field (same as Blade's csrf()) $csrfFunction = new TwigFunction('csrf', function () { - return getCsrfToken(); + return ''; }); $twig->addFunction($csrfFunction); diff --git a/logs/app.log b/logs/app.log index 5964559..0233376 100755 --- a/logs/app.log +++ b/logs/app.log @@ -2224,3 +2224,91 @@ [2026-09-04T15:01:06.824371-03:00] app.INFO: Displaying the TwigExampleController page. [] [] [2026-09-04T15:01:09.047869-03:00] app.INFO: Displaying the ReadMe page. [] [] [2026-09-04T15:02:25.429496-03:00] app.INFO: Displaying the ReadMe page. [] [] +[2026-09-04T15:08:57.392912-03:00] app.INFO: Displaying the ReadMe page. [] [] +[2026-09-04T15:09:02.888678-03:00] app.INFO: Displaying the ReadMe page. [] [] +[2026-09-04T15:10:06.503930-03:00] app.INFO: Displaying the ReadMe page. [] [] +[2026-09-04T15:10:53.510104-03:00] app.INFO: Displaying the ReadMe page. [] [] +[2026-09-04T15:11:05.385265-03:00] app.INFO: Displaying the About page. [] [] +[2026-09-04T15:11:12.042132-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:11:13.896408-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:11:28.256337-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:11:29.201653-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:11:32.819857-03:00] app.INFO: Displaying the record with ID: 1. [] [] +[2026-09-04T15:11:34.661554-03:00] app.INFO: Displaying the edit page for the record with ID: 1. [] [] +[2026-09-04T15:11:39.054148-03:00] app.INFO: Record with ID: 1 updated successfully. [] [] +[2026-09-04T15:11:39.067675-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:11:42.106245-03:00] app.INFO: Displaying the creation page of the TwigExampleController. [] [] +[2026-09-04T15:11:45.881272-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:14:07.775985-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:14:08.970775-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:14:21.422134-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:15:27.906319-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:16:13.895369-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:16:55.055355-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:17:06.611294-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:17:10.152207-03:00] app.INFO: Displaying the edit page for the record with ID: 1. [] [] +[2026-09-04T15:17:26.130343-03:00] app.INFO: Record with ID: 1 updated successfully. [] [] +[2026-09-04T15:17:26.142839-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:17:30.698147-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:17:34.429665-03:00] app.INFO: Deleting record with ID: 1 [] [] +[2026-09-04T15:17:34.445863-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:17:39.244466-03:00] app.INFO: Displaying the ReadMe page. [] [] +[2026-09-04T15:18:40.094464-03:00] app.INFO: Displaying the About page. [] [] +[2026-09-04T15:18:51.970927-03:00] app.INFO: Displaying the Learn More page. [] [] +[2026-09-04T15:19:16.745939-03:00] app.INFO: Displaying the About page. [] [] +[2026-09-04T15:19:20.341399-03:00] app.INFO: Displaying the Learn More page. [] [] +[2026-09-04T15:19:24.151797-03:00] app.INFO: Displaying the Database Usage page. [] [] +[2026-09-04T15:19:27.611229-03:00] app.INFO: Displaying the Dependency Injection page. [] [] +[2026-09-04T15:19:31.158256-03:00] app.INFO: Displaying the App Development page. [] [] +[2026-09-04T15:19:34.747762-03:00] app.INFO: Displaying the Blade Templates page. [] [] +[2026-09-04T15:19:38.483107-03:00] app.INFO: Displaying the Security page. [] [] +[2026-09-04T15:19:42.093967-03:00] app.INFO: Displaying the Console CLI page. [] [] +[2026-09-04T15:19:46.031877-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:20:03.661052-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:20:12.962989-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:20:22.404965-03:00] app.INFO: Deleting record with ID: 31 [] [] +[2026-09-04T15:20:22.423612-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:20:35.140763-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:20:39.779376-03:00] app.INFO: Displaying the edit page for the record with ID: 2. [] [] +[2026-09-04T15:20:48.263698-03:00] app.INFO: Record with ID: 2 updated successfully. [] [] +[2026-09-04T15:20:48.274593-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:21:28.763130-03:00] app.INFO: Exibindo a página do TesteController. [] [] +[2026-09-04T15:21:32.992434-03:00] app.INFO: Displaying the creation page of the TwigExampleController. [] [] +[2026-09-04T15:21:47.967633-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:21:53.707163-03:00] app.INFO: Displaying the record with ID: 32. [] [] +[2026-09-04T15:22:02.897798-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:22:07.507718-03:00] app.INFO: Record with ID: 32 deleted successfully. [] [] +[2026-09-04T15:22:07.518715-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:27:09.237549-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:27:20.615506-03:00] app.INFO: Displaying the record with ID: 2. [] [] +[2026-09-04T15:28:12.564656-03:00] app.INFO: Displaying the creation page of the TwigExampleController. [] [] +[2026-09-04T15:28:20.824727-03:00] app.INFO: Displaying the edit page for the record with ID: 2. [] [] +[2026-09-04T15:28:27.408739-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:28:39.316445-03:00] app.INFO: Displaying the ReadMe page. [] [] +[2026-09-04T15:28:45.330389-03:00] app.INFO: Displaying the About page. [] [] +[2026-09-04T15:30:55.127578-03:00] app.INFO: Displaying the creation page of the TwigExampleController. [] [] +[2026-09-04T15:31:00.638965-03:00] app.INFO: Displaying the edit page for the record with ID: 2. [] [] +[2026-09-04T15:31:14.614384-03:00] app.INFO: Displaying the creation page of the TwigExampleController. [] [] +[2026-09-04T15:31:31.401582-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:31:40.425300-03:00] app.INFO: Displaying the edit page for the record with ID: 33. [] [] +[2026-09-04T15:31:53.770744-03:00] app.INFO: Record with ID: 33 updated successfully. [] [] +[2026-09-04T15:31:53.784605-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:33:04.491819-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:34:02.076212-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:34:21.876520-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:35:01.330656-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:35:24.355757-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:35:26.521515-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:35:43.326750-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:35:45.553298-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:37:29.929344-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:37:36.326721-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:38:30.410616-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:38:33.170180-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:38:42.632948-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:39:08.862582-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:39:12.227268-03:00] app.INFO: Displaying the CrudExampleController page. [] [] +[2026-09-04T15:39:13.741424-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:42:22.365575-03:00] app.INFO: Displaying the TwigExampleController page. [] [] +[2026-09-04T15:42:28.561495-03:00] app.INFO: Displaying the ReadMe page. [] [] +[2026-09-04T15:42:37.807210-03:00] app.INFO: Displaying the About page. [] [] diff --git a/resources/views/crudexample/index.blade.php b/resources/views/crudexample/index.blade.php index 9a2a415..16e9904 100755 --- a/resources/views/crudexample/index.blade.php +++ b/resources/views/crudexample/index.blade.php @@ -25,14 +25,14 @@ {{ $item['name'] }} {{ $item['company'] }} - View - Edit - - -
- - -
+
+ View + Edit +
+ {{ csrf() }} + +
+
@endforeach diff --git a/resources/views/crudexample/show.blade.php b/resources/views/crudexample/show.blade.php index 4f97c99..8dfceaf 100755 --- a/resources/views/crudexample/show.blade.php +++ b/resources/views/crudexample/show.blade.php @@ -35,12 +35,12 @@ {{ $crudexample['notes'] }} - Edit - + Edit + -
- - + + {{ csrf() }} +
Back to List diff --git a/resources/views/home/about.blade.php b/resources/views/home/about.blade.php index bd898f8..8867996 100755 --- a/resources/views/home/about.blade.php +++ b/resources/views/home/about.blade.php @@ -13,12 +13,16 @@

Developer and Creator of SysMVC

Official website: sysmvc.syspanel.com.br

Contact email: syspanel@gmx.com

-

Github: https://github.com/syspanel/SysMVC.git

- ## Donations via PayPal +

Github: https://github.com/syspanel/SysMVC.git

-If you wish to support the development of SysMVC, consider making a donation via PayPal to: +
-

Donations via PAYPAL

-

If you wish to support the development of SysMVC, consider making a donation via PAYPAL to Donate via PayPal

+

🙎 Support the Project

+

If you find this project useful, consider supporting its development with a donation via PayPal:

+

+ + Donate via PayPal + +

@endsection diff --git a/resources/views/home/app-development.blade.php b/resources/views/home/app-development.blade.php index 6381d99..73c0770 100755 --- a/resources/views/home/app-development.blade.php +++ b/resources/views/home/app-development.blade.php @@ -32,7 +32,7 @@ echo $blade->run("home.index", ["clients" => $clients]);

Github: https://github.com/syspanel/SysMVC.git



- +

Contact

If you're interested in SysMVC, get in touch:

- ## Donations via PayPal +
-If you wish to support the development of SysMVC, consider making a donation via PayPal to: - -

Donations via PAYPAL

-

If you wish to support the development of SysMVC, consider making a donation via PAYPAL to Donate via PayPal

+

🙎 Support the Project

+

If you find this project useful, consider supporting its development with a donation via PayPal:

+

+ + Donate via PayPal + +

@endsection diff --git a/resources/views/home/console-cli.blade.php b/resources/views/home/console-cli.blade.php index b0d9034..ab3ee81 100755 --- a/resources/views/home/console-cli.blade.php +++ b/resources/views/home/console-cli.blade.php @@ -78,11 +78,14 @@
  • WhatsApp: +55 (35) 99226-1684
  • -
    - ## Donations via PayPal +
    -If you wish to support the development of SysMVC, consider making a donation via PayPal to: - -

    Donations via PAYPAL

    -

    If you wish to support the development of SysMVC, consider making a donation via PAYPAL to Donate via PayPal

    +

    🙎 Support the Project

    +

    If you find this project useful, consider supporting its development with a donation via PayPal:

    +

    + + Donate via PayPal + +

    + @endsection diff --git a/resources/views/home/database.blade.php b/resources/views/home/database.blade.php index 1a24bdc..51ed99c 100755 --- a/resources/views/home/database.blade.php +++ b/resources/views/home/database.blade.php @@ -48,19 +48,21 @@ $client->delete();

    -

    Contact

    -

    If you're interested in SysMVC, get in touch:

    - +

    Contact

    +

    If you're interested in SysMVC, get in touch:

    + -## Donations via PayPal - -If you wish to support the development of SysMVC, consider making a donation via PayPal to: - -

    Donations via PAYPAL

    -

    If you wish to support the development of SysMVC, consider making a donation via PAYPAL to Donate via PayPal

    +
    +

    🙎 Support the Project

    +

    If you find this project useful, consider supporting its development with a donation via PayPal:

    +

    + + Donate via PayPal + +

    @endsection diff --git a/resources/views/home/dependency-injection.blade.php b/resources/views/home/dependency-injection.blade.php index bf86cf0..74d35fb 100755 --- a/resources/views/home/dependency-injection.blade.php +++ b/resources/views/home/dependency-injection.blade.php @@ -53,12 +53,15 @@
  • WhatsApp: +55 (35) 99226-1684
  • - ## Donations via PayPal +
    -If you wish to support the development of SysMVC, consider making a donation via PayPal to: - -

    Donations via PAYPAL

    -

    If you wish to support the development of SysMVC, consider making a donation via PAYPAL to Donate via PayPal

    +

    🙎 Support the Project

    +

    If you find this project useful, consider supporting its development with a donation via PayPal:

    +

    + + Donate via PayPal + +

    @endsection diff --git a/resources/views/home/details.blade.php b/resources/views/home/details.blade.php index 2a7566b..5007ca5 100755 --- a/resources/views/home/details.blade.php +++ b/resources/views/home/details.blade.php @@ -36,7 +36,7 @@
     MIT License
     
    -Copyright (c) 2025 Marco Costa
    +Copyright (c) 2026 Marco Costa
     
     Permission is hereby granted, free of charge, to any person obtaining a copy
     of this software and associated documentation files (the "Software"), to deal
    @@ -70,13 +70,14 @@ SOFTWARE.
             
  • WhatsApp: +55 (35) 99226-1684
  • -
    - ## Donations via PayPal - -If you wish to support the development of SysMVC, consider making a donation via PayPal to: - -

    Donations via PAYPAL

    -

    If you wish to support the development of SysMVC, consider making a donation via PAYPAL to Donate via PayPal

    +
    +

    🙎 Support the Project

    +

    If you find this project useful, consider supporting its development with a donation via PayPal:

    +

    + + Donate via PayPal + +

    @endsection diff --git a/resources/views/home/readme.blade.php b/resources/views/home/readme.blade.php index 59490c3..ca82bfc 100755 --- a/resources/views/home/readme.blade.php +++ b/resources/views/home/readme.blade.php @@ -1,85 +1,114 @@ @extends('layout') -@section('title', 'Project Information') +@section('title', 'Readme - SysMVC') @section('content')
    -

    SysMVC - PHP Framework

    -
    +

    SysMVC

    +

    A lightweight PHP MVC framework by Marco Costa — MIT License

    -

    Github: https://github.com/syspanel/SysMVC.git

    - -

    - -

    Project Information

    -

    SysMVC is a system developed by Marco Costa (syspanel@gmx.com), with source code licensed under the MIT License.

    +

    + SysMVC is a system developed by Marco Costa + (syspanel@gmx.com), with source code licensed under the MIT License. +

    This software is offered for free and can be used, modified, and distributed under the terms of the MIT License.

    -

    Project website: https://sysmvc.syspanel.com.br

    - ## Donations via PayPal +

    + Website: https://sysmvc.syspanel.com.br
    + GitHub: https://github.com/syspanel/SysMVC +

    -If you wish to support the development of SysMVC, consider making a donation via PayPal to: +
    -

    Donations via PAYPAL

    -

    If you wish to support the development of SysMVC, consider making a donation via PAYPAL to Donate via PayPal

    + {{-- Donations --}} +

    🙎 Support the Project

    +

    If you find this project useful, consider supporting its development with a donation via PayPal:

    +

    + + Donate via PayPal + +

    -
    +
    -

    🚀 Installation Tutorial

    - -

    ✅ Prerequisites

    + {{-- Features --}} +

    🚀 Features

    -

    🔧 Step-by-Step

    +
    -

    1️⃣ Unzip the File

    + {{-- Requirements --}} +

    🔧 Requirements

    + + + + + + + + + + + + + +
    RequirementVersion
    PHP>= 7.4
    Composerlatest stable
    Web ServerApache or Nginx
    DatabaseMySQL 5.7+
    + +
    + + {{-- Installation --}} +

    🛠🏽 Installation

    + +

    1° Unzip the File

    Download and unzip the SysMVC file to your local environment:

    unzip sysmvc.zip -d sysmvc
    -cd sysmvc
    -    
    +cd sysmvc
    -

    2️⃣ Install the Dependencies

    +

    2° Install the Dependencies

    Use Composer to install the project dependencies:

    -
    composer install
    -    
    +
    composer install
    -

    3️⃣ Configure the Environment

    +

    3° Configure the Environment

    Copy the .env.example file to .env and configure your environment variables:

    -
    cp .env.example .env
    -    
    - +
    cp .env.example .env

    Open the .env file and edit the following lines with your information:

    DB_CONNECTION=mysql
     DB_HOST=127.0.0.1
     DB_PORT=3306
     DB_DATABASE=your_database
     DB_USERNAME=your_username
    -DB_PASSWORD=your_password
    -    
    +DB_PASSWORD=your_password -

    4️⃣ Set Permissions

    -

    Change the permissions of the storage and cache directories to ensure the web server can write to them:

    +

    4° Set Permissions

    +

    Change the permissions of the storage, cache, and logs directories to ensure the web server can write to them:

    chmod -R 775 storage
    -chmod -R 775 bootstrap/cache
    -    
    +chmod -R 775 cache +chmod -R 775 logs +chmod -R 775 bootstrap/cache -

    5️⃣ Generate the Application Key

    -
    php bin/console generate:app-key
    -    
    +

    5° Generate the Application Key

    +
    php bin/console generate:app-key
    -

    6️⃣ Run the Migrations

    +

    6° Run the Migrations

    Run the migrations to create the tables in the database:

    -
    php bin/console migrate:crudexample
    -    
    +
    php bin/console migrate:crudexample
    -

    7️⃣ Configure the Web Server

    +

    7° Configure the Web Server

    -
    📌 Apache
    +
    📄 Apache

    Add the following configuration to your Apache configuration file:

    <VirtualHost *:80>
         ServerName sysmvc.local
    @@ -89,10 +118,9 @@ chmod -R 775 bootstrap/cache
             AllowOverride All
             Require all granted
         </Directory>
    -</VirtualHost>
    -    
    +</VirtualHost> -
    📌 Nginx
    +
    📄 Nginx

    Add the following configuration to your Nginx configuration file:

    server {
         listen 80;
    @@ -109,46 +137,61 @@ chmod -R 775 bootstrap/cache
             include snippets/fastcgi-php.conf;
             fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
         }
    -}
    -    
    +} -
    +
    -

    📦 Dependencies Used

    + {{-- Dependencies --}} +

    📦 Dependencies Used

    The project uses the following third-party packages, each with its respective license:

    -

    ✅ Packages with MIT License

    - +

    ✔ Packages with MIT License

    + -
    +
    -

    📜 Terms of Use

    + {{-- Terms --}} +

    📝 Terms of Use

    This project is licensed under the MIT License.

    -

    You can use, copy, modify, merge, publish, distribute, sublicense, or sell copies of the Software, provided that the license and copyright notice are included in all copies or substantial portions of the Software.

    -

    The Software is provided "as is", without any warranty of any kind. For more details, please consult the MIT License.

    -

    For more information, contact: sysmvc@syspanel.com.br

    +

    You can use, copy, modify, merge, publish, distribute, sublicense, or sell copies of the Software, as long as the license and copyright notice are included in all copies or substantial portions of the Software.

    +

    The Software is provided “as is”, without warranties of any kind. For more details, see the MIT License.

    +

    For more information, contact: syspanel@gmx.com

    + +

    © 2026 Marco Costa — All rights reserved under the MIT License.

    -

    © 2025 Marco Costa - All rights reserved under the MIT License.

    @endsection diff --git a/resources/views/home/security.blade.php b/resources/views/home/security.blade.php index c7888c7..e3c4f36 100755 --- a/resources/views/home/security.blade.php +++ b/resources/views/home/security.blade.php @@ -28,12 +28,14 @@
  • WhatsApp: +55 (35) 99226-1684
  • -
    -

    Donations via PAYPAL

    -## Donations via PayPal +
    -If you wish to support the development of SysMVC, consider making a donation via PayPal to: - -

    Donations via PAYPAL

    -

    If you wish to support the development of SysMVC, consider making a donation via PAYPAL to Donate via PayPal

    +

    🙎 Support the Project

    +

    If you find this project useful, consider supporting its development with a donation via PayPal:

    +

    + + Donate via PayPal + +

    + @endsection diff --git a/resources/views/home/templates-blade.blade.php b/resources/views/home/templates-blade.blade.php index cd820c7..e2ed20a 100755 --- a/resources/views/home/templates-blade.blade.php +++ b/resources/views/home/templates-blade.blade.php @@ -31,20 +31,24 @@

    Github: https://github.com/syspanel/SysMVC.git

    -

    +

    -

    Contact

    -

    If you're interested in SysMVC, feel free to contact us:

    - +

    Contact

    +

    If you're interested in SysMVC, feel free to contact us:

    + -## Donations via PayPal +
    -If you wish to support the development of SysMVC, consider making a donation via PayPal to: - -

    Donations via PAYPAL

    -

    If you wish to support the development of SysMVC, consider making a donation via PAYPAL to Donate via PayPal

    +

    🙎 Support the Project

    +

    If you find this project useful, consider supporting its development with a donation via PayPal:

    +

    + + Donate via PayPal + +

    + @endsection diff --git a/resources/views/layout.blade.php b/resources/views/layout.blade.php index f996852..ff1446a 100755 --- a/resources/views/layout.blade.php +++ b/resources/views/layout.blade.php @@ -7,7 +7,7 @@ - + @@ -54,7 +54,7 @@ diff --git a/resources/views/layout.twig b/resources/views/layout.twig index 3a4a50c..8dcccc2 100755 --- a/resources/views/layout.twig +++ b/resources/views/layout.twig @@ -7,7 +7,7 @@ - + @@ -53,7 +53,7 @@ diff --git a/resources/views/layout.twig.php b/resources/views/layout.twig.php index 3a4a50c..8dcccc2 100755 --- a/resources/views/layout.twig.php +++ b/resources/views/layout.twig.php @@ -7,7 +7,7 @@ - + @@ -53,7 +53,7 @@ diff --git a/resources/views/twigexample/create.twig b/resources/views/twigexample/create.twig index abfb86e..1566fca 100755 --- a/resources/views/twigexample/create.twig +++ b/resources/views/twigexample/create.twig @@ -6,7 +6,7 @@

    Twig - Create New Crud Example

    - + {{ csrf()|raw }}
    diff --git a/resources/views/twigexample/create.twig.php b/resources/views/twigexample/create.twig.php index abfb86e..1566fca 100755 --- a/resources/views/twigexample/create.twig.php +++ b/resources/views/twigexample/create.twig.php @@ -6,7 +6,7 @@

    Twig - Create New Crud Example

    - + {{ csrf()|raw }}
    diff --git a/resources/views/twigexample/edit.twig b/resources/views/twigexample/edit.twig index 7545b9b..8283374 100755 --- a/resources/views/twigexample/edit.twig +++ b/resources/views/twigexample/edit.twig @@ -6,7 +6,7 @@

    Twig - Edit Crud Example

    - + {{ csrf()|raw }}
    diff --git a/resources/views/twigexample/edit.twig.php b/resources/views/twigexample/edit.twig.php index 7545b9b..8283374 100755 --- a/resources/views/twigexample/edit.twig.php +++ b/resources/views/twigexample/edit.twig.php @@ -6,7 +6,7 @@

    Twig - Edit Crud Example

    - + {{ csrf()|raw }}
    diff --git a/resources/views/twigexample/index.twig b/resources/views/twigexample/index.twig index f0c5ee6..0f1dce7 100755 --- a/resources/views/twigexample/index.twig +++ b/resources/views/twigexample/index.twig @@ -25,14 +25,14 @@ {{ item.name }} {{ item.company }} - View - Edit - - - - - - +
    + View + Edit +
    + {{ csrf()|raw }} + +
    +
    {% endfor %} diff --git a/resources/views/twigexample/index.twig.php b/resources/views/twigexample/index.twig.php index f0c5ee6..0f1dce7 100755 --- a/resources/views/twigexample/index.twig.php +++ b/resources/views/twigexample/index.twig.php @@ -25,14 +25,14 @@ {{ item.name }} {{ item.company }} - View - Edit - - -
    - - -
    +
    + View + Edit +
    + {{ csrf()|raw }} + +
    +
    {% endfor %} diff --git a/resources/views/twigexample/show.twig b/resources/views/twigexample/show.twig index 3adae4c..c32cafd 100755 --- a/resources/views/twigexample/show.twig +++ b/resources/views/twigexample/show.twig @@ -36,7 +36,8 @@ Edit -
    + + {{ csrf() }}
    Back to List diff --git a/resources/views/twigexample/show.twig.php b/resources/views/twigexample/show.twig.php index 3adae4c..aa7eee3 100755 --- a/resources/views/twigexample/show.twig.php +++ b/resources/views/twigexample/show.twig.php @@ -35,9 +35,10 @@ {{ twigexample.notes }} - Edit -
    - + Edit + + {{ csrf()|raw }} +
    Back to List