Replace GitHub links with direct email contact for system acquisition across README.md and all home page Blade templates. Added contato@syspanel.com.br as the primary contact method.
199 lines
8.8 KiB
Plaintext
199 lines
8.8 KiB
Plaintext
<?php $_shouldextend[1]=1; ?>
|
|
|
|
<?php $this->startSection('title', 'Readme - SysMVC'); ?>
|
|
|
|
<?php $this->startSection('content'); ?>
|
|
<div class="container mt-5">
|
|
|
|
<h1 class="display-4 text-primary">SysMVC</h1>
|
|
<p class="lead">A lightweight PHP MVC framework by Marco Costa — MIT License</p>
|
|
|
|
<p>
|
|
<strong>SysMVC</strong> is a system developed by <strong>Marco Costa</strong>
|
|
(<a href="mailto:syspanel@gmx.com">syspanel@gmx.com</a>), with source code licensed under the <strong>MIT License</strong>.
|
|
</p>
|
|
<p>This software is offered for free and can be used, modified, and distributed under the terms of the MIT License.</p>
|
|
<p><strong>To obtain the system, please contact us by email: <a href="mailto:contato@syspanel.com.br">contato@syspanel.com.br</a></strong></p>
|
|
<p>
|
|
<strong>Website:</strong> <a href="https://sysmvc.syspanel.com.br" target="_blank">https://sysmvc.syspanel.com.br</a><br>
|
|
</p>
|
|
|
|
<hr class="my-5">
|
|
|
|
<?php /* Donations */ ?>
|
|
<h2 class="mt-4">🙎 Support the Project</h2>
|
|
<p>If you find this project useful, consider supporting its development with a donation via PayPal:</p>
|
|
<p>
|
|
<a href="https://www.paypal.com/donate/?business=marcocosta@gmx.com¤cy_code=USD" target="_blank">
|
|
<img src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" alt="Donate via PayPal">
|
|
</a>
|
|
</p>
|
|
|
|
<hr class="my-5">
|
|
|
|
<?php /* Features */ ?>
|
|
<h2 class="mt-4">🚀 Features</h2>
|
|
<ul>
|
|
<li><strong>MVC Architecture</strong> — clean separation of concerns with Models, Views, and Controllers</li>
|
|
<li><strong>ORM (Eloquent)</strong> — database access via <code>illuminate/database</code> (Laravel's Eloquent ORM)</li>
|
|
<li><strong>Twin Template Engines</strong> — BladeOne and Twig, configured side by side</li>
|
|
<li><strong>Dependency Injection</strong> — PHP-DI container with autowiring</li>
|
|
<li><strong>Routing</strong> — flexible HTTP routing via Pecee SimpleRouter</li>
|
|
<li><strong>CSRF Protection</strong> — built-in token generation and validation</li>
|
|
<li><strong>Security Headers</strong> — applied automatically via <code>BaseController</code></li>
|
|
<li><strong>Input/Output Sanitisation</strong> — <code>Sanitizer</code> service with email and URL awareness</li>
|
|
<li><strong>CLI Console</strong> — Symfony Console commands for key generation and database migrations</li>
|
|
<li><strong>Logging</strong> — Monolog writes to <code>logs/app.log</code></li>
|
|
<li><strong>Mail</strong> — Symfony Mailer integration</li>
|
|
<li><strong>Authentication</strong> — Delight Auth and PHP Auth libraries</li>
|
|
</ul>
|
|
|
|
<hr class="my-5">
|
|
|
|
<?php /* Requirements */ ?>
|
|
<h2 class="mt-4">🔧 Requirements</h2>
|
|
<table class="table table-bordered table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>Requirement</th>
|
|
<th>Version</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr><td>PHP</td><td>>= 7.4</td></tr>
|
|
<tr><td>Composer</td><td>latest stable</td></tr>
|
|
<tr><td>Web Server</td><td>Apache or Nginx</td></tr>
|
|
<tr><td>Database</td><td>MySQL 5.7+</td></tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<hr class="my-5">
|
|
|
|
<?php /* Installation */ ?>
|
|
<h2 class="mt-4">🛠🏽 Installation</h2>
|
|
|
|
<h4>1° Unzip the File</h4>
|
|
<p>Download and unzip the SysMVC file to your local environment:</p>
|
|
<pre><code>unzip sysmvc.zip -d sysmvc
|
|
cd sysmvc</code></pre>
|
|
|
|
<h4>2° Install the Dependencies</h4>
|
|
<p>Use Composer to install the project dependencies:</p>
|
|
<pre><code>composer install</code></pre>
|
|
|
|
<h4>3° Configure the Environment</h4>
|
|
<p>Copy the <code>.env.example</code> file to <code>.env</code> and configure your environment variables:</p>
|
|
<pre><code>cp .env.example .env</code></pre>
|
|
<p>Open the <code>.env</code> file and edit the following lines with your information:</p>
|
|
<pre><code>DB_CONNECTION=mysql
|
|
DB_HOST=127.0.0.1
|
|
DB_PORT=3306
|
|
DB_DATABASE=your_database
|
|
DB_USERNAME=your_username
|
|
DB_PASSWORD=your_password</code></pre>
|
|
|
|
<h4>4° Set Permissions</h4>
|
|
<p>Change the permissions of the storage, cache, and logs directories to ensure the web server can write to them:</p>
|
|
<pre><code>chmod -R 775 storage
|
|
chmod -R 775 cache
|
|
chmod -R 775 logs
|
|
chmod -R 775 bootstrap/cache</code></pre>
|
|
|
|
<h4>5° Generate the Application Key</h4>
|
|
<pre><code>php bin/console generate:app-key</code></pre>
|
|
|
|
<h4>6° Run the Migrations</h4>
|
|
<p>Run the migrations to create the tables in the database:</p>
|
|
<pre><code>php bin/console migrate:crudexample</code></pre>
|
|
|
|
<h4>7° Configure the Web Server</h4>
|
|
|
|
<h5>📄 Apache</h5>
|
|
<p>Add the following configuration to your Apache configuration file:</p>
|
|
<pre><code><VirtualHost *:80>
|
|
ServerName sysmvc.local
|
|
DocumentRoot /path/to/sysmvc/public
|
|
|
|
<Directory /path/to/sysmvc/public>
|
|
AllowOverride All
|
|
Require all granted
|
|
</Directory>
|
|
</VirtualHost></code></pre>
|
|
|
|
<h5>📄 Nginx</h5>
|
|
<p>Add the following configuration to your Nginx configuration file:</p>
|
|
<pre><code>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;
|
|
}
|
|
}</code></pre>
|
|
|
|
<hr class="my-5">
|
|
|
|
<?php /* Dependencies */ ?>
|
|
<h2 class="mt-4">📦 Dependencies Used</h2>
|
|
<p>The project uses the following third-party packages, each with its respective license:</p>
|
|
|
|
<h3>✔ Packages with MIT License</h3>
|
|
<ul>
|
|
<li><strong>Illuminate Database</strong> → <code>illuminate/database</code></li>
|
|
<li><strong>PHP Auth</strong> → <code>phpauth/phpauth</code></li>
|
|
<li><strong>Monolog</strong> → <code>monolog/monolog</code></li>
|
|
<li><strong>BladeOne</strong> → <code>eftec/bladeone</code></li>
|
|
<li><strong>BladeOne HTML</strong> → <code>eftec/bladeonehtml</code></li>
|
|
<li><strong>Twig</strong> → <code>twig/twig</code></li>
|
|
<li><strong>Symfony Console</strong> → <code>symfony/console</code></li>
|
|
<li><strong>Symfony Mailer</strong> → <code>symfony/mailer</code></li>
|
|
<li><strong>Symfony Cache</strong> → <code>symfony/cache</code></li>
|
|
<li><strong>Symfony Dotenv</strong> → <code>symfony/dotenv</code></li>
|
|
<li><strong>Symfony Event Dispatcher</strong> → <code>symfony/event-dispatcher</code></li>
|
|
<li><strong>Symfony Filesystem</strong> → <code>symfony/filesystem</code></li>
|
|
<li><strong>Symfony Translation</strong> → <code>symfony/translation</code></li>
|
|
<li><strong>Symfony MIME</strong> → <code>symfony/mime</code></li>
|
|
<li><strong>Phinx</strong> → <code>robmorgan/phinx</code></li>
|
|
<li><strong>Defuse Encryption</strong> → <code>defuse/php-encryption</code></li>
|
|
<li><strong>Random Compatibility</strong> → <code>paragonie/random_compat</code></li>
|
|
<li><strong>Rakit Validation</strong> → <code>rakit/validation</code></li>
|
|
<li><strong>Carbon</strong> → <code>nesbot/carbon</code></li>
|
|
<li><strong>Flysystem</strong> → <code>league/flysystem</code></li>
|
|
<li><strong>Intervention Image</strong> → <code>intervention/image</code></li>
|
|
<li><strong>Predis Redis Client</strong> → <code>predis/predis</code></li>
|
|
<li><strong>PHP Dependency Injection</strong> → <code>php-di/php-di</code></li>
|
|
<li><strong>Pecee SimpleRouter</strong> → <code>pecee/simple-router</code></li>
|
|
<li><strong>Nyholm PSR7</strong> → <code>nyholm/psr7</code></li>
|
|
<li><strong>FakerPHP Faker</strong> → <code>fakerphp/faker</code></li>
|
|
<li><strong>Delight Auth</strong> → <code>delight-im/auth</code></li>
|
|
<li><strong>Delight DB</strong> → <code>delight-im/db</code></li>
|
|
<li><strong>Delight Cookie</strong> → <code>delight-im/cookie</code></li>
|
|
<li><strong>Delight HTTP</strong> → <code>delight-im/http</code></li>
|
|
<li><strong>Guzzle HTTP</strong> → <code>guzzlehttp/guzzle</code></li>
|
|
<li><strong>Guzzle Promises</strong> → <code>guzzlehttp/promises</code></li>
|
|
<li><strong>Guzzle PSR7</strong> → <code>guzzlehttp/psr7</code></li>
|
|
</ul>
|
|
|
|
<hr class="my-5">
|
|
|
|
<?php /* Terms */ ?>
|
|
<h2 class="mt-4">📝 Terms of Use</h2>
|
|
<p>This project is licensed under the <strong>MIT License</strong>.</p>
|
|
<p>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.</p>
|
|
<p>The Software is provided “as is”, without warranties of any kind. For more details, see the <a href="https://opensource.org/licenses/MIT" target="_blank">MIT License</a>.</p>
|
|
<p>For more information, contact: <a href="mailto:syspanel@gmx.com" target="_blank">syspanel@gmx.com</a></p>
|
|
|
|
<p class="text-center mt-5">© 2026 Marco Costa — All rights reserved under the MIT License.</p>
|
|
|
|
</div>
|
|
<?php $this->stopSection(); ?>
|
|
|
|
<?php if (isset($_shouldextend[1])) { echo $this->runChild('layout'); } ?> |