Gestione legacy come pacchetto Laravel

Al momento, la versione legacy deve trovarsi un una cartella di nome legacy/ allo stesso livello del progetto.
This commit is contained in:
Dasc3er 2021-08-06 17:29:58 +02:00
parent c50a381626
commit 9d831ea808
10 changed files with 11 additions and 199 deletions

4
.gitmodules vendored
View File

@ -1,4 +0,0 @@
[submodule "legacy"]
path = legacy
url = https://github.com/devcode-it/openstamanager.git
branch = legacy

View File

@ -1,9 +0,0 @@
<?php
namespace App\Exceptions;
use Exception;
class LegacyExitException extends Exception
{
}

View File

@ -1,14 +0,0 @@
<?php
namespace App\Exceptions;
use Exception;
use Throwable;
class LegacyRedirectException extends Exception
{
public function __construct($message = '', $code = 0, Throwable $previous = null)
{
parent::__construct($message, $code, $previous);
}
}

View File

@ -1,79 +0,0 @@
<?php
namespace App\Http\Controllers;
use App\Exceptions\LegacyExitException;
use App\Exceptions\LegacyRedirectException;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Redirect;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class LegacyController extends Controller
{
public function index(Request $request, $path)
{
//$path = substr($request->getPathInfo(), 1);
// Gestione dell'output
$output = self::simulate($path);
$response = response($output);
// Fix content-type per contenuti non HTML
if (ends_with($path, '.js')) {
$response = $response->header('Content-Type', 'application/javascript');
} elseif (string_contains($path, 'pdfgen.php')) {
$response = $response->header('Content-Type', 'application/pdf');
}
// Correzione header per API
elseif (self::isApiRequest($path)) {
$output = json_decode($output, true);
$response = $response->header('Content-Type', 'application/json')
->setStatusCode($output['status']);
}
return $response;
}
public static function simulate($path)
{
$base_path = base_path('legacy');
// Fix per redirect all'API
$api_request = self::isApiRequest($path);
if ($api_request) {
$path = 'api/index.php';
}
// Ricerca del file interessato
$file = realpath($base_path.'/'.$path);
if (strpos($file, $base_path) === false) {
throw new NotFoundHttpException();
}
// Inclusione diretta del file
ob_start();
try {
require $file;
} catch (LegacyExitException $e) {
} catch (LegacyRedirectException $e) {
return Redirect::to($e->getMessage());
}
// Gestione dell'output
$output = ob_get_clean();
return $output;
}
protected static function isApiRequest($path)
{
// Fix per redirect all'API
$api_request = false;
if (in_array($path, ['api', 'api/', 'api/index.php'])) {
$api_request = true;
}
return $api_request;
}
}

View File

@ -54,22 +54,6 @@ class Kernel extends HttpKernel
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'legacy' => [
EnsureEnvFile::class,
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
// \App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
Language::class,
EnsureCalendarPeriod::class,
EnsureConfiguration::class,
HTMLBuilder::class,
],
];
/**

View File

@ -22,11 +22,11 @@ class EnsureCalendarPeriod
// Calendario
// Periodo di visualizzazione
if (!empty($request_period['period_start'])) {
session(null, $request_period);
session($request_period);
}
// Dal 01-01-yyy al 31-12-yyyy
elseif (session('period_start') === null) {
session(null, [
session([
'period_start' => date('Y').'-01-01',
'period_end' => date('Y').'-12-31',
]);

View File

@ -46,10 +46,6 @@ class RouteServiceProvider extends ServiceProvider
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
Route::middleware('legacy')
->namespace($this->namespace)
->group(base_path('routes/legacy.php'));
});
}

View File

@ -28,31 +28,20 @@
"ext-simplexml": "*",
"ext-xsl": "*",
"ext-zip": "*",
"aluguest/ical-easy-reader": "^1.5",
"barryvdh/laravel-debugbar": "^3.5",
"danielstjules/stringy": "^3.1",
"davidepastore/codice-fiscale": "^0.6.0",
"devcode-it/aggiornamenti": "@dev",
"devcode-it/causali-trasporto": "@dev",
"ezyang/htmlpurifier": "^4.8",
"devcode-it/legacy": "@dev",
"fideloper/proxy": "^4.4",
"filp/whoops": "^2.1",
"fruitcake/laravel-cors": "^2.0",
"guzzlehttp/guzzle": "^7.0.1",
"ifsnop/mysqldump-php": "^2.3",
"intervention/image": "^2.3",
"laravel/framework": "^8.12",
"laravel/tinker": "^2.5",
"league/csv": "^8.2",
"mpdf/mpdf": "^8.0.10",
"mpociot/vat-calculator": "^2.3",
"owasp/csrf-protector-php": "^1.0",
"phpmailer/phpmailer": "^6.0",
"respect/validation": "^1.1",
"servo/fluidxml": "^1.21",
"symfony/polyfill-ctype": "^1.8",
"symfony/polyfill-php70": "^1.8",
"willdurand/geocoder": "^3.3",
"zerospam/laravel-gettext": "^7.2"
},
"require-dev": {
@ -72,60 +61,12 @@
},
"autoload": {
"psr-4": {
"": "legacy/src/",
"Modules\\Aggiornamenti\\": ["legacy/modules/aggiornamenti/custom/src/", "legacy/modules/aggiornamenti/src/"],
"Modules\\Anagrafiche\\": ["legacy/modules/anagrafiche/custom/src/", "legacy/modules/anagrafiche/src/"],
"Modules\\Backups\\": ["legacy/modules/backups/custom/src/", "legacy/modules/backups/src/"],
"Modules\\Banche\\": ["legacy/modules/banche/custom/src/", "legacy/modules/banche/src/"],
"Modules\\Emails\\": ["legacy/modules/emails/custom/src/", "legacy/modules/emails/src/"],
"Modules\\Articoli\\": ["legacy/modules/articoli/custom/src/", "legacy/modules/articoli/src/"],
"Modules\\Checklists\\": ["legacy/modules/checklists/custom/src/", "legacy/modules/checklists/src/"],
"Modules\\Ritenute\\": ["legacy/modules/ritenute/custom/src/", "legacy/modules/ritenute/src/"],
"Modules\\RitenuteContributi\\": ["legacy/modules/ritenute_contributi/custom/src/", "legacy/modules/ritenute_contributi/src/"],
"Modules\\Rivalse\\": ["legacy/modules/rivalse/custom/src/", "legacy/modules/rivalse/src/"],
"Modules\\Newsletter\\": ["legacy/modules/newsletter/custom/src/", "legacy/modules/newsletter/src/"],
"Modules\\Iva\\": ["legacy/modules/iva/custom/src/", "legacy/modules/iva/src/"],
"Modules\\DDT\\": ["legacy/modules/ddt/custom/src/", "legacy/modules/ddt/src/"],
"Modules\\Fatture\\": ["legacy/modules/fatture/custom/src/", "legacy/modules/fatture/src/"],
"Modules\\Ordini\\": ["legacy/modules/ordini/custom/src/", "legacy/modules/ordini/src/"],
"Modules\\Preventivi\\": ["legacy/modules/preventivi/custom/src/", "legacy/modules/preventivi/src/"],
"Modules\\Contratti\\": ["legacy/modules/contratti/custom/src/", "legacy/modules/contratti/src/"],
"Modules\\Interventi\\": ["legacy/modules/interventi/custom/src/", "legacy/modules/interventi/src/"],
"Modules\\Pagamenti\\": ["legacy/modules/pagamenti/custom/src/", "legacy/modules/pagamenti/src/"],
"Modules\\Statistiche\\": ["legacy/modules/statistiche/custom/src/", "legacy/modules/statistiche/src/"],
"Modules\\Scadenzario\\": ["legacy/modules/scadenzario/custom/src/", "legacy/modules/scadenzario/src/"],
"Modules\\PrimaNota\\": ["legacy/modules/primanota/custom/src/", "legacy/modules/primanota/src/"],
"Modules\\Utenti\\": ["legacy/modules/utenti/custom/src/", "legacy/modules/utenti/src/"],
"Modules\\StatoServizi\\": ["legacy/modules/stato_servizi/custom/src/", "legacy/modules/stato_servizi/src/"],
"Modules\\StatiIntervento\\": ["legacy/modules/stati_intervento/custom/src/", "legacy/modules/stati_intervento/src/"],
"Modules\\StatiPreventivo\\": ["legacy/modules/stati_preventivo/custom/src/", "legacy/modules/stati_preventivo/src/"],
"Modules\\StatiContratto\\": ["legacy/modules/stati_contratto/custom/src/", "legacy/modules/stati_contratto/src/"],
"Modules\\TipiIntervento\\": ["legacy/modules/tipi_intervento/custom/src/", "legacy/modules/tipi_intervento/src/"],
"Modules\\CategorieDocumentali\\": ["legacy/modules/categorie_documenti/custom/src/", "legacy/modules/categorie_documenti/src/"],
"Modules\\PianiSconto\\": ["legacy/modules/piano_sconto/custom/src/", "legacy/modules/piano_sconto/src/"],
"Modules\\Impianti\\": ["legacy/modules/impianti/custom/src/", "legacy/modules/impianti/src/"],
"Modules\\Impostazioni\\": ["legacy/modules/impostazioni/custom/src/", "legacy/modules/impostazioni/src/"],
"Plugins\\ExportFE\\": ["legacy/plugins/exportFE/custom/src/", "legacy/plugins/exportFE/src/"],
"Plugins\\ImportFE\\": ["legacy/plugins/importFE/custom/src/", "legacy/plugins/importFE/src/"],
"Plugins\\ReceiptFE\\": ["legacy/plugins/receiptFE/custom/src/", "legacy/plugins/receiptFE/src/"],
"Plugins\\DichiarazioniIntento\\": ["legacy/plugins/dichiarazioni_intento/custom/src/", "legacy/plugins/dichiarazioni_intento/src/"],
"Plugins\\PianificazioneInterventi\\": ["legacy/plugins/pianificazione_interventi/custom/src/", "legacy/plugins/pianificazione_interventi/src/"],
"Plugins\\PianificazioneFatturazione\\": ["legacy/plugins/pianificazione_fatturazione/custom/src/", "legacy/plugins/pianificazione_fatturazione/src/"],
"Plugins\\StatisticheArticoli\\": ["legacy/plugins/statistiche_articoli/custom/src/", "legacy/plugins/statistiche_articoli/src/"],
"Plugins\\DettagliArticolo\\": ["legacy/plugins/dettagli_articolo/custom/src/", "legacy/plugins/dettagli_articolo/src/"],
"App\\": "app/",
"Modules\\": "modules/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
},
"files": [
"app/helpers.php",
"legacy/lib/functions.php",
"legacy/lib/common.php",
"legacy/lib/helpers.php",
"legacy/lib/util.php",
"legacy/lib/deprecated.php"
"app/helpers.php"
]
},
"autoload-dev": {
@ -168,6 +109,13 @@
"options": {
"symlink": true
}
},
"devcode-it/legacy": {
"type": "path",
"url": "../legacy",
"options": {
"symlink": true
}
}
}
}

1
legacy

@ -1 +0,0 @@
Subproject commit af0668f0c2e9751c36430e1b7595a1d32058ef64

View File

@ -1,9 +0,0 @@
<?php
use App\Http\Controllers\LegacyController;
use Illuminate\Support\Facades\Route;
// Route di fallback generale
Route::any('/legacy/{path}', [LegacyController::class, 'index'])
->name('legacy')
->where('path', '.*');