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'); ?> +
| ID | ++ |
|---|---|
| Name | ++ |
| Company | ++ |
| Address | ++ |
| Phone | ++ |
| + | |
| Notes | ++ |
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
+ +If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
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.
+ +SysMVC allows you to create independent modules, making it easier to organize your code and maintain the project.
+ +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');
+
+
+ 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
+ +If you're interested in SysMVC, get in touch:
+If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
The SysMVC CLI console, based on Symfony Console, allows you to efficiently manage your project using command-line 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
+ +If you're interested in SysMVC, get in touch:
+If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
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.
+ +Below is a basic example of CRUD operations:
+ +
+$client = new Client();
+$client->name = 'Client Name';
+$client->email = 'email@example.com';
+$client->save();
+
+
+
+$clients = Client::all();
+foreach ($clients as $client) {
+ echo $client->name;
+}
+
+
+
+$client = Client::find(1);
+$client->name = 'New Name';
+$client->save();
+
+
+
+$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
+ +If you're interested in SysMVC, get in touch:
+If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
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.
+ +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); ?>
+
+ 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
+ +If you're interested in SysMVC, get in touch:
+If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
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
+
If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
illuminate/database (Laravel's Eloquent ORM)BaseControllerSanitizer service with email and URL awarenesslogs/app.log| Requirement | +Version | +
|---|---|
| PHP | >= 7.4 |
| Composer | latest stable |
| Web Server | Apache or Nginx |
| Database | MySQL 5.7+ |
Download and unzip the SysMVC file to your local environment:
+unzip sysmvc.zip -d sysmvc
+cd sysmvc
+
+ Use Composer to install the project dependencies:
+composer install
+
+ 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
+
+ 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
+
+ php bin/console generate:app-key
+
+ Run the migrations to create the tables in the database:
+php bin/console migrate:crudexample
+
+ 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>
+
+ 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;
+ }
+}
+
+ The project uses the following third-party packages, each with its respective license:
+ +illuminate/databasephpauth/phpauthmonolog/monologeftec/bladeoneeftec/bladeonehtmltwig/twigsymfony/consolesymfony/mailersymfony/cachesymfony/dotenvsymfony/event-dispatchersymfony/filesystemsymfony/translationsymfony/mimerobmorgan/phinxdefuse/php-encryptionparagonie/random_compatrakit/validationnesbot/carbonleague/flysystemintervention/imagepredis/predisphp-di/php-dipecee/simple-routernyholm/psr7fakerphp/fakerdelight-im/authdelight-im/dbdelight-im/cookiedelight-im/httpguzzlehttp/guzzleguzzlehttp/promisesguzzlehttp/psr7This 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.
+ +We have implemented several security measures in SysMVC to protect your application against threats. Here are some of the implementations:
+We use CSRF tokens to protect against Cross-Site Request Forgery attacks.
+All input and output data are sanitized to prevent code injections and other attacks.
+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
+ +If you're interested in SysMVC, feel free to contact us:
+If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
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 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 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.
+ +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');
+
+ 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.
+ +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
+ +If you're interested in SysMVC, feel free to contact us:
+If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
+
+
+
+
+
+
+ Learn more about using Blade and/or Twig templates with SysMVC.
+ See More +
+
+
+
+ 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 @@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: +If you wish to support the development of SysMVC, consider making a donation via PAYPAL to 
If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
Github: https://github.com/syspanel/SysMVC.git
If you're interested in SysMVC, get in touch:
If you wish to support the development of SysMVC, consider making a donation via PAYPAL to 
If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
If you wish to support the development of SysMVC, consider making a donation via PAYPAL to 
If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
If you're interested in SysMVC, get in touch:
-If you're interested in SysMVC, get in touch:
+If you wish to support the development of SysMVC, consider making a donation via PAYPAL to 
If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
If you wish to support the development of SysMVC, consider making a donation via PAYPAL to 
If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
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.
If you wish to support the development of SysMVC, consider making a donation via PAYPAL to 
If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
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 
If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
illuminate/database (Laravel's Eloquent ORM)BaseControllerSanitizer service with email and URL awarenesslogs/app.log| Requirement | +Version | +
|---|---|
| PHP | >= 7.4 |
| Composer | latest stable |
| Web Server | Apache or Nginx |
| Database | MySQL 5.7+ |
Download and unzip the SysMVC file to your local environment:
unzip sysmvc.zip -d sysmvc
-cd sysmvc
-
+cd sysmvc
- Use Composer to install the project dependencies:
-composer install
-
+ composer install
- 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
- Change the permissions of the storage and cache directories to ensure the web server can write to them:
+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
- php bin/console generate:app-key
-
+ php bin/console generate:app-key
- Run the migrations to create the tables in the database:
-php bin/console migrate:crudexample
-
+ php bin/console migrate:crudexample
- 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>
- 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;
}
-}
-
+}
- The project uses the following third-party packages, each with its respective license:
-illuminate/databasephpauth/phpauthmonolog/monologeftec/bladeoneeftec/bladeonehtmltwig/twigsymfony/consolesymfony/mailersymfony/cachesymfony/dotenvsymfony/event-dispatchersymfony/filesystemsymfony/translationsymfony/mimerobmorgan/phinxdefuse/php-encryptionparagonie/random_compatrakit/validationnesbot/carbonleague/flysystemintervention/imagepredis/predisphp-di/php-dipecee/simple-routernyholm/psr7fakerphp/fakerdelight-im/authdelight-im/dbdelight-im/cookiedelight-im/httpguzzlehttp/guzzleguzzlehttp/promisesguzzlehttp/psr7This 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.
If you wish to support the development of SysMVC, consider making a donation via PAYPAL to 
If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+
Github: https://github.com/syspanel/SysMVC.git
-If you're interested in SysMVC, feel free to contact us:
-If you're interested in SysMVC, feel free to contact us:
+If you wish to support the development of SysMVC, consider making a donation via PAYPAL to 
If you find this project useful, consider supporting its development with a donation via PayPal:
+
+
+
+
+