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:
parent
c50a381626
commit
9d831ea808
|
@ -1,4 +0,0 @@
|
||||||
[submodule "legacy"]
|
|
||||||
path = legacy
|
|
||||||
url = https://github.com/devcode-it/openstamanager.git
|
|
||||||
branch = legacy
|
|
|
@ -1,9 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Exceptions;
|
|
||||||
|
|
||||||
use Exception;
|
|
||||||
|
|
||||||
class LegacyExitException extends Exception
|
|
||||||
{
|
|
||||||
}
|
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -54,22 +54,6 @@ class Kernel extends HttpKernel
|
||||||
'throttle:api',
|
'throttle:api',
|
||||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
\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,
|
|
||||||
],
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -22,11 +22,11 @@ class EnsureCalendarPeriod
|
||||||
// Calendario
|
// Calendario
|
||||||
// Periodo di visualizzazione
|
// Periodo di visualizzazione
|
||||||
if (!empty($request_period['period_start'])) {
|
if (!empty($request_period['period_start'])) {
|
||||||
session(null, $request_period);
|
session($request_period);
|
||||||
}
|
}
|
||||||
// Dal 01-01-yyy al 31-12-yyyy
|
// Dal 01-01-yyy al 31-12-yyyy
|
||||||
elseif (session('period_start') === null) {
|
elseif (session('period_start') === null) {
|
||||||
session(null, [
|
session([
|
||||||
'period_start' => date('Y').'-01-01',
|
'period_start' => date('Y').'-01-01',
|
||||||
'period_end' => date('Y').'-12-31',
|
'period_end' => date('Y').'-12-31',
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -46,10 +46,6 @@ class RouteServiceProvider extends ServiceProvider
|
||||||
Route::middleware('web')
|
Route::middleware('web')
|
||||||
->namespace($this->namespace)
|
->namespace($this->namespace)
|
||||||
->group(base_path('routes/web.php'));
|
->group(base_path('routes/web.php'));
|
||||||
|
|
||||||
Route::middleware('legacy')
|
|
||||||
->namespace($this->namespace)
|
|
||||||
->group(base_path('routes/legacy.php'));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,31 +28,20 @@
|
||||||
"ext-simplexml": "*",
|
"ext-simplexml": "*",
|
||||||
"ext-xsl": "*",
|
"ext-xsl": "*",
|
||||||
"ext-zip": "*",
|
"ext-zip": "*",
|
||||||
"aluguest/ical-easy-reader": "^1.5",
|
|
||||||
"barryvdh/laravel-debugbar": "^3.5",
|
"barryvdh/laravel-debugbar": "^3.5",
|
||||||
"danielstjules/stringy": "^3.1",
|
"danielstjules/stringy": "^3.1",
|
||||||
"davidepastore/codice-fiscale": "^0.6.0",
|
|
||||||
"devcode-it/aggiornamenti": "@dev",
|
"devcode-it/aggiornamenti": "@dev",
|
||||||
"devcode-it/causali-trasporto": "@dev",
|
"devcode-it/causali-trasporto": "@dev",
|
||||||
"ezyang/htmlpurifier": "^4.8",
|
"devcode-it/legacy": "@dev",
|
||||||
"fideloper/proxy": "^4.4",
|
"fideloper/proxy": "^4.4",
|
||||||
"filp/whoops": "^2.1",
|
"filp/whoops": "^2.1",
|
||||||
"fruitcake/laravel-cors": "^2.0",
|
"fruitcake/laravel-cors": "^2.0",
|
||||||
"guzzlehttp/guzzle": "^7.0.1",
|
"guzzlehttp/guzzle": "^7.0.1",
|
||||||
"ifsnop/mysqldump-php": "^2.3",
|
|
||||||
"intervention/image": "^2.3",
|
"intervention/image": "^2.3",
|
||||||
"laravel/framework": "^8.12",
|
"laravel/framework": "^8.12",
|
||||||
"laravel/tinker": "^2.5",
|
"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-ctype": "^1.8",
|
||||||
"symfony/polyfill-php70": "^1.8",
|
"symfony/polyfill-php70": "^1.8",
|
||||||
"willdurand/geocoder": "^3.3",
|
|
||||||
"zerospam/laravel-gettext": "^7.2"
|
"zerospam/laravel-gettext": "^7.2"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
|
@ -72,60 +61,12 @@
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"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/",
|
"App\\": "app/",
|
||||||
"Modules\\": "modules/",
|
|
||||||
"Database\\Factories\\": "database/factories/",
|
"Database\\Factories\\": "database/factories/",
|
||||||
"Database\\Seeders\\": "database/seeders/"
|
"Database\\Seeders\\": "database/seeders/"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"app/helpers.php",
|
"app/helpers.php"
|
||||||
"legacy/lib/functions.php",
|
|
||||||
"legacy/lib/common.php",
|
|
||||||
"legacy/lib/helpers.php",
|
|
||||||
"legacy/lib/util.php",
|
|
||||||
"legacy/lib/deprecated.php"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
|
@ -168,6 +109,13 @@
|
||||||
"options": {
|
"options": {
|
||||||
"symlink": true
|
"symlink": true
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"devcode-it/legacy": {
|
||||||
|
"type": "path",
|
||||||
|
"url": "../legacy",
|
||||||
|
"options": {
|
||||||
|
"symlink": true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
1
legacy
1
legacy
|
@ -1 +0,0 @@
|
||||||
Subproject commit af0668f0c2e9751c36430e1b7595a1d32058ef64
|
|
|
@ -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', '.*');
|
|
Loading…
Reference in New Issue