Compare commits
21 Commits
957d52dd21
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| bef9de2c71 | |||
| 8a9d7bee75 | |||
| b963ab9ca1 | |||
| a71d401864 | |||
| 18b91cc4a5 | |||
| bc76739320 | |||
| df620a4897 | |||
| e1d9e01fdb | |||
| feb4be6621 | |||
| 5a88d0780a | |||
| ecf9db4a13 | |||
| e4283df099 | |||
| 6e5e63adc5 | |||
| d8123ef332 | |||
| c26b54c08b | |||
| 81a3967b0e | |||
| 14bae6c9ef | |||
| 43bc416554 | |||
| b81164279f | |||
| 345d22958f | |||
| 20805c11db |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1 +1,3 @@
|
|||||||
config.php
|
config.php
|
||||||
|
.vscode
|
||||||
|
sftp.json
|
||||||
@@ -43,8 +43,8 @@ require('vendor/autoload.php');
|
|||||||
<th scope="col" style="width:6%">#</th>
|
<th scope="col" style="width:6%">#</th>
|
||||||
<th scope="col" style="width:24%">Bearbeiter</th>
|
<th scope="col" style="width:24%">Bearbeiter</th>
|
||||||
<th scope="col" style="width:40%">Aufgabe</th>
|
<th scope="col" style="width:40%">Aufgabe</th>
|
||||||
<th scope="col" style="width:15%">Zieldatum</th>
|
<th scope="col" style="width:15%">Ziel</th>
|
||||||
<th scope="col" style="width:15%">Priorität</th>
|
<th scope="col" style="width:15%">Prio</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="AufgabenTableHolder">
|
<tbody id="AufgabenTableHolder">
|
||||||
|
|||||||
@@ -21,7 +21,31 @@ $Epi = new Epirent();
|
|||||||
<script src="scripts/jquery-3.5.1.min.js"></script>
|
<script src="scripts/jquery-3.5.1.min.js"></script>
|
||||||
<link href="css/sticky-footer.css" rel="stylesheet">
|
<link href="css/sticky-footer.css" rel="stylesheet">
|
||||||
<script src="https://kit.fontawesome.com/93d71de8bc.js" crossorigin="anonymous"></script>
|
<script src="https://kit.fontawesome.com/93d71de8bc.js" crossorigin="anonymous"></script>
|
||||||
|
<style>
|
||||||
|
@media (min-width: 1800px) {
|
||||||
|
.row {
|
||||||
|
flex-wrap: nowrap; /* verhindert Umbruch */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Checkout + Checkin: je 45% */
|
||||||
|
.row > .col-sm:nth-child(1),
|
||||||
|
.row > .col-sm:nth-child(2) {
|
||||||
|
flex: 0 0 35%;
|
||||||
|
max-width: 35%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Aufgaben: 10% */
|
||||||
|
.row > .col-sm:nth-child(3) {
|
||||||
|
flex: 0 0 30%;
|
||||||
|
max-width: 30%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.table td, .table th {
|
||||||
|
padding: .25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// === PHP-Flags in JS bringen ===
|
// === PHP-Flags in JS bringen ===
|
||||||
@@ -290,7 +314,7 @@ $Epi = new Epirent();
|
|||||||
|
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm">
|
<div class="col-sm" style="padding: 5px !important;">
|
||||||
<h2 class="text-light">Check-Out</h2>
|
<h2 class="text-light">Check-Out</h2>
|
||||||
<div class="tableFixHead" id="checkout-scroll">
|
<div class="tableFixHead" id="checkout-scroll">
|
||||||
<table class="table table-dark mb-0" id="checkout-table">
|
<table class="table table-dark mb-0" id="checkout-table">
|
||||||
@@ -300,13 +324,13 @@ $Epi = new Epirent();
|
|||||||
<th scope="col">Kunde</th>
|
<th scope="col">Kunde</th>
|
||||||
<th scope="col">Event</th>
|
<th scope="col">Event</th>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
if(ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout||ShowPackagingTimeOnCheckout || ShowDeliveryTimeOnCheckout){
|
if(ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout||ShowPackagingTimeOnCheckout || ShowDeliveryTimeOnCheckout || ShowDispoEndOnCheckin){
|
||||||
echo '<th scope="col">';
|
echo '<th scope="col">';
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ShowCheckoutTimeOnCheckout){
|
if(ShowCheckoutTimeOnCheckout){
|
||||||
echo "Dispo-Start";
|
echo "Checkout-Start";
|
||||||
}
|
}
|
||||||
if(ShowVorbereitungTimeOnCheckout){
|
if(ShowVorbereitungTimeOnCheckout){
|
||||||
if(ShowCheckoutTimeOnCheckout){echo "<br>";}
|
if(ShowCheckoutTimeOnCheckout){echo "<br>";}
|
||||||
@@ -320,7 +344,11 @@ $Epi = new Epirent();
|
|||||||
if(ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout||ShowPackagingTimeOnCheckout){echo "<br>";}
|
if(ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout||ShowPackagingTimeOnCheckout){echo "<br>";}
|
||||||
echo "Liefern";
|
echo "Liefern";
|
||||||
}
|
}
|
||||||
if(ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout||ShowPackagingTimeOnCheckout || ShowDeliveryTimeOnCheckout){
|
if(ShowDispoStartOnCheckout){
|
||||||
|
if(ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout||ShowPackagingTimeOnCheckout || ShowDeliveryTimeOnCheckout){echo "<br>";}
|
||||||
|
echo "Auftrag Start";
|
||||||
|
}
|
||||||
|
if(ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout||ShowPackagingTimeOnCheckout || ShowDeliveryTimeOnCheckout || ShowDispoStartOnCheckout){
|
||||||
echo '</th>';
|
echo '</th>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -338,7 +366,7 @@ $Epi = new Epirent();
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm">
|
<div class="col-sm" style="padding: 5px !important;">
|
||||||
<h2 class="text-light">Check-In</h2>
|
<h2 class="text-light">Check-In</h2>
|
||||||
<div class="tableFixHead" id="checkin-scroll">
|
<div class="tableFixHead" id="checkin-scroll">
|
||||||
<table class="table table-dark mb-0" id="checkin-table">
|
<table class="table table-dark mb-0" id="checkin-table">
|
||||||
@@ -352,7 +380,7 @@ $Epi = new Epirent();
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(ShowCheckInTimeOnCheckin){
|
if(ShowCheckInTimeOnCheckin){
|
||||||
echo "Dispo-Ende";
|
echo "CheckIn";
|
||||||
}
|
}
|
||||||
if(ShowNachbereitungTimeOnCheckin){
|
if(ShowNachbereitungTimeOnCheckin){
|
||||||
if(ShowCheckInTimeOnCheckin){echo "<br>";}
|
if(ShowCheckInTimeOnCheckin){echo "<br>";}
|
||||||
@@ -366,7 +394,11 @@ $Epi = new Epirent();
|
|||||||
if(ShowCheckInTimeOnCheckin || ShowNachbereitungTimeOnCheckin||ShowRePackagingTimeOnCheckin){echo "<br>";}
|
if(ShowCheckInTimeOnCheckin || ShowNachbereitungTimeOnCheckin||ShowRePackagingTimeOnCheckin){echo "<br>";}
|
||||||
echo "Rückliefern";
|
echo "Rückliefern";
|
||||||
}
|
}
|
||||||
if(ShowCheckInTimeOnCheckin || ShowNachbereitungTimeOnCheckin||ShowRePackagingTimeOnCheckin || ShowReDeliveryTimeOnCheckin){
|
if(ShowDispoEndOnCheckin){
|
||||||
|
if(ShowCheckInTimeOnCheckin || ShowNachbereitungTimeOnCheckin||ShowRePackagingTimeOnCheckin | ShowReDeliveryTimeOnCheckin){echo "<br>";}
|
||||||
|
echo "Auftrag Ende";
|
||||||
|
}
|
||||||
|
if(ShowCheckInTimeOnCheckin || ShowNachbereitungTimeOnCheckin||ShowRePackagingTimeOnCheckin || ShowReDeliveryTimeOnCheckin || ShowDispoEndOnCheckin){
|
||||||
echo '</th>';
|
echo '</th>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -387,7 +419,7 @@ $Epi = new Epirent();
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm">
|
<div class="col-sm" style="padding: 5px !important;">
|
||||||
<h2 class="text-light">Aufgaben</h2>
|
<h2 class="text-light">Aufgaben</h2>
|
||||||
<div class="tableFixHead" id="aufgaben-scroll">
|
<div class="tableFixHead" id="aufgaben-scroll">
|
||||||
<table class="table table-dark mb-0" id="aufgaben-table">
|
<table class="table table-dark mb-0" id="aufgaben-table">
|
||||||
@@ -396,8 +428,8 @@ $Epi = new Epirent();
|
|||||||
<th scope="col">#</th>
|
<th scope="col">#</th>
|
||||||
<th scope="col">Bearbeiter</th>
|
<th scope="col">Bearbeiter</th>
|
||||||
<th scope="col">Aufgabe</th>
|
<th scope="col">Aufgabe</th>
|
||||||
<th scope="col">Zieldatum</th>
|
<th scope="col">Ziel</th>
|
||||||
<th scope="col">Priorität</th>
|
<th scope="col">Prio</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="AufgabenTableHolder"></tbody>
|
<tbody id="AufgabenTableHolder"></tbody>
|
||||||
|
|||||||
@@ -289,12 +289,12 @@ $Epi = new Epirent();
|
|||||||
<th scope="col">Kunde</th>
|
<th scope="col">Kunde</th>
|
||||||
<th scope="col">Event</th>
|
<th scope="col">Event</th>
|
||||||
<?php
|
<?php
|
||||||
if(ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout||ShowPackagingTimeOnCheckout || ShowDeliveryTimeOnCheckout){
|
if(ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout||ShowPackagingTimeOnCheckout || ShowDeliveryTimeOnCheckout || ShowDispoEndOnCheckin){
|
||||||
echo '<th scope="col">';
|
echo '<th scope="col">';
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ShowCheckoutTimeOnCheckout){
|
if(ShowCheckoutTimeOnCheckout){
|
||||||
echo "Dispo-Start";
|
echo "Checkout-Start";
|
||||||
}
|
}
|
||||||
if(ShowVorbereitungTimeOnCheckout){
|
if(ShowVorbereitungTimeOnCheckout){
|
||||||
if(ShowCheckoutTimeOnCheckout){echo "<br>";}
|
if(ShowCheckoutTimeOnCheckout){echo "<br>";}
|
||||||
@@ -308,7 +308,11 @@ $Epi = new Epirent();
|
|||||||
if(ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout||ShowPackagingTimeOnCheckout){echo "<br>";}
|
if(ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout||ShowPackagingTimeOnCheckout){echo "<br>";}
|
||||||
echo "Liefern";
|
echo "Liefern";
|
||||||
}
|
}
|
||||||
if(ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout||ShowPackagingTimeOnCheckout || ShowDeliveryTimeOnCheckout){
|
if(ShowDispoStartOnCheckout){
|
||||||
|
if(ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout||ShowPackagingTimeOnCheckout || ShowDeliveryTimeOnCheckout){echo "<br>";}
|
||||||
|
echo "Auftrag Start";
|
||||||
|
}
|
||||||
|
if(ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout||ShowPackagingTimeOnCheckout || ShowDeliveryTimeOnCheckout || ShowDispoStartOnCheckout){
|
||||||
echo '</th>';
|
echo '</th>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -342,7 +346,7 @@ $Epi = new Epirent();
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(ShowCheckInTimeOnCheckin){
|
if(ShowCheckInTimeOnCheckin){
|
||||||
echo "Dispo-Ende";
|
echo "CheckIn";
|
||||||
}
|
}
|
||||||
if(ShowNachbereitungTimeOnCheckin){
|
if(ShowNachbereitungTimeOnCheckin){
|
||||||
if(ShowCheckInTimeOnCheckin){echo "<br>";}
|
if(ShowCheckInTimeOnCheckin){echo "<br>";}
|
||||||
@@ -356,7 +360,11 @@ $Epi = new Epirent();
|
|||||||
if(ShowCheckInTimeOnCheckin || ShowNachbereitungTimeOnCheckin||ShowRePackagingTimeOnCheckin){echo "<br>";}
|
if(ShowCheckInTimeOnCheckin || ShowNachbereitungTimeOnCheckin||ShowRePackagingTimeOnCheckin){echo "<br>";}
|
||||||
echo "Rückliefern";
|
echo "Rückliefern";
|
||||||
}
|
}
|
||||||
if(ShowCheckInTimeOnCheckin || ShowNachbereitungTimeOnCheckin||ShowRePackagingTimeOnCheckin || ShowReDeliveryTimeOnCheckin){
|
if(ShowDispoEndOnCheckin){
|
||||||
|
if(ShowCheckInTimeOnCheckin || ShowNachbereitungTimeOnCheckin||ShowRePackagingTimeOnCheckin | ShowReDeliveryTimeOnCheckin){echo "<br>";}
|
||||||
|
echo "Auftrag Ende";
|
||||||
|
}
|
||||||
|
if(ShowCheckInTimeOnCheckin || ShowNachbereitungTimeOnCheckin||ShowRePackagingTimeOnCheckin || ShowReDeliveryTimeOnCheckin || ShowDispoEndOnCheckin){
|
||||||
echo '</th>';
|
echo '</th>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
22
README.MD
22
README.MD
@@ -1,6 +1,6 @@
|
|||||||
# EPIWebview
|
# EPIWebview
|
||||||
|
|
||||||
- **aktuellste stable Version:** 1.5.0
|
- **aktuellste stable Version:** 1.9.0
|
||||||
- **Lizenz:** Creative Commons Attribution-NonCommercial-ShareAlike 4.0 (CC BY-NC-SA 4.0). Einsehbar unter: (LICENSE.MD)
|
- **Lizenz:** Creative Commons Attribution-NonCommercial-ShareAlike 4.0 (CC BY-NC-SA 4.0). Einsehbar unter: (LICENSE.MD)
|
||||||
- **Kompatibilität:** Erweiterung für **Epirent** und **CrewBrain**
|
- **Kompatibilität:** Erweiterung für **Epirent** und **CrewBrain**
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ Die Anwendung ist speziell für den Einsatz in Lagerprozessen entwickelt.
|
|||||||
|
|
||||||
- **Check-In / Check-Out Übersicht**: Lagermonitor
|
- **Check-In / Check-Out Übersicht**: Lagermonitor
|
||||||
- **Integration mit Epirent API**: Vollständig kompatibel mit bestehenden Epirent-Systemen.
|
- **Integration mit Epirent API**: Vollständig kompatibel mit bestehenden Epirent-Systemen.
|
||||||
- **Integration mit Crewbrain**: Anzeige einer Aufgabenliste aus CrewBrain
|
- **Integration mit Crewbrain**: Anzeige einer Aufgabenliste aus CrewBraingit
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -25,7 +25,8 @@ Die Anwendung ist speziell für den Einsatz in Lagerprozessen entwickelt.
|
|||||||
|
|
||||||
## Systemanforderungen
|
## Systemanforderungen
|
||||||
|
|
||||||
- **Server:** PHP ≥ 8.1, Apache oder Nginx
|
- **Server:** PHP ≥ 8.2, Apache oder Nginx
|
||||||
|
- Achtung !!: Für die Return of Invest Funktion oder den Warengruppencheck / Imagechecks sollten in der php.ini die max_execution_time und die maximale Dateigröße deutlich nach oben korrigiert werden. Die ROI Funktion kann gut und gerne 20 Minuten laden!
|
||||||
- **Client:** Aktueller Browser (Chrome, Edge, Firefox, Safari)
|
- **Client:** Aktueller Browser (Chrome, Edge, Firefox, Safari)
|
||||||
- **Datenquelle:** Bestehende Epirent-Installation mit aktivierter API sowie optional CrewBrain
|
- **Datenquelle:** Bestehende Epirent-Installation mit aktivierter API sowie optional CrewBrain
|
||||||
|
|
||||||
@@ -36,7 +37,20 @@ Die Anwendung ist speziell für den Einsatz in Lagerprozessen entwickelt.
|
|||||||
1. Repository klonen oder Dateien ins Webverzeichnis kopieren:
|
1. Repository klonen oder Dateien ins Webverzeichnis kopieren:
|
||||||
```bash
|
```bash
|
||||||
git clone http://srvgitea01.vtm.zone:3000/epi/EpiWebview
|
git clone http://srvgitea01.vtm.zone:3000/epi/EpiWebview
|
||||||
2. Dashboard Aufrufen und auf die Config-Seite wechseln, notwendige Einstellungen vornehmen.
|
2. Config-Seite unter /dist/editconfig.php aufrufen, notwendige Einstellungen vornehmen -> Speichern. Wichtig! Verzeichnis muss für Webserver beschreibbar sein!
|
||||||
|
3. Alternativ: example.config.php nach config.php kopieren! (example.config.php darf nicht gelöscht werden!)
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Update
|
||||||
|
|
||||||
|
1. Repository klonen oder Dateien ins Webverzeichnis kopieren, dabei alte Dateien löschen (bis auf config.php):
|
||||||
|
```bash
|
||||||
|
git clone http://srvgitea01.vtm.zone:3000/epi/EpiWebview
|
||||||
|
2. Einmalig die Config-Seite aufrufen und speichern drücken. Dadurch werden geupdatete Config-Felder übernommen
|
||||||
|
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
Verschoben in Releases (Git)
|
Verschoben in Releases (Git)
|
||||||
---
|
---
|
||||||
@@ -2,6 +2,9 @@
|
|||||||
"require": {
|
"require": {
|
||||||
"guzzlehttp/guzzle": "^7.0",
|
"guzzlehttp/guzzle": "^7.0",
|
||||||
"twbs/bootstrap": "^4.5",
|
"twbs/bootstrap": "^4.5",
|
||||||
"chillerlan/php-qrcode": "^5.0"
|
"chillerlan/php-qrcode": "^5.0",
|
||||||
|
"phpoffice/phpspreadsheet": "^5.1",
|
||||||
|
"tecnickcom/tc-lib-pdf": "^8.1",
|
||||||
|
"tecnickcom/tcpdf": "^6.10"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
1419
composer.lock
generated
1419
composer.lock
generated
File diff suppressed because it is too large
Load Diff
1324
dist/ROI.php
vendored
Normal file
1324
dist/ROI.php
vendored
Normal file
File diff suppressed because it is too large
Load Diff
128
dist/groupofgoodscheck.php
vendored
Normal file
128
dist/groupofgoodscheck.php
vendored
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require('../config.php');
|
||||||
|
require('../EpiApi.php');
|
||||||
|
require_once __DIR__ . '/../vendor/autoload.php';
|
||||||
|
date_default_timezone_set('Europe/Berlin');
|
||||||
|
|
||||||
|
$Epi = new Epirent();
|
||||||
|
$productList = json_decode($Epi->requestEpiApi('/v1/product/all?ia=true&ir=true&cl=' . Epirent_Mandant))->payload;
|
||||||
|
|
||||||
|
?>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
||||||
|
<title>Imagecheck - EpiWebview</title>
|
||||||
|
|
||||||
|
<!-- Styles -->
|
||||||
|
<link href="css/styles.css" rel="stylesheet" />
|
||||||
|
<link href="https://cdn.datatables.net/1.10.20/css/dataTables.bootstrap4.min.css" rel="stylesheet" crossorigin="anonymous" />
|
||||||
|
|
||||||
|
<!-- JS -->
|
||||||
|
<script src="js/jquery-3.5.1.min.js"></script>
|
||||||
|
<script src="https://kit.fontawesome.com/93d71de8bc.js" crossorigin="anonymous"></script>
|
||||||
|
<script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
|
||||||
|
<script src="https://cdn.datatables.net/1.10.20/js/dataTables.bootstrap4.min.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.opacity-50 {
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card .h2,
|
||||||
|
.card .display-4 {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kpi-updated {
|
||||||
|
font-size: .82rem;
|
||||||
|
opacity: .85;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(function() {
|
||||||
|
$('#layoutSidenav_nav').load('../sources/getSidenav.php');
|
||||||
|
$('#footerholder').load('../sources/getFooter.php');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="sb-nav-fixed">
|
||||||
|
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark">
|
||||||
|
<a class="navbar-brand" href="index.php">Epi Webview</a>
|
||||||
|
<button class="btn btn-link btn-sm order-1 order-lg-0" id="sidebarToggle"><i class="fas fa-bars"></i></button>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div id="layoutSidenav">
|
||||||
|
<div id="layoutSidenav_nav"></div>
|
||||||
|
<div id="layoutSidenav_content">
|
||||||
|
<main>
|
||||||
|
<div class="container-fluid">
|
||||||
|
<h1 class="mt-4">Warengruppenprüfung</h1>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-header d-flex justify-content-between align-items-center">
|
||||||
|
<div><i class="fas fa-table mr-1"></i> Zeigt welche Artikel keine Warengruppe haben</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table id="dataTable" class="table table-bordered" width="100%" cellspacing="0">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>#</th>
|
||||||
|
<th>PN</th>
|
||||||
|
<th>Name</th>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php
|
||||||
|
foreach ($productList as $product) {
|
||||||
|
|
||||||
|
if( count($product->group_of_goods) == 0 || $product->group_of_goods ==null){
|
||||||
|
|
||||||
|
echo "<tr>";
|
||||||
|
echo "<td>" . htmlspecialchars($product->primary_key) . "</td>";
|
||||||
|
echo "<td>" . htmlspecialchars($product->product_no) . "</td>";
|
||||||
|
echo "<td>" . htmlspecialchars($product->name) . "</td>";
|
||||||
|
echo "</tr>";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
<div id="footerholder"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Bootstrap Bundle -->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#dataTable').DataTable({
|
||||||
|
"pageLength": 25,
|
||||||
|
"language": {
|
||||||
|
"url": "//cdn.datatables.net/plug-ins/1.10.20/i18n/German.json"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
128
dist/imagecheck.php
vendored
Normal file
128
dist/imagecheck.php
vendored
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require('../config.php');
|
||||||
|
require('../EpiApi.php');
|
||||||
|
require_once __DIR__ . '/../vendor/autoload.php';
|
||||||
|
date_default_timezone_set('Europe/Berlin');
|
||||||
|
|
||||||
|
$Epi = new Epirent();
|
||||||
|
$productList = json_decode($Epi->requestEpiApi('/v1/product/all?ia=true&ir=true&cl=' . Epirent_Mandant))->payload;
|
||||||
|
|
||||||
|
?>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
||||||
|
<title>Imagecheck - EpiWebview</title>
|
||||||
|
|
||||||
|
<!-- Styles -->
|
||||||
|
<link href="css/styles.css" rel="stylesheet" />
|
||||||
|
<link href="https://cdn.datatables.net/1.10.20/css/dataTables.bootstrap4.min.css" rel="stylesheet" crossorigin="anonymous" />
|
||||||
|
|
||||||
|
<!-- JS -->
|
||||||
|
<script src="js/jquery-3.5.1.min.js"></script>
|
||||||
|
<script src="https://kit.fontawesome.com/93d71de8bc.js" crossorigin="anonymous"></script>
|
||||||
|
<script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
|
||||||
|
<script src="https://cdn.datatables.net/1.10.20/js/dataTables.bootstrap4.min.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.opacity-50 {
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card .h2,
|
||||||
|
.card .display-4 {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kpi-updated {
|
||||||
|
font-size: .82rem;
|
||||||
|
opacity: .85;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(function() {
|
||||||
|
$('#layoutSidenav_nav').load('../sources/getSidenav.php');
|
||||||
|
$('#footerholder').load('../sources/getFooter.php');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="sb-nav-fixed">
|
||||||
|
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark">
|
||||||
|
<a class="navbar-brand" href="index.php">Epi Webview</a>
|
||||||
|
<button class="btn btn-link btn-sm order-1 order-lg-0" id="sidebarToggle"><i class="fas fa-bars"></i></button>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div id="layoutSidenav">
|
||||||
|
<div id="layoutSidenav_nav"></div>
|
||||||
|
<div id="layoutSidenav_content">
|
||||||
|
<main>
|
||||||
|
<div class="container-fluid">
|
||||||
|
<h1 class="mt-4">Imagecheck</h1>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-header d-flex justify-content-between align-items-center">
|
||||||
|
<div><i class="fas fa-table mr-1"></i> Zeigt welche Artikel keine Bilder haben</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table id="dataTable" class="table table-bordered" width="100%" cellspacing="0">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>#</th>
|
||||||
|
<th>PN</th>
|
||||||
|
<th>Name</th>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php
|
||||||
|
foreach ($productList as $product) {
|
||||||
|
$hasImages=(json_decode($Epi->requestEpiApi('/v1/product/image/'.$product->primary_key.'?cl=' . Epirent_Mandant))->payload_length);
|
||||||
|
if( $hasImages == 0 || $hasImages ==null){
|
||||||
|
|
||||||
|
echo "<tr>";
|
||||||
|
echo "<td>" . htmlspecialchars($product->primary_key) . "</td>";
|
||||||
|
echo "<td>" . htmlspecialchars($product->product_no) . "</td>";
|
||||||
|
echo "<td>" . htmlspecialchars($product->name) . "</td>";
|
||||||
|
echo "</tr>";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
<div id="footerholder"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Bootstrap Bundle -->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#dataTable').DataTable({
|
||||||
|
"pageLength": 25,
|
||||||
|
"language": {
|
||||||
|
"url": "//cdn.datatables.net/plug-ins/1.10.20/i18n/German.json"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
378
dist/insurance.php
vendored
Normal file
378
dist/insurance.php
vendored
Normal file
@@ -0,0 +1,378 @@
|
|||||||
|
<?php
|
||||||
|
// insurance.php – Versicherungsgeräte (liegt in /dist)
|
||||||
|
require('../config.php');
|
||||||
|
require('../EpiApi.php');
|
||||||
|
require_once __DIR__ . '/../vendor/autoload.php'; // PhpSpreadsheet Autoload
|
||||||
|
date_default_timezone_set('Europe/Berlin');
|
||||||
|
|
||||||
|
$Epi = new Epirent();
|
||||||
|
|
||||||
|
function formatEuro(float $amount): string {
|
||||||
|
$formatted = number_format(abs($amount), 2, ',', '.') . ' €';
|
||||||
|
return $amount < 0 ? '-' . $formatted : $formatted;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* =========================
|
||||||
|
Excel-Export: Konfiguration
|
||||||
|
========================= */
|
||||||
|
$EXCEL_CUSTOM_HEADER = [
|
||||||
|
['EpiWebview – Versicherungsgeräte'],
|
||||||
|
['Exportdatum: ' . date('d.m.Y H:i') . ' | Mandant: ' . (defined('Epirent_Mandant') ? Epirent_Mandant : '')]
|
||||||
|
];
|
||||||
|
$EXCEL_COLS = ['#','Name','Warengruppe(n)','Versicherung netto','Seriennummer','Anschaffung','Kaufpreis','Besitzer'];
|
||||||
|
|
||||||
|
/* =========================
|
||||||
|
1) Daten einmalig holen & Zeilen bauen
|
||||||
|
========================= */
|
||||||
|
$result = $Epi->requestEpiApi('/v1/product/all?ia=true&ir=true&cl=' . Epirent_Mandant);
|
||||||
|
$productList = json_decode($result)->payload;
|
||||||
|
|
||||||
|
$filteredProductArray = [];
|
||||||
|
foreach ($productList as $product) {
|
||||||
|
if ($product->is_stock_control && $product->is_stock_single_entry && !$product->is_virtual) {
|
||||||
|
if (!empty($product->stock_data[0]->stock_rent) && $product->stock_data[0]->stock_rent > 0) {
|
||||||
|
$filteredProductArray[] = $product;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$rows = [];
|
||||||
|
foreach ($filteredProductArray as $filteredProduct) {
|
||||||
|
$detailRes = $Epi->requestEpiApi('/v1/product/' . $filteredProduct->primary_key . '?cl=' . Epirent_Mandant);
|
||||||
|
$insuredProduct = json_decode($detailRes)->payload[0] ?? null;
|
||||||
|
|
||||||
|
if (!$insuredProduct || empty($insuredProduct->pricing) || !isset($insuredProduct->pricing->insurance_net)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ((float)$insuredProduct->pricing->insurance_net == 0.0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Materials
|
||||||
|
$MaterialList = "";
|
||||||
|
if (!empty($insuredProduct->materials)) {
|
||||||
|
foreach ($insuredProduct->materials as $material) {
|
||||||
|
if ($MaterialList !== "") $MaterialList .= ", ";
|
||||||
|
if (!empty($material->is_free_material) && $material->is_free_material) {
|
||||||
|
$MaterialList .= $material->name;
|
||||||
|
} else {
|
||||||
|
$materialResult = $Epi->requestEpiApi('/v1/product/' . $material->mat_product_pk . '?cl=' . Epirent_Mandant);
|
||||||
|
$materialProductObject = json_decode($materialResult)->payload[0] ?? null;
|
||||||
|
$MaterialList .= $materialProductObject ? $materialProductObject->name : '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Warengruppen
|
||||||
|
$groupOfGoodsList = "";
|
||||||
|
if (!empty($insuredProduct->group_of_goods)) {
|
||||||
|
foreach ($insuredProduct->group_of_goods as $groupOfGoods) {
|
||||||
|
if ($groupOfGoodsList !== "") $groupOfGoodsList .= ", ";
|
||||||
|
$groupOfGoodsList .= str_replace(";", "->", $groupOfGoods->sequence_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Geräte (Stocks) nur einmal je Produkt
|
||||||
|
$stockRes = $Epi->requestEpiApi('/v1/stock/filter?ppk=' . $insuredProduct->primary_key . '&cl=' . Epirent_Mandant);
|
||||||
|
$deviceStockObjectArray = json_decode($stockRes)->payload ?? [];
|
||||||
|
|
||||||
|
//Sortiere alle Geräte aus die "Nicht Versichert" im Status stehen haben
|
||||||
|
foreach ($deviceStockObjectArray as $device) {
|
||||||
|
if($device->condition=="Nicht Versichert"){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//Sortiere jetzt die Geräte aus, die Nicht aussortiert wurden
|
||||||
|
if(!$device->is_sorted_out){
|
||||||
|
$rows[] = [
|
||||||
|
'pk' => $insuredProduct->product_no,
|
||||||
|
'name' => $insuredProduct->name,
|
||||||
|
'materials' => $MaterialList,
|
||||||
|
'groups' => $groupOfGoodsList,
|
||||||
|
'insurance_net' => (float)$insuredProduct->pricing->insurance_net,
|
||||||
|
'serial_no' => (string)($device->serial_no ?? ''),
|
||||||
|
'date_purchase' => (string)($device->date_purchase ?? ''),
|
||||||
|
'purchase_price'=> (float)($device->purchase_price ?? 0.0),
|
||||||
|
'owner' => (string)($device->owner ?? ''),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* =========================
|
||||||
|
2) XLSX sofort erzeugen (ohne setCellValueByColumnAndRow)
|
||||||
|
========================= */
|
||||||
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Style\Alignment;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Cell\DataType;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Shared\Date as ExcelDate;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Style\Fill;
|
||||||
|
|
||||||
|
$exportDir = __DIR__ . '/exports';
|
||||||
|
if (!is_dir($exportDir)) {
|
||||||
|
@mkdir($exportDir, 0775, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
$timestamp = date('Ymd_His');
|
||||||
|
$excelFileName = "Versicherungsgeraete_{$timestamp}.xlsx";
|
||||||
|
$excelFilePath = $exportDir . '/' . $excelFileName;
|
||||||
|
$excelDownloadUrl = 'exports/' . $excelFileName;
|
||||||
|
|
||||||
|
$spreadsheet = new Spreadsheet();
|
||||||
|
$sheet = $spreadsheet->getActiveSheet();
|
||||||
|
$sheet->setTitle('Versicherungsgeräte');
|
||||||
|
|
||||||
|
// kleine Helfer zum Adressieren per Spaltenbuchstaben
|
||||||
|
$cell = function(int $colIndex, int $rowIndex): string {
|
||||||
|
return Coordinate::stringFromColumnIndex($colIndex) . $rowIndex;
|
||||||
|
};
|
||||||
|
|
||||||
|
$colCount = count($EXCEL_COLS);
|
||||||
|
$lastCol = Coordinate::stringFromColumnIndex($colCount);
|
||||||
|
|
||||||
|
// Spaltenindex-Konstanten für Summen
|
||||||
|
$INSURANCE_COL = 4; // "Versicherung netto"
|
||||||
|
$PURCHASE_COL = 7; // "Kaufpreis"
|
||||||
|
|
||||||
|
// Custom Header
|
||||||
|
$rowIdx = 1;
|
||||||
|
foreach ($EXCEL_CUSTOM_HEADER as $hdrLine) {
|
||||||
|
$text = implode(' ', $hdrLine);
|
||||||
|
$sheet->setCellValue($cell(1, $rowIdx), $text);
|
||||||
|
$sheet->mergeCells($cell(1, $rowIdx) . ':' . $cell($colCount, $rowIdx));
|
||||||
|
$sheet->getStyle($cell(1, $rowIdx) . ':' . $cell($colCount, $rowIdx))
|
||||||
|
->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
|
||||||
|
$sheet->getStyle($cell(1, $rowIdx) . ':' . $cell($colCount, $rowIdx))
|
||||||
|
->getFont()->setBold(true)->setSize($rowIdx === 1 ? 14 : 11);
|
||||||
|
$rowIdx++;
|
||||||
|
}
|
||||||
|
$rowIdx++;
|
||||||
|
|
||||||
|
// Tabellen-Header
|
||||||
|
foreach ($EXCEL_COLS as $i => $label) {
|
||||||
|
$addr = $cell($i+1, $rowIdx);
|
||||||
|
$sheet->setCellValue($addr, $label);
|
||||||
|
$sheet->getStyle($addr)->getFont()->setBold(true);
|
||||||
|
$sheet->getStyle($addr)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
|
||||||
|
$sheet->getColumnDimension(Coordinate::stringFromColumnIndex($i+1))->setAutoSize(true);
|
||||||
|
}
|
||||||
|
$headerRow = $rowIdx;
|
||||||
|
$rowIdx++;
|
||||||
|
|
||||||
|
// Daten
|
||||||
|
$dataStartRow = $rowIdx;
|
||||||
|
foreach ($rows as $r) {
|
||||||
|
$c = 1;
|
||||||
|
|
||||||
|
// #
|
||||||
|
$sheet->setCellValue($cell($c++, $rowIdx), $r['pk']);
|
||||||
|
|
||||||
|
// Name (+ Materials)
|
||||||
|
$nameOut = $r['name'] . ($r['materials'] ? " | {$r['materials']}" : "");
|
||||||
|
$sheet->setCellValue($cell($c++, $rowIdx), $nameOut);
|
||||||
|
|
||||||
|
// Warengruppen
|
||||||
|
$sheet->setCellValue($cell($c++, $rowIdx), $r['groups']);
|
||||||
|
|
||||||
|
// Versicherung netto (numerisch, EU-Format)
|
||||||
|
$sheet->setCellValueExplicit($cell($c, $rowIdx), (float)$r['insurance_net'], DataType::TYPE_NUMERIC);
|
||||||
|
$sheet->getStyle($cell($c, $rowIdx))->getNumberFormat()->setFormatCode('#,##0.00 [$€-de-DE]');
|
||||||
|
$c++;
|
||||||
|
|
||||||
|
// Seriennummer
|
||||||
|
$sheet->setCellValue($cell($c++, $rowIdx), $r['serial_no']);
|
||||||
|
|
||||||
|
// Anschaffung (Datum)
|
||||||
|
$excelDate = '';
|
||||||
|
if (!empty($r['date_purchase'])) {
|
||||||
|
$ts = strtotime($r['date_purchase']);
|
||||||
|
if ($ts !== false) {
|
||||||
|
$excelDate = ExcelDate::PHPToExcel($ts);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($excelDate !== '') {
|
||||||
|
$sheet->setCellValue($cell($c, $rowIdx), $excelDate);
|
||||||
|
$sheet->getStyle($cell($c, $rowIdx))->getNumberFormat()->setFormatCode('dd.mm.yyyy');
|
||||||
|
} else {
|
||||||
|
$sheet->setCellValue($cell($c, $rowIdx), '');
|
||||||
|
}
|
||||||
|
$c++;
|
||||||
|
|
||||||
|
// Kaufpreis (numerisch, EU-Format)
|
||||||
|
$sheet->setCellValueExplicit($cell($c, $rowIdx), abs((float)$r['purchase_price']), DataType::TYPE_NUMERIC);
|
||||||
|
$sheet->getStyle($cell($c, $rowIdx))->getNumberFormat()->setFormatCode('#,##0.00 [$€-de-DE]');
|
||||||
|
$c++;
|
||||||
|
|
||||||
|
// Besitzer
|
||||||
|
$sheet->setCellValue($cell($c++, $rowIdx), $r['owner']);
|
||||||
|
|
||||||
|
$rowIdx++;
|
||||||
|
}
|
||||||
|
$dataEndRow = $rowIdx - 1;
|
||||||
|
|
||||||
|
/* === Summenzeile mit grauer Hinterlegung === */
|
||||||
|
$totalRow = $rowIdx + 1;
|
||||||
|
|
||||||
|
// Label in Spalte A
|
||||||
|
$sheet->setCellValue($cell(1, $totalRow), 'Gesamtsummen:');
|
||||||
|
$sheet->getStyle($cell(1, $totalRow))->getFont()->setBold(true);
|
||||||
|
|
||||||
|
// SUM-Formel Versicherung netto (Spalte 4)
|
||||||
|
$insColLetter = Coordinate::stringFromColumnIndex($INSURANCE_COL);
|
||||||
|
$sheet->setCellValue(
|
||||||
|
$cell($INSURANCE_COL, $totalRow),
|
||||||
|
"=SUM({$insColLetter}{$dataStartRow}:{$insColLetter}{$dataEndRow})"
|
||||||
|
);
|
||||||
|
$sheet->getStyle($cell($INSURANCE_COL, $totalRow))
|
||||||
|
->getNumberFormat()->setFormatCode('#,##0.00 [$€-de-DE]');
|
||||||
|
$sheet->getStyle($cell($INSURANCE_COL, $totalRow))->getFont()->setBold(true);
|
||||||
|
|
||||||
|
// SUM-Formel Kaufpreis (Spalte 7)
|
||||||
|
$purColLetter = Coordinate::stringFromColumnIndex($PURCHASE_COL);
|
||||||
|
$sheet->setCellValue(
|
||||||
|
$cell($PURCHASE_COL, $totalRow),
|
||||||
|
"=SUM({$purColLetter}{$dataStartRow}:{$purColLetter}{$dataEndRow})"
|
||||||
|
);
|
||||||
|
$sheet->getStyle($cell($PURCHASE_COL, $totalRow))
|
||||||
|
->getNumberFormat()->setFormatCode('#,##0.00 [$€-de-DE]');
|
||||||
|
$sheet->getStyle($cell($PURCHASE_COL, $totalRow))->getFont()->setBold(true);
|
||||||
|
|
||||||
|
// graue Hinterlegung über die ganze Summenzeile
|
||||||
|
$sheet->getStyle($cell(1, $totalRow) . ':' . $cell($colCount, $totalRow))
|
||||||
|
->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('FFEFEFEF');
|
||||||
|
|
||||||
|
// Filter + Freeze
|
||||||
|
$sheet->setAutoFilter("A{$headerRow}:{$lastCol}{$headerRow}");
|
||||||
|
$sheet->freezePane("A" . ($headerRow + 1));
|
||||||
|
|
||||||
|
// Datei speichern
|
||||||
|
$writer = new Xlsx($spreadsheet);
|
||||||
|
$writer->save($excelFilePath);
|
||||||
|
|
||||||
|
/* =========================
|
||||||
|
3) HTML-Ausgabe (Tabelle aus $rows) + Download-Link
|
||||||
|
========================= */
|
||||||
|
|
||||||
|
// Summen für HTML
|
||||||
|
$totalInsurance = array_sum(array_column($rows, 'insurance_net'));
|
||||||
|
$totalPurchase = array_sum(array_map(fn($r) => abs($r['purchase_price']), $rows));
|
||||||
|
?>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
||||||
|
<title>Dashboard - EpiWebview</title>
|
||||||
|
|
||||||
|
<!-- Styles -->
|
||||||
|
<link href="css/styles.css" rel="stylesheet" />
|
||||||
|
<link href="https://cdn.datatables.net/1.10.20/css/dataTables.bootstrap4.min.css" rel="stylesheet" crossorigin="anonymous" />
|
||||||
|
|
||||||
|
<!-- JS -->
|
||||||
|
<script src="js/jquery-3.5.1.min.js"></script>
|
||||||
|
<script src="https://kit.fontawesome.com/93d71de8bc.js" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.opacity-50 { opacity: .5; }
|
||||||
|
.card .h2, .card .display-4 { font-weight: 700; }
|
||||||
|
.kpi-updated { font-size: .82rem; opacity: .85; }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(function () {
|
||||||
|
$('#layoutSidenav_nav').load('../sources/getSidenav.php');
|
||||||
|
$('#footerholder').load('../sources/getFooter.php');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="sb-nav-fixed">
|
||||||
|
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark">
|
||||||
|
<a class="navbar-brand" href="index.php">Epi Webview</a>
|
||||||
|
<button class="btn btn-link btn-sm order-1 order-lg-0" id="sidebarToggle"><i class="fas fa-bars"></i></button>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div id="layoutSidenav">
|
||||||
|
<div id="layoutSidenav_nav"></div>
|
||||||
|
<div id="layoutSidenav_content">
|
||||||
|
<main>
|
||||||
|
<div class="container-fluid">
|
||||||
|
<h1 class="mt-4">Versicherung</h1>
|
||||||
|
<ol class="breadcrumb mb-4">
|
||||||
|
<li class="breadcrumb-item active">Versicherung</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-header d-flex justify-content-between align-items-center">
|
||||||
|
<div><i class="fas fa-table mr-1"></i> Versicherungsgeräte</div>
|
||||||
|
<a class="btn btn-sm btn-success" href="<?php echo htmlspecialchars($excelDownloadUrl); ?>">
|
||||||
|
<i class="fas fa-file-excel"></i> Export nach Excel
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
|
||||||
|
<tr>
|
||||||
|
<th scope="col">#</th>
|
||||||
|
<th scope="col">Name</th>
|
||||||
|
<th scope="col">Warengruppe(n)</th>
|
||||||
|
<th scope="col">Versicherung netto</th>
|
||||||
|
<th scope="col">Seriennummer</th>
|
||||||
|
<th scope="col">Anschaffung</th>
|
||||||
|
<th scope="col">Kaufpreis</th>
|
||||||
|
<th scope="col">Besitzer</th>
|
||||||
|
</tr>
|
||||||
|
<?php foreach ($rows as $r): ?>
|
||||||
|
<tr>
|
||||||
|
<th><?php echo htmlspecialchars((string) $r['pk']); ?></th>
|
||||||
|
<th>
|
||||||
|
<?php
|
||||||
|
echo htmlspecialchars($r['name']);
|
||||||
|
if (!empty($r['materials'])) {
|
||||||
|
echo "<br><small>" . htmlspecialchars($r['materials']) . "</small>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</th>
|
||||||
|
<th><?php echo htmlspecialchars($r['groups']); ?></th>
|
||||||
|
<th><?php echo formatEuro((float)$r['insurance_net']); ?></th>
|
||||||
|
<th><?php echo htmlspecialchars($r['serial_no']); ?></th>
|
||||||
|
<th>
|
||||||
|
<?php
|
||||||
|
$purchaseDateOut = '';
|
||||||
|
if (!empty($r['date_purchase'])) {
|
||||||
|
try { $purchaseDateOut = date_format(new \DateTime($r['date_purchase']), 'd.m.Y'); } catch (\Throwable $e) {}
|
||||||
|
}
|
||||||
|
echo htmlspecialchars($purchaseDateOut);
|
||||||
|
?>
|
||||||
|
</th>
|
||||||
|
<th><?php echo formatEuro(abs((float)$r['purchase_price'])); ?></th>
|
||||||
|
<th><?php echo htmlspecialchars($r['owner']); ?></th>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
|
||||||
|
<!-- Summenzeile in HTML -->
|
||||||
|
<tr style="font-weight:bold; background:#f8f9fa;">
|
||||||
|
<td colspan="3" class="text-right">Gesamtsummen:</td>
|
||||||
|
<td><?php echo formatEuro($totalInsurance); ?></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td><?php echo formatEuro($totalPurchase); ?></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
<div id="footerholder"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Bootstrap Bundle -->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
155
dist/labelprint.php
vendored
Normal file
155
dist/labelprint.php
vendored
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require('../config.php');
|
||||||
|
require('../EpiApi.php');
|
||||||
|
require_once __DIR__ . '/../vendor/autoload.php';
|
||||||
|
date_default_timezone_set('Europe/Berlin');
|
||||||
|
|
||||||
|
$Epi = new Epirent();
|
||||||
|
$productList = json_decode($Epi->requestEpiApi('/v1/product/all?ia=true&ir=true&cl=' . Epirent_Mandant))->payload;
|
||||||
|
|
||||||
|
?>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
||||||
|
<title>Labelprint - EpiWebview</title>
|
||||||
|
|
||||||
|
<!-- Styles -->
|
||||||
|
<link href="css/styles.css" rel="stylesheet" />
|
||||||
|
<link href="https://cdn.datatables.net/1.10.20/css/dataTables.bootstrap4.min.css" rel="stylesheet" crossorigin="anonymous" />
|
||||||
|
|
||||||
|
<!-- JS -->
|
||||||
|
<script src="js/jquery-3.5.1.min.js"></script>
|
||||||
|
<script src="https://kit.fontawesome.com/93d71de8bc.js" crossorigin="anonymous"></script>
|
||||||
|
<script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
|
||||||
|
<script src="https://cdn.datatables.net/1.10.20/js/dataTables.bootstrap4.min.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.opacity-50 {
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card .h2,
|
||||||
|
.card .display-4 {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kpi-updated {
|
||||||
|
font-size: .82rem;
|
||||||
|
opacity: .85;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(function() {
|
||||||
|
$('#layoutSidenav_nav').load('../sources/getSidenav.php');
|
||||||
|
$('#footerholder').load('../sources/getFooter.php');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="sb-nav-fixed">
|
||||||
|
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark">
|
||||||
|
<a class="navbar-brand" href="index.php">Epi Webview</a>
|
||||||
|
<button class="btn btn-link btn-sm order-1 order-lg-0" id="sidebarToggle"><i class="fas fa-bars"></i></button>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div id="layoutSidenav">
|
||||||
|
<div id="layoutSidenav_nav"></div>
|
||||||
|
<div id="layoutSidenav_content">
|
||||||
|
<main>
|
||||||
|
<div class="container-fluid">
|
||||||
|
<h1 class="mt-4">Labelprint</h1>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-header d-flex justify-content-between align-items-center">
|
||||||
|
<div><i class="fas fa-table mr-1"></i> Labelprint</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table id="dataTable" class="table table-bordered" width="100%" cellspacing="0">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>#</th>
|
||||||
|
<th>PN</th>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Aktionen</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php
|
||||||
|
foreach ($productList as $product) {
|
||||||
|
if (!$product->is_rent & $product->is_sale){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
echo "<tr>";
|
||||||
|
echo "<td>" . htmlspecialchars($product->primary_key) . "</td>";
|
||||||
|
echo "<td>" . htmlspecialchars($product->product_no) . "</td>";
|
||||||
|
echo "<td>" . htmlspecialchars($product->name) . "</td>";
|
||||||
|
echo "
|
||||||
|
<td>
|
||||||
|
<a class='btn btn-sm btn-outline-primary'
|
||||||
|
target='_blank'
|
||||||
|
href='../sources/getProductLabel.php?id=" . urlencode($product->primary_key) . "'>
|
||||||
|
Export
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<input type='number'
|
||||||
|
id='nrInput_" . htmlspecialchars($product->primary_key) . "'
|
||||||
|
min='1' max='9999'
|
||||||
|
style='width:70px; margin-left:6px; text-align:center;'
|
||||||
|
placeholder='#'>
|
||||||
|
|
||||||
|
<a class='btn btn-sm btn-outline-secondary'
|
||||||
|
target='_blank'
|
||||||
|
id='exportWithIdBtn_" . htmlspecialchars($product->primary_key) . "'
|
||||||
|
href='#'
|
||||||
|
onclick=\"
|
||||||
|
var nr = document.getElementById('nrInput_" . htmlspecialchars($product->primary_key) . "').value;
|
||||||
|
if(nr) {
|
||||||
|
this.href = '../sources/getProductLabel.php?id=" . urlencode($product->primary_key) . "&nr=' + encodeURIComponent(nr);
|
||||||
|
} else {
|
||||||
|
alert('Bitte eine Nummer zwischen 1 und 9999 eingeben.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
\">
|
||||||
|
Export mit ID
|
||||||
|
</a>
|
||||||
|
</td>";
|
||||||
|
echo "</tr>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
<div id="footerholder"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Bootstrap Bundle -->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#dataTable').DataTable({
|
||||||
|
"pageLength": 25,
|
||||||
|
"language": {
|
||||||
|
"url": "//cdn.datatables.net/plug-ins/1.10.20/i18n/German.json"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
@@ -26,17 +26,19 @@ define('EnableScrollingCheckOut', true); //Aktiviert das automatische Scrollen d
|
|||||||
define('EnableScrollingCheckIn', true); //Aktiviert das automatische Scrollen der CheckIn Liste
|
define('EnableScrollingCheckIn', true); //Aktiviert das automatische Scrollen der CheckIn Liste
|
||||||
define('EnableScrollingAufgaben', true); //Aktiviert das automatische Scrollen der Aufgabenliste
|
define('EnableScrollingAufgaben', true); //Aktiviert das automatische Scrollen der Aufgabenliste
|
||||||
// @note: -------------------- CheckOutRowMarkSource: Konfig Zusände --------------------
|
// @note: -------------------- CheckOutRowMarkSource: Konfig Zusände --------------------
|
||||||
// @note: 1 = $packingjob->date_start (Dispo Start)
|
// @note: 1 = $packingjob->date_start (Packjob Start)
|
||||||
// @note: 2 = $VorbereitungsTimeDetail->date_start (Vorbereitung Start)
|
// @note: 2 = $VorbereitungsTimeDetail->date_start (Vorbereitung Start)
|
||||||
// @note: 3 = $PackingNoteDetail->date_packing (Packen Zeit)
|
// @note: 3 = $PackingNoteDetail->date_packing (Packen Zeit)
|
||||||
// @note: 4 = $PackingNoteDetail->date_delivery (Delivery Zeit)
|
// @note: 4 = $PackingNoteDetail->date_delivery (Delivery Zeit)
|
||||||
|
// @note: 5 = $order->date_start (Dispo Start Zeit)
|
||||||
define('CheckOutRowMarkSource', 4);
|
define('CheckOutRowMarkSource', 4);
|
||||||
|
|
||||||
// @note: -------------------- CheckInRowMarkSource: Konfig Zusände --------------------
|
// @note: -------------------- CheckInRowMarkSource: Konfig Zusände --------------------
|
||||||
// @note: 1 = $packingjob->date_end (Dispo Ende)
|
// @note: 1 = $packingjob->date_end (Packjob Ende)
|
||||||
// @note: 2 = $NachbereitungssTimeDetail->date_start (Nachbereitung Start)
|
// @note: 2 = $NachbereitungssTimeDetail->date_start (Nachbereitung Start)
|
||||||
// @note: 3 = $RePackagingTimeDetail->date_start (Rückpacken Zeit AUS AUFTRAG)
|
// @note: 3 = $RePackagingTimeDetail->date_start (Rückpacken Zeit AUS AUFTRAG)
|
||||||
// @note: 4 = $PackingNoteDetail->date_redelivery (ReDelivery Zeit)
|
// @note: 4 = $PackingNoteDetail->date_redelivery (ReDelivery Zeit)
|
||||||
|
// @note: 5 = $order->date_end (Dispo End Zeit)
|
||||||
define('CheckInRowMarkSource', 4);
|
define('CheckInRowMarkSource', 4);
|
||||||
|
|
||||||
define('CheckIn_UseDispoEndForRowMarking', false); //else: Use Same Variable as "Rueckpacken Zeitvariable" | Konfiguration, welche Zeit für die Zeilenmarkierung beim Check In Verwendet werden soll
|
define('CheckIn_UseDispoEndForRowMarking', false); //else: Use Same Variable as "Rueckpacken Zeitvariable" | Konfiguration, welche Zeit für die Zeilenmarkierung beim Check In Verwendet werden soll
|
||||||
@@ -45,12 +47,15 @@ define('ShowCheckoutTimeOnCheckout', true); //Zeigt die Checkout Zeit im Checkou
|
|||||||
define('ShowVorbereitungTimeOnCheckout', true); //Zeigt die Vorbereitungs Zeitvariable im Checkout
|
define('ShowVorbereitungTimeOnCheckout', true); //Zeigt die Vorbereitungs Zeitvariable im Checkout
|
||||||
define('ShowPackagingTimeOnCheckout', true); //Zeigt die Packenzeit im Checkout
|
define('ShowPackagingTimeOnCheckout', true); //Zeigt die Packenzeit im Checkout
|
||||||
define('ShowDeliveryTimeOnCheckout', true); //Zeigt die Lieferzeit im Checkout
|
define('ShowDeliveryTimeOnCheckout', true); //Zeigt die Lieferzeit im Checkout
|
||||||
|
define('ShowDispoStartOnCheckout', true); //Zeigt die DispoStart im Checkout
|
||||||
define('ShowTimesOnCheckout', true); //Aktiviert das anzeigen der Uhrzeit im Checkout
|
define('ShowTimesOnCheckout', true); //Aktiviert das anzeigen der Uhrzeit im Checkout
|
||||||
|
|
||||||
// @hr
|
// @hr
|
||||||
define('ShowCheckInTimeOnCheckin', true); //Zeigt die CheckIn Zeit im CheckIn
|
define('ShowCheckInTimeOnCheckin', true); //Zeigt die CheckIn Zeit im CheckIn
|
||||||
define('ShowNachbereitungTimeOnCheckin', true); //Zeigt die Nachbereitungs Zeitvariable im CheckIn
|
define('ShowNachbereitungTimeOnCheckin', true); //Zeigt die Nachbereitungs Zeitvariable im CheckIn
|
||||||
define('ShowRePackagingTimeOnCheckin', true); //Zeigt die Rückpackzeit im Checkin <br><b>Achtung: Zeit nur Im Auftrag festlegbar</b>
|
define('ShowRePackagingTimeOnCheckin', true); //Zeigt die Rückpackzeit im Checkin <br><b>Achtung: Zeit nur Im Auftrag festlegbar</b>
|
||||||
define('ShowReDeliveryTimeOnCheckin', true); //Zeigt die geplante Rücklieferung im Checkin
|
define('ShowReDeliveryTimeOnCheckin', true); //Zeigt die geplante Rücklieferung im Checkin
|
||||||
|
define('ShowDispoEndOnCheckin', true); //Zeigt die DispoEnd Zeit im CheckIn
|
||||||
define('ShowTimesOnCheckin', true); //Aktiviert das anzeigen der Uhrzeit im CheckIn
|
define('ShowTimesOnCheckin', true); //Aktiviert das anzeigen der Uhrzeit im CheckIn
|
||||||
|
|
||||||
// @section: Epirent-Spezifische Einstellungen - Shipping
|
// @section: Epirent-Spezifische Einstellungen - Shipping
|
||||||
@@ -61,6 +66,15 @@ define('DHLContainsText', 'DHL'); //Text, der in der Versandart enthalten sein m
|
|||||||
define('LKWContainsText', 'LKW'); //Text, der in der Versandart enthalten sein muss (enthält), damit diese als eigener LKW erkannt wird.
|
define('LKWContainsText', 'LKW'); //Text, der in der Versandart enthalten sein muss (enthält), damit diese als eigener LKW erkannt wird.
|
||||||
define('TransporterContainsText', 'Sprinter'); //Text, der in der Versandart enthalten sein muss (enthält), damit diese als eigener Transporter erkannt wird.
|
define('TransporterContainsText', 'Sprinter'); //Text, der in der Versandart enthalten sein muss (enthält), damit diese als eigener Transporter erkannt wird.
|
||||||
define('PKWContainsText', 'PKW'); //Text, der in der Versandart enthalten sein muss (enthält), damit diese als eigener PKW erkannt wird.
|
define('PKWContainsText', 'PKW'); //Text, der in der Versandart enthalten sein muss (enthält), damit diese als eigener PKW erkannt wird.
|
||||||
|
// @hr
|
||||||
|
// @note: Informationen zu den Icons: Die Icons basieren auf FontAwesome und bestehen aus drei Teilen: Sammlung (fa-solid), Icon (fa-truck) und Größe (fa-lg). Weitere Informationen bitte der FA-Doku entnehmen
|
||||||
|
define('KurierIcon', 'fa-solid fa-hand-holding-dollar fa-lg');
|
||||||
|
define('SpeditionIcon', 'fa-solid fa-truck fa-lg');
|
||||||
|
define('DHLIcon', 'fa-brands fa-dhl fa-2xl');
|
||||||
|
define('LKWIcon', 'fa-solid fa-truck fa-lg');
|
||||||
|
define('TransporterIcon', 'fa-solid fa-van-shuttle fa-lg');
|
||||||
|
define('PKWIcon', 'fa-solid fa-car fa-lg');
|
||||||
|
define('SelbstabholerIcon', 'fa-solid fa-person-walking fa-lg');
|
||||||
|
|
||||||
define('UseShippingStatus', true); //Nutzt den Packscheinstatus als Shipping Status. Hierdurch können die Icons unter verschiedenen Vorraussetzungen Grün werden, wenn der Versand organisiert wurde
|
define('UseShippingStatus', true); //Nutzt den Packscheinstatus als Shipping Status. Hierdurch können die Icons unter verschiedenen Vorraussetzungen Grün werden, wenn der Versand organisiert wurde
|
||||||
define('ShippingOutOrganizedStatus', 'Hinversand OK'); //Packschein Status (EpirentDropdown) der Gematcht werden muss, dass der Hinversand Organisiert / Bestellt wurde
|
define('ShippingOutOrganizedStatus', 'Hinversand OK'); //Packschein Status (EpirentDropdown) der Gematcht werden muss, dass der Hinversand Organisiert / Bestellt wurde
|
||||||
@@ -72,5 +86,7 @@ define('CheckOut_FutureDays', -1); // Konfiguration, wie viele Tage in der Zukun
|
|||||||
define('CheckIn_FutureDays', -1); // Konfiguration, wie viele Tage in der Zukunft der CheckIn angezeigt werden soll. '-1' zeigt alle an. Abhängig von der Variablen CheckIn_UseDispoEndForRowMarking
|
define('CheckIn_FutureDays', -1); // Konfiguration, wie viele Tage in der Zukunft der CheckIn angezeigt werden soll. '-1' zeigt alle an. Abhängig von der Variablen CheckIn_UseDispoEndForRowMarking
|
||||||
define('SortCheckOut', 2); // Konfiguration, welcher Datensatz für die Sortierung Verwendet werden soll. Möglichkeiten '1': Packscheinnummer / '2': Dispostart
|
define('SortCheckOut', 2); // Konfiguration, welcher Datensatz für die Sortierung Verwendet werden soll. Möglichkeiten '1': Packscheinnummer / '2': Dispostart
|
||||||
define('SortCheckIn', 2); // Konfiguration, welcher Datensatz für die Sortierung Verwendet werden soll. Möglichkeiten '1': Packscheinnummer / '2': Dispoende
|
define('SortCheckIn', 2); // Konfiguration, welcher Datensatz für die Sortierung Verwendet werden soll. Möglichkeiten '1': Packscheinnummer / '2': Dispoende
|
||||||
|
// @section: Epirent-Spezifische Einstellungen - Labeldruck
|
||||||
|
define('Labelprint_Logopath', '/../src/assets/img/logo.png'); //Pfad zum Logo für den Etikettendruck
|
||||||
|
define('Labelprint_Addresstext', '<b>VT-Media</b><br/>Augsburger Straße 22<br/>87672 Roßhaupten<br/>info@vt-media.de<br/>vt-media.de<br/>08367/4619-990'); //Text der im Adressfeld der Etiketten angezeigt wird. max 6 Zeilen Empfohlen. Umbruch mit <br>. Fett mit <b>Text</b>
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -3,22 +3,35 @@
|
|||||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
|
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
|
||||||
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
||||||
<group>
|
<group>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/sources/getCheckOutCards.php</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/dist/index.html</file>
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/.git/config</file>
|
<file>file:/C:/xampp/htdocs/EpiWebview/.git/config</file>
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/PackAufgabenMonitor.php</file>
|
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/sources/getSidenav.php</file>
|
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/dist/index.php</file>
|
<file>file:/C:/xampp/htdocs/EpiWebview/dist/index.php</file>
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/sources/getOrderDetails.php</file>
|
<file>file:/C:/xampp/htdocs/EpiWebview/sources/getOrderDetails.php</file>
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/config.php</file>
|
<file>file:/C:/xampp/htdocs/EpiWebview/dist/css/styles.css</file>
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/EpiApi.php</file>
|
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/sources/getOrders.php</file>
|
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/Aufgabenmonitor.php</file>
|
<file>file:/C:/xampp/htdocs/EpiWebview/Aufgabenmonitor.php</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/dist/layout-sidenav-light.html</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/dist/editconfig.php</file>
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/composer.json</file>
|
<file>file:/C:/xampp/htdocs/EpiWebview/composer.json</file>
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/sources/getCheckInTable.php</file>
|
<file>file:/C:/xampp/htdocs/EpiWebview/sources/getCheckInTable.php</file>
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/CrewbrainApi.php</file>
|
<file>file:/C:/xampp/htdocs/EpiWebview/CrewbrainApi.php</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/example.config.php</file>
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/composer.lock</file>
|
<file>file:/C:/xampp/htdocs/EpiWebview/composer.lock</file>
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/info.php</file>
|
<file>file:/C:/xampp/htdocs/EpiWebview/info.php</file>
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/Packmonitor.php</file>
|
<file>file:/C:/xampp/htdocs/EpiWebview/Packmonitor.php</file>
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/index.php</file>
|
<file>file:/C:/xampp/htdocs/EpiWebview/index.php</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/.gitignore</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/PackAufgabenMonitor.php</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/sources/getSidenav.php</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/README.MD</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/config.php</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/EpiApi.php</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/sources/getOrders.php</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/sources/getCheckInCards.php</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/dist/orders.php</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/dist/insurance.php</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/LICENSE.MD</file>
|
||||||
|
<file>file:/C:/xampp/htdocs/EpiWebview/vendor/autoload.php</file>
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/sources/getAufgabenTable.php</file>
|
<file>file:/C:/xampp/htdocs/EpiWebview/sources/getAufgabenTable.php</file>
|
||||||
<file>file:/C:/xampp/htdocs/EpiWebview/sources/getCheckOutTable.php</file>
|
<file>file:/C:/xampp/htdocs/EpiWebview/sources/getCheckOutTable.php</file>
|
||||||
</group>
|
</group>
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ function resolveRowMarkDateCheckIn(
|
|||||||
case 2: $candidate = dt($NachbereitungsTimeDetail->date_start ?? null); break;
|
case 2: $candidate = dt($NachbereitungsTimeDetail->date_start ?? null); break;
|
||||||
case 3: $candidate = dt($RePackagingTimeDetail->date_start ?? null); break;
|
case 3: $candidate = dt($RePackagingTimeDetail->date_start ?? null); break;
|
||||||
case 4: $candidate = dt($PackingNoteDetail->date_redelivery ?? null); break;
|
case 4: $candidate = dt($PackingNoteDetail->date_redelivery ?? null); break;
|
||||||
|
case 5: $candidate = dt($DispoTimeDetail->date_end ?? null); break;
|
||||||
default: $candidate = null; break;
|
default: $candidate = null; break;
|
||||||
}
|
}
|
||||||
if (!$candidate) {
|
if (!$candidate) {
|
||||||
@@ -88,6 +89,7 @@ foreach ($data_output as $packingjob) {
|
|||||||
// Zeit-Slots aus dem Schedule
|
// Zeit-Slots aus dem Schedule
|
||||||
$NachbereitungsTimeDetail = null;
|
$NachbereitungsTimeDetail = null;
|
||||||
$RePackagingTimeDetail = null;
|
$RePackagingTimeDetail = null;
|
||||||
|
$DispoTimeDetail = null;
|
||||||
if ($orderdetail_output && !empty($orderdetail_output->order_schedule)) {
|
if ($orderdetail_output && !empty($orderdetail_output->order_schedule)) {
|
||||||
foreach ($orderdetail_output->order_schedule as $scheduledetail) {
|
foreach ($orderdetail_output->order_schedule as $scheduledetail) {
|
||||||
if ($scheduledetail->name == Nachbereitung_Zeitvariable) {
|
if ($scheduledetail->name == Nachbereitung_Zeitvariable) {
|
||||||
@@ -96,6 +98,9 @@ foreach ($data_output as $packingjob) {
|
|||||||
if ($scheduledetail->name == Rückpacken_Zeitvariable) {
|
if ($scheduledetail->name == Rückpacken_Zeitvariable) {
|
||||||
$RePackagingTimeDetail = $scheduledetail;
|
$RePackagingTimeDetail = $scheduledetail;
|
||||||
}
|
}
|
||||||
|
if ($scheduledetail->name == "Dispo") {
|
||||||
|
$DispoTimeDetail = $scheduledetail;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ function resolveRowMarkDateCheckIn(
|
|||||||
$NachbereitungsTimeDetail,
|
$NachbereitungsTimeDetail,
|
||||||
$RePackagingTimeDetail,
|
$RePackagingTimeDetail,
|
||||||
$PackingNoteDetail,
|
$PackingNoteDetail,
|
||||||
|
$DispoTimeDetail,
|
||||||
int $source
|
int $source
|
||||||
): ?DateTimeImmutable {
|
): ?DateTimeImmutable {
|
||||||
$candidate = null;
|
$candidate = null;
|
||||||
@@ -67,6 +68,8 @@ function resolveRowMarkDateCheckIn(
|
|||||||
case 2: $candidate = dt($NachbereitungsTimeDetail->date_start ?? null); break;
|
case 2: $candidate = dt($NachbereitungsTimeDetail->date_start ?? null); break;
|
||||||
case 3: $candidate = dt($RePackagingTimeDetail->date_start ?? null); break;
|
case 3: $candidate = dt($RePackagingTimeDetail->date_start ?? null); break;
|
||||||
case 4: $candidate = dt($PackingNoteDetail->date_redelivery ?? null); break;
|
case 4: $candidate = dt($PackingNoteDetail->date_redelivery ?? null); break;
|
||||||
|
case 5: $candidate = dt($DispoTimeDetail->date_end ?? null); break;
|
||||||
|
|
||||||
default: $candidate = null; break;
|
default: $candidate = null; break;
|
||||||
}
|
}
|
||||||
if (!$candidate) {
|
if (!$candidate) {
|
||||||
@@ -121,7 +124,7 @@ foreach ($data_output as $packingjob) {
|
|||||||
// Zeit-Slots aus dem Schedule
|
// Zeit-Slots aus dem Schedule
|
||||||
$NachbereitungsTimeDetail = null;
|
$NachbereitungsTimeDetail = null;
|
||||||
$RePackagingTimeDetail = null;
|
$RePackagingTimeDetail = null;
|
||||||
|
$DispoTimeDetail = null;
|
||||||
foreach ($orderdetail_output->order_schedule as $scheduledetail) {
|
foreach ($orderdetail_output->order_schedule as $scheduledetail) {
|
||||||
if ($scheduledetail->name == Nachbereitung_Zeitvariable) {
|
if ($scheduledetail->name == Nachbereitung_Zeitvariable) {
|
||||||
$NachbereitungsTimeDetail = $scheduledetail;
|
$NachbereitungsTimeDetail = $scheduledetail;
|
||||||
@@ -129,6 +132,9 @@ foreach ($data_output as $packingjob) {
|
|||||||
if ($scheduledetail->name == Rückpacken_Zeitvariable) {
|
if ($scheduledetail->name == Rückpacken_Zeitvariable) {
|
||||||
$RePackagingTimeDetail = $scheduledetail;
|
$RePackagingTimeDetail = $scheduledetail;
|
||||||
}
|
}
|
||||||
|
if ($scheduledetail->name == "Dispo") {
|
||||||
|
$DispoTimeDetail = $scheduledetail;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Row-Marking bestimmen (konfigurierbar, analog Checkout) ---
|
// --- Row-Marking bestimmen (konfigurierbar, analog Checkout) ---
|
||||||
@@ -146,6 +152,7 @@ foreach ($data_output as $packingjob) {
|
|||||||
$NachbereitungsTimeDetail,
|
$NachbereitungsTimeDetail,
|
||||||
$RePackagingTimeDetail,
|
$RePackagingTimeDetail,
|
||||||
$PackingNoteDetail,
|
$PackingNoteDetail,
|
||||||
|
$DispoTimeDetail,
|
||||||
$source
|
$source
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -163,7 +170,7 @@ foreach ($data_output as $packingjob) {
|
|||||||
echo "<td>" . $packingjob->event . "</td>";
|
echo "<td>" . $packingjob->event . "</td>";
|
||||||
|
|
||||||
// Zeitspalte öffnen, wenn mindestens eine Anzeige aktiv ist
|
// Zeitspalte öffnen, wenn mindestens eine Anzeige aktiv ist
|
||||||
if (ShowCheckInTimeOnCheckin || ShowNachbereitungTimeOnCheckin || ShowRePackagingTimeOnCheckin || ShowReDeliveryTimeOnCheckin) {
|
if (ShowCheckInTimeOnCheckin || ShowNachbereitungTimeOnCheckin || ShowRePackagingTimeOnCheckin || ShowReDeliveryTimeOnCheckin || ShowDispoEndOnCheckin) {
|
||||||
echo "<td>";
|
echo "<td>";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -190,7 +197,13 @@ foreach ($data_output as $packingjob) {
|
|||||||
echoMarkedTimeLine($PackingNoteDetail->date_redelivery, (int)$PackingNoteDetail->time_redelivery, $today, ShowTimesOnCheckin);
|
echoMarkedTimeLine($PackingNoteDetail->date_redelivery, (int)$PackingNoteDetail->time_redelivery, $today, ShowTimesOnCheckin);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ShowCheckInTimeOnCheckin || ShowNachbereitungTimeOnCheckin || ShowRePackagingTimeOnCheckin || ShowReDeliveryTimeOnCheckin) {
|
// Dispo Ende
|
||||||
|
if (ShowDispoEndOnCheckin && $DispoTimeDetail && $DispoTimeDetail->date_end != null) {
|
||||||
|
if (ShowCheckInTimeOnCheckin || ShowNachbereitungTimeOnCheckin || ShowRePackagingTimeOnCheckin || ShowReDeliveryTimeOnCheckin) echo "<br>";
|
||||||
|
echoMarkedTimeLine($DispoTimeDetail->date_end, (int)$DispoTimeDetail->time_end, $today, ShowTimesOnCheckin);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ShowCheckInTimeOnCheckin || ShowNachbereitungTimeOnCheckin || ShowRePackagingTimeOnCheckin || ShowReDeliveryTimeOnCheckin || ShowDispoEndOnCheckin) {
|
||||||
echo "</td>";
|
echo "</td>";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -218,25 +231,25 @@ foreach ($data_output as $packingjob) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($PackingNoteDetail->is_self_redeliver) {
|
if ($PackingNoteDetail->is_self_redeliver) {
|
||||||
echo '<i class="fa-solid fa-person-walking fa-lg"></i>';
|
echo '<i class="'.SelbstabholerIcon.'"></i>';
|
||||||
} else {
|
} else {
|
||||||
if (preg_match('/' . KurierContainsText . '/i', $PackingNoteDetail->shipping_in)) {
|
if (preg_match('/' . KurierContainsText . '/i', $PackingNoteDetail->shipping_in)) {
|
||||||
echo '<i class="fa-solid fa-hand-holding-dollar fa-lg"></i>';
|
echo '<i class="'.KurierIcon.'"></i>';
|
||||||
}
|
}
|
||||||
if (preg_match('/' . SpeditionContainsText . '/i', $PackingNoteDetail->shipping_in)) {
|
if (preg_match('/' . SpeditionContainsText . '/i', $PackingNoteDetail->shipping_in)) {
|
||||||
echo '<i class="fa-solid fa-truck fa-lg"></i>';
|
echo '<i class="'.SpeditionIcon.'"></i>';
|
||||||
}
|
}
|
||||||
if (preg_match('/' . DHLContainsText . '/i', $PackingNoteDetail->shipping_in)) {
|
if (preg_match('/' . DHLContainsText . '/i', $PackingNoteDetail->shipping_in)) {
|
||||||
echo '<i class="fa-brands fa-dhl fa-2xl"></i>';
|
echo '<i class="'.DHLIcon.'"></i>';
|
||||||
}
|
}
|
||||||
if (preg_match('/' . LKWContainsText . '/i', $PackingNoteDetail->shipping_in)) {
|
if (preg_match('/' . LKWContainsText . '/i', $PackingNoteDetail->shipping_in)) {
|
||||||
echo '<i class="fa-solid fa-industry fa-lg"></i><i class="fa-solid fa-truck fa-lg"></i>';
|
echo '<i class="fa-solid fa-industry fa-lg"></i><i class="'.LKWIcon.'"></i>';
|
||||||
}
|
}
|
||||||
if (preg_match('/' . TransporterContainsText . '/i', $PackingNoteDetail->shipping_in)) {
|
if (preg_match('/' . TransporterContainsText . '/i', $PackingNoteDetail->shipping_in)) {
|
||||||
echo '<i class="fa-solid fa-industry fa-lg"></i><i class="fa-solid fa-van-shuttle fa-lg"></i>';
|
echo '<i class="fa-solid fa-industry fa-lg"></i><i class="'.TransporterIcon.'"></i>';
|
||||||
}
|
}
|
||||||
if (preg_match('/' . PKWContainsText . '/i', $PackingNoteDetail->shipping_in)) {
|
if (preg_match('/' . PKWContainsText . '/i', $PackingNoteDetail->shipping_in)) {
|
||||||
echo '<i class="fa-solid fa-industry fa-lg"></i><i class="fa-solid fa-car fa-lg"></i>';
|
echo '<i class="fa-solid fa-industry fa-lg"></i><i class="'.PKWIcon.'"></i>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo "</td>";
|
echo "</td>";
|
||||||
@@ -250,10 +263,21 @@ foreach ($data_output as $packingjob) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTimeFromSeconds(string $timestring) {
|
function getTimeFromSeconds($seconds): string {
|
||||||
$hours = floor($timestring / 3600);
|
if ($seconds === null || $seconds === '') {
|
||||||
$mins = floor($timestring / 60 % 60);
|
return '';
|
||||||
$secs = floor($timestring % 60);
|
}
|
||||||
$timeFormat = sprintf('%02d:%02d', $hours, $mins);
|
|
||||||
return $timeFormat;
|
// robust normalisieren: String/Float -> Float -> gerundet -> Int
|
||||||
|
$seconds = (int) round((float) $seconds);
|
||||||
|
|
||||||
|
if ($seconds < 0) {
|
||||||
|
$seconds = 0; // oder: return ''; je nach gewünschtem Verhalten
|
||||||
|
}
|
||||||
|
|
||||||
|
// reine Integer-Arithmetik, keine impliziten float->int Casts
|
||||||
|
$hours = intdiv($seconds, 3600);
|
||||||
|
$mins = intdiv($seconds % 3600, 60);
|
||||||
|
|
||||||
|
return sprintf('%02d:%02d', $hours, $mins);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ function dayStart(DateTimeImmutable $d): DateTimeImmutable {
|
|||||||
return $d->setTime(0, 0, 0);
|
return $d->setTime(0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
function resolveRowMarkDate($packingjob, $VorbereitungsTimeDetail, $PackingNoteDetail, int $source): ?DateTimeImmutable {
|
function resolveRowMarkDate($packingjob, $VorbereitungsTimeDetail, $PackingNoteDetail, $DispoTimeDetail, int $source): ?DateTimeImmutable {
|
||||||
$candidate = null;
|
$candidate = null;
|
||||||
switch ($source) {
|
switch ($source) {
|
||||||
case 1: $candidate = dt($packingjob->date_start ?? null);
|
case 1: $candidate = dt($packingjob->date_start ?? null);
|
||||||
@@ -50,6 +50,8 @@ function resolveRowMarkDate($packingjob, $VorbereitungsTimeDetail, $PackingNoteD
|
|||||||
break;
|
break;
|
||||||
case 4: $candidate = dt($PackingNoteDetail->date_delivery ?? null);
|
case 4: $candidate = dt($PackingNoteDetail->date_delivery ?? null);
|
||||||
break;
|
break;
|
||||||
|
case 5: $candidate = dt($DispoTimeDetail->date_start ?? null);
|
||||||
|
break;
|
||||||
default: $candidate = null;
|
default: $candidate = null;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -70,7 +72,7 @@ function rowClassForDate(?DateTimeImmutable $markDate, ?DateTimeImmutable $today
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (UseDeliveredForCheckOutCompleted) {
|
if (UseDeliveredForCheckOutCompleted) {
|
||||||
$result = $Epi->requestEpiApi('/v1/packingnote/open?isco=False&cl=' . Epirent_Mandant);
|
$result = $Epi->requestEpiApi('/v1/packingnote/open?isci=true&cl=' . Epirent_Mandant);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$result = $Epi->requestEpiApi('/v1/packingnote/open?isci=False&cl=' . Epirent_Mandant);
|
$result = $Epi->requestEpiApi('/v1/packingnote/open?isci=False&cl=' . Epirent_Mandant);
|
||||||
@@ -131,11 +133,15 @@ if (
|
|||||||
}
|
}
|
||||||
|
|
||||||
$VorbereitungsTimeDetail = null;
|
$VorbereitungsTimeDetail = null;
|
||||||
|
$DispoTimeDetail = null;
|
||||||
|
|
||||||
foreach ($orderdetail_output->order_schedule as $scheduledetail) {
|
foreach ($orderdetail_output->order_schedule as $scheduledetail) {
|
||||||
if ($scheduledetail->name == Vorbereitungs_Zeitvariable) {
|
if ($scheduledetail->name == Vorbereitungs_Zeitvariable) {
|
||||||
$VorbereitungsTimeDetail = $scheduledetail;
|
$VorbereitungsTimeDetail = $scheduledetail;
|
||||||
}
|
}
|
||||||
|
if($scheduledetail->name == "Dispo"){
|
||||||
|
$DispoTimeDetail = $scheduledetail;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Row-Marking Datum bestimmen (konfigurierbar) ---
|
// --- Row-Marking Datum bestimmen (konfigurierbar) ---
|
||||||
@@ -146,7 +152,7 @@ if (
|
|||||||
$limit = $todayFilter->modify('+' . (int) CheckOut_FutureDays . ' day');
|
$limit = $todayFilter->modify('+' . (int) CheckOut_FutureDays . ' day');
|
||||||
}
|
}
|
||||||
|
|
||||||
$markDate = resolveRowMarkDate($packingjob, $VorbereitungsTimeDetail, $PackingNoteDetail, (int) CheckOutRowMarkSource);
|
$markDate = resolveRowMarkDate($packingjob, $VorbereitungsTimeDetail, $PackingNoteDetail, $DispoTimeDetail, (int) CheckOutRowMarkSource);
|
||||||
|
|
||||||
if (CheckOut_FutureDays == -1 || ($markDate && $markDate <= $limit)) {
|
if (CheckOut_FutureDays == -1 || ($markDate && $markDate <= $limit)) {
|
||||||
$trClass = rowClassForDate($markDate, $today);
|
$trClass = rowClassForDate($markDate, $today);
|
||||||
@@ -165,7 +171,7 @@ if (
|
|||||||
echo "<td>" . $packingjob->contact->name . "</td>";
|
echo "<td>" . $packingjob->contact->name . "</td>";
|
||||||
echo "<td>" . $packingjob->event . "</td>";
|
echo "<td>" . $packingjob->event . "</td>";
|
||||||
|
|
||||||
if (ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout || ShowPackagingTimeOnCheckout || ShowDeliveryTimeOnCheckout) { echo "<td>";}
|
if (ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout || ShowPackagingTimeOnCheckout || ShowDeliveryTimeOnCheckout || ShowDispoStartOnCheckout) { echo "<td>";}
|
||||||
|
|
||||||
|
|
||||||
if (ShowCheckoutTimeOnCheckout && $packingjob->date_start != null) {
|
if (ShowCheckoutTimeOnCheckout && $packingjob->date_start != null) {
|
||||||
@@ -175,13 +181,30 @@ if (
|
|||||||
if (ShowCheckoutTimeOnCheckout) {
|
if (ShowCheckoutTimeOnCheckout) {
|
||||||
echo "<br>";
|
echo "<br>";
|
||||||
}
|
}
|
||||||
echoMarkedTimeLine($VorbereitungsTimeDetail->date_start, (int) $VorbereitungsTimeDetail->time_start, $today, ShowTimesOnCheckout);
|
|
||||||
|
if($packingjob->is_all_out != 0){
|
||||||
|
echoMarkedTimeLine($VorbereitungsTimeDetail->date_start, (int) $VorbereitungsTimeDetail->time_start, $today, ShowTimesOnCheckout);
|
||||||
|
}else{
|
||||||
|
echo "<span class='bg-success text-light'>";
|
||||||
|
echo date_format(new \DateTime($VorbereitungsTimeDetail->date_start), 'd.m.Y');
|
||||||
|
if($VorbereitungsTimeDetail->time_start){echo " ".getTimeFromSeconds((string) $VorbereitungsTimeDetail->time_start);}
|
||||||
|
echo "</span>";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if (ShowPackagingTimeOnCheckout && $PackingNoteDetail && $PackingNoteDetail->date_packing != null) {
|
if (ShowPackagingTimeOnCheckout && $PackingNoteDetail && $PackingNoteDetail->date_packing != null) {
|
||||||
if (ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout) {
|
if (ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout) {
|
||||||
echo "<br>";
|
echo "<br>";
|
||||||
}
|
}
|
||||||
|
if($packingjob->is_all_out != 0){
|
||||||
echoMarkedTimeLine($PackingNoteDetail->date_packing, (int) $PackingNoteDetail->time_packing, $today, ShowTimesOnCheckout);
|
echoMarkedTimeLine($PackingNoteDetail->date_packing, (int) $PackingNoteDetail->time_packing, $today, ShowTimesOnCheckout);
|
||||||
|
}else{
|
||||||
|
echo "<span class='bg-success text-light'>";
|
||||||
|
echo date_format(new \DateTime($PackingNoteDetail->date_packing), 'd.m.Y');
|
||||||
|
if($PackingNoteDetail->time_packing){echo " ".getTimeFromSeconds((string) $PackingNoteDetail->time_packing);}
|
||||||
|
echo "</span>";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (ShowDeliveryTimeOnCheckout && $PackingNoteDetail && $PackingNoteDetail->date_delivery != null) {
|
if (ShowDeliveryTimeOnCheckout && $PackingNoteDetail && $PackingNoteDetail->date_delivery != null) {
|
||||||
if (ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout || ShowPackagingTimeOnCheckout) {
|
if (ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout || ShowPackagingTimeOnCheckout) {
|
||||||
@@ -189,9 +212,14 @@ if (
|
|||||||
}
|
}
|
||||||
echoMarkedTimeLine($PackingNoteDetail->date_delivery, (int) $PackingNoteDetail->time_delivery, $today, ShowTimesOnCheckout);
|
echoMarkedTimeLine($PackingNoteDetail->date_delivery, (int) $PackingNoteDetail->time_delivery, $today, ShowTimesOnCheckout);
|
||||||
}
|
}
|
||||||
|
if (ShowDispoStartOnCheckout && $DispoTimeDetail->date_start && $DispoTimeDetail->time_start != null) {
|
||||||
|
if (ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout || ShowPackagingTimeOnCheckout || ShowDeliveryTimeOnCheckout) {
|
||||||
|
echo "<br>";
|
||||||
|
}
|
||||||
|
echoMarkedTimeLine($DispoTimeDetail->date_start, (int) $DispoTimeDetail->time_start, $today, ShowTimesOnCheckout);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout || ShowPackagingTimeOnCheckout || ShowDeliveryTimeOnCheckout || ShowDispoStartOnCheckout) {
|
||||||
if (ShowCheckoutTimeOnCheckout || ShowVorbereitungTimeOnCheckout || ShowPackagingTimeOnCheckout || ShowDeliveryTimeOnCheckout) {
|
|
||||||
echo "</td>";
|
echo "</td>";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,25 +247,25 @@ if (
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($PackingNoteDetail->is_self_pickup) {
|
if ($PackingNoteDetail->is_self_pickup) {
|
||||||
echo '<i class="fa-solid fa-person-walking fa-lg"></i>';
|
echo '<i class="'.SelbstabholerIcon.'"></i>';
|
||||||
} else {
|
} else {
|
||||||
if (preg_match('/' . KurierContainsText . '/i', $PackingNoteDetail->shipping_out)) {
|
if (preg_match('/' . KurierContainsText . '/i', $PackingNoteDetail->shipping_out)) {
|
||||||
echo '<i class="fa-solid fa-hand-holding-dollar fa-lg"></i>';
|
echo '<i class="'.KurierIcon.'"></i>';
|
||||||
}
|
}
|
||||||
if (preg_match('/' . SpeditionContainsText . '/i', $PackingNoteDetail->shipping_out)) {
|
if (preg_match('/' . SpeditionContainsText . '/i', $PackingNoteDetail->shipping_out)) {
|
||||||
echo '<i class="fa-solid fa-truck fa-lg"></i>';
|
echo '<i class="'.SpeditionIcon.'"></i>';
|
||||||
}
|
}
|
||||||
if (preg_match('/' . DHLContainsText . '/i', $PackingNoteDetail->shipping_out)) {
|
if (preg_match('/' . DHLContainsText . '/i', $PackingNoteDetail->shipping_out)) {
|
||||||
echo '<i class="fa-brands fa-dhl fa-2xl"></i>';
|
echo '<i class="'.DHLIcon.'"></i>';
|
||||||
}
|
}
|
||||||
if (preg_match('/' . LKWContainsText . '/i', $PackingNoteDetail->shipping_out)) {
|
if (preg_match('/' . LKWContainsText . '/i', $PackingNoteDetail->shipping_out)) {
|
||||||
echo '<i class="fa-solid fa-industry fa-lg"></i><i class="fa-solid fa-truck fa-lg"></i>';
|
echo '<i class="fa-solid fa-industry fa-lg"></i><i class="'.LKWIcon.'"></i>';
|
||||||
}
|
}
|
||||||
if (preg_match('/' . TransporterContainsText . '/i', $PackingNoteDetail->shipping_out)) {
|
if (preg_match('/' . TransporterContainsText . '/i', $PackingNoteDetail->shipping_out)) {
|
||||||
echo '<i class="fa-solid fa-industry fa-lg"></i><i class="fa-solid fa-van-shuttle fa-lg"></i>';
|
echo '<i class="fa-solid fa-industry fa-lg"></i><i class="'.TransporterIcon.'"></i>';
|
||||||
}
|
}
|
||||||
if (preg_match('/' . PKWContainsText . '/i', $PackingNoteDetail->shipping_out)) {
|
if (preg_match('/' . PKWContainsText . '/i', $PackingNoteDetail->shipping_out)) {
|
||||||
echo '<i class="fa-solid fa-industry fa-lg"></i><i class="fa-solid fa-car fa-lg"></i>';
|
echo '<i class="fa-solid fa-industry fa-lg"></i><i class="'.PKWIcon.'"></i>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo "</td>";
|
echo "</td>";
|
||||||
@@ -267,15 +295,35 @@ function echoMarkedTimeLine(?string $dateStr, ?int $timeSeconds, DateTimeImmutab
|
|||||||
echo $cls ? "</span>" : "";
|
echo $cls ? "</span>" : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
function getTimeFromSeconds(string $timestring) {
|
function getTimeFromSeconds(string $timestring) {
|
||||||
|
|
||||||
$hours = floor($timestring / 3600);
|
$hours = floor($timestring / 3600);
|
||||||
$mins = floor($timestring / 60 % 60);
|
$mins = floor(round($timestring / 60 % 60));
|
||||||
$secs = floor($timestring % 60);
|
$secs = floor(round($timestring % 60));
|
||||||
|
|
||||||
$timeFormat = sprintf('%02d:%02d', $hours, $mins);
|
$timeFormat = sprintf('%02d:%02d', $hours, $mins);
|
||||||
|
|
||||||
return $timeFormat;
|
return $timeFormat;
|
||||||
|
}*/
|
||||||
|
function getTimeFromSeconds($seconds): string {
|
||||||
|
if ($seconds === null || $seconds === '') {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
// robust normalisieren: String/Float -> Float -> gerundet -> Int
|
||||||
|
$seconds = (int) round((float) $seconds);
|
||||||
|
|
||||||
|
if ($seconds < 0) {
|
||||||
|
$seconds = 0; // oder: return ''; je nach gewünschtem Verhalten
|
||||||
|
}
|
||||||
|
|
||||||
|
// reine Integer-Arithmetik, keine impliziten float->int Casts
|
||||||
|
$hours = intdiv($seconds, 3600);
|
||||||
|
$mins = intdiv($seconds % 3600, 60);
|
||||||
|
|
||||||
|
return sprintf('%02d:%02d', $hours, $mins);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
877
sources/getProductLabel.php
Normal file
877
sources/getProductLabel.php
Normal file
@@ -0,0 +1,877 @@
|
|||||||
|
<?php
|
||||||
|
error_reporting(E_ALL & ~E_DEPRECATED);
|
||||||
|
|
||||||
|
require('../config.php');
|
||||||
|
require('../EpiApi.php');
|
||||||
|
require_once __DIR__ . '/../vendor/autoload.php';
|
||||||
|
require_once __DIR__ . '/../vendor/tecnickcom/tcpdf/tcpdf.php';
|
||||||
|
date_default_timezone_set('Europe/Berlin');
|
||||||
|
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
|
||||||
|
$deviceNumber = (!empty($_GET['nr'])) ? '--' . trim($_GET['nr']) : '';
|
||||||
|
|
||||||
|
$Epi = new Epirent();
|
||||||
|
$product =json_decode($Epi->requestEpiApi('/v1/product/'.$id.'?cl=' . Epirent_Mandant))->payload[0];
|
||||||
|
$productImage =json_decode($Epi->requestEpiApi('/v1/product/image/'.$id.'?cl=' . Epirent_Mandant))->payload[0]->image_data;
|
||||||
|
|
||||||
|
|
||||||
|
function s(?string $v): string { return trim((string)$v); }
|
||||||
|
function fnum(?float $v, int $dec = 2): string {
|
||||||
|
if ($v === null) return '';
|
||||||
|
$n = number_format((float)$v, $dec, ',', '.');
|
||||||
|
return rtrim(rtrim($n, '0'), ',');
|
||||||
|
}
|
||||||
|
|
||||||
|
//Set Variables
|
||||||
|
$productName = $product->name;
|
||||||
|
$productNumber = $product->product_no;
|
||||||
|
|
||||||
|
$bruttoWeightSum = $product->tech_data->weight_gro;
|
||||||
|
|
||||||
|
$bundle = buildBundleForProduct($Epi, $product);
|
||||||
|
|
||||||
|
/** Test-Daten
|
||||||
|
*/
|
||||||
|
$dimsBHT =$product->tech_data->width_gro." x ".$product->tech_data->depth_gro." x ".$product->tech_data->height_gro;
|
||||||
|
$volume = ((float)$product->tech_data->height_gro * (float)$product->tech_data->width_gro * (float)$product->tech_data->depth_gro)* 0.000001;
|
||||||
|
$storageLoc = $product->product_data->storage_location_nearby;
|
||||||
|
|
||||||
|
/** Layout */
|
||||||
|
$PAGE_SIZE = 'A4';
|
||||||
|
$MARGIN_LEFT = 8;
|
||||||
|
$MARGIN_TOP = 8;
|
||||||
|
$MARGIN_RIGHT = 8;
|
||||||
|
$MARGIN_BOTTOM = 10;
|
||||||
|
|
||||||
|
$CELL_PAD = 1.6;
|
||||||
|
$LINE_GRAY = '#efefef';
|
||||||
|
|
||||||
|
$LEVEL_MIN = 1; $LEVEL_MAX = 5;
|
||||||
|
$INDENT_PX_PER_LEVEL = 10;
|
||||||
|
$BASE_FONT_PX = 10;
|
||||||
|
$FONT_STEP_PX = 1.5;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/** TCPDF */
|
||||||
|
$pdf = new TCPDF('P', 'mm', $PAGE_SIZE, true, 'UTF-8', false);
|
||||||
|
|
||||||
|
// 1) Pfade sauber
|
||||||
|
$fontDir = realpath(__DIR__ . '/../src/assets/font') . '/';
|
||||||
|
$tcpdfFontsDir = defined('K_PATH_FONTS') ? K_PATH_FONTS : (dirname((new \ReflectionClass('TCPDF'))->getFileName()) . '/fonts/');
|
||||||
|
|
||||||
|
// 2) Rechte (einmalig sicherstellen)
|
||||||
|
// -> hast du schon gefixt
|
||||||
|
|
||||||
|
// 3) TTFs registrieren und Rückgabewerte merken
|
||||||
|
$fontReg = file_exists($fontDir.'Hurme3/HurmeGeometricSans3-Regular.ttf')
|
||||||
|
? TCPDF_FONTS::addTTFfont($fontDir.'Hurme3/HurmeGeometricSans3-Regular.ttf', 'TrueTypeUnicode', '', 96)
|
||||||
|
: false;
|
||||||
|
$fontBold = file_exists($fontDir.'Hurme1/HurmeGeometricSans1-Bold.ttf')
|
||||||
|
? TCPDF_FONTS::addTTFfont($fontDir.'Hurme1/HurmeGeometricSans1-Bold.ttf', 'TrueTypeUnicode', '', 96)
|
||||||
|
: false;
|
||||||
|
$fontItal = file_exists($fontDir.'Hurme3/HurmeGeometricSans3-Italic.ttf')
|
||||||
|
? TCPDF_FONTS::addTTFfont($fontDir.'Hurme3/HurmeGeometricSans3-Italic.ttf', 'TrueTypeUnicode', '', 96)
|
||||||
|
: false;
|
||||||
|
$fontBI = file_exists($fontDir.'Hurme1/HurmeGeometricSans1-BoldItalic.ttf')
|
||||||
|
? TCPDF_FONTS::addTTFfont($fontDir.'Hurme1/HurmeGeometricSans1-BoldItalic.ttf', 'TrueTypeUnicode', '', 96)
|
||||||
|
: false;
|
||||||
|
|
||||||
|
// 4) Fallback setzen
|
||||||
|
$baseFont = $fontReg ?: 'dejavusans';
|
||||||
|
|
||||||
|
// 5) Header/Footer und Defaults
|
||||||
|
$pdf->setHeaderFont([$baseFont, '', 10]);
|
||||||
|
$pdf->setFooterFont([$baseFont, '', 9]);
|
||||||
|
$pdf->SetDefaultMonospacedFont('courier');
|
||||||
|
|
||||||
|
// 6) *** AB JETZT KEIN dejavusans MEHR SETZEN! ***
|
||||||
|
$pdf->SetFont($baseFont, '', 10.5);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$pdf->SetCreator('VT-Media EpiWebview');
|
||||||
|
$pdf->SetAuthor('VT-Media');
|
||||||
|
$pdf->SetTitle('Kistenetikett '.$productName);
|
||||||
|
$pdf->SetSubject('Kistenetikett');
|
||||||
|
|
||||||
|
$pdf->setPrintHeader(false);
|
||||||
|
$pdf->setPrintFooter(false);
|
||||||
|
$pdf->SetMargins($MARGIN_LEFT, $MARGIN_TOP, $MARGIN_RIGHT);
|
||||||
|
$pdf->SetAutoPageBreak(true, $MARGIN_BOTTOM);
|
||||||
|
$pdf->setImageScale(1.0);
|
||||||
|
$pdf->setFontSubsetting(true);
|
||||||
|
$pdf->setCellPadding($CELL_PAD);
|
||||||
|
|
||||||
|
$pdf->AddPage();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// --- LOGO in fester Box mit Rahmen, zentriert & verzerrungsfrei ---
|
||||||
|
$logoPath = __DIR__ . Labelprint_Logopath;
|
||||||
|
|
||||||
|
$startX = $pdf->GetX();
|
||||||
|
$startY = $pdf->GetY();
|
||||||
|
|
||||||
|
// feste Rahmen-Größe (in mm)
|
||||||
|
$frameW = 38.0; // Gesamtbreite des Rahmens
|
||||||
|
$frameH = 20; // Gesamthöhe des Rahmens
|
||||||
|
$frameOffsetX = 1.4; // Abstand vom linken Margin (wie vorher genutzt)
|
||||||
|
$frameOffsetY = 1.5; // Abstand von oben (wie vorher genutzt)
|
||||||
|
|
||||||
|
// Rahmen-Position
|
||||||
|
$frameX = $startX + $frameOffsetX;
|
||||||
|
$frameY = $startY + $frameOffsetY;
|
||||||
|
|
||||||
|
// Rahmen zeichnen
|
||||||
|
$pdf->SetLineWidth(0.3);
|
||||||
|
$pdf->Rect($frameX, $frameY, $frameW, $frameH, 'D');
|
||||||
|
|
||||||
|
// Logo innerhalb des Rahmens mit Innenabstand
|
||||||
|
$innerPad = 1.2; // mm Luft im Rahmen
|
||||||
|
$maxW = $frameW - 2 * $innerPad;
|
||||||
|
$maxH = $frameH - 2 * $innerPad;
|
||||||
|
|
||||||
|
if (is_file($logoPath)) {
|
||||||
|
// Seitenverhältnis ermitteln
|
||||||
|
$imgWpx = $imgHpx = 0;
|
||||||
|
if (@list($imgWpx, $imgHpx) = @getimagesize($logoPath)) {
|
||||||
|
$ratio = ($imgHpx > 0) ? ($imgWpx / $imgHpx) : 1.0;
|
||||||
|
|
||||||
|
// proportional in den Rahmen einpassen
|
||||||
|
if ($maxW / $maxH > $ratio) {
|
||||||
|
$drawH = $maxH;
|
||||||
|
$drawW = $maxH * $ratio;
|
||||||
|
} else {
|
||||||
|
$drawW = $maxW;
|
||||||
|
$drawH = $maxW / $ratio;
|
||||||
|
}
|
||||||
|
|
||||||
|
// zentrieren
|
||||||
|
$imgX = $frameX + ($frameW - $drawW) / 2;
|
||||||
|
$imgY = $frameY + ($frameH - $drawH) / 2;
|
||||||
|
|
||||||
|
// ausgeben
|
||||||
|
$pdf->Image($logoPath, $imgX, $imgY, $drawW, $drawH, '', '', '', false, 300);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$afterLogoX = $frameX + $frameW - 1.4; // gleicher Abstand wie zuvor, jetzt basierend auf Rahmenbreite
|
||||||
|
$afterLogoBottomY = $frameY + $frameH; // falls du unten bündig etwas brauchst
|
||||||
|
$pdf->SetXY($afterLogoX, $startY); // Cursor rechts neben dem Logo positionieren
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$addrHtml = '
|
||||||
|
<div style="line-height:1.25; font-size:6px; margin:0; padding:0;">'.Labelprint_Addresstext.'</div>';
|
||||||
|
// Feste Box rechts neben dem Logo (direkt bündig)
|
||||||
|
$addrBoxW = 30.0; // feste Breite (mm)
|
||||||
|
$addrBoxH = 20.0; // feste Höhe (mm)
|
||||||
|
$addrPad = 0.5; // Innenabstand Inhalt → Rahmen (mm)
|
||||||
|
|
||||||
|
// bündig rechts neben dem Logo-Rahmen starten
|
||||||
|
$addrX = $frameX + $frameW; // kein zusätzlicher Abstand
|
||||||
|
$addrY = $startY+1.5; // gleiche Oberkante wie Logo
|
||||||
|
|
||||||
|
// 1) festen Rahmen zeichnen
|
||||||
|
$pdf->SetLineWidth(0.3);
|
||||||
|
$pdf->Rect($addrX, $addrY, $addrBoxW, $addrBoxH, 'D');
|
||||||
|
|
||||||
|
// 2) HTML-Inhalt in die Box schreiben, mit Clipping (Überhang wird abgeschnitten)
|
||||||
|
$pdf->StartTransform();
|
||||||
|
$pdf->Rect($addrX, $addrY, $addrBoxW, $addrBoxH, 'CNZ'); // Clip auf Box setzen
|
||||||
|
|
||||||
|
$pdf->writeHTMLCell(
|
||||||
|
$addrBoxW - 2*$addrPad, // feste Breite des Inhalts
|
||||||
|
$addrBoxH - 2*$addrPad, // feste Höhe des Inhalts
|
||||||
|
$addrX + $addrPad, // x mit Innenabstand
|
||||||
|
$addrY + $addrPad, // y mit Innenabstand
|
||||||
|
$addrHtml, // dein HTML
|
||||||
|
0, // kein Border (Rahmen haben wir schon)
|
||||||
|
0, // ln
|
||||||
|
false, // fill
|
||||||
|
true, // reseth
|
||||||
|
'L', // align
|
||||||
|
true // autopadding
|
||||||
|
);
|
||||||
|
|
||||||
|
$pdf->StopTransform();
|
||||||
|
|
||||||
|
// Cursor steht bereits auf: $pdf->SetXY($addrX + $addrBoxW, $addrY);
|
||||||
|
|
||||||
|
// 1) HTML OHNE border (sonst Doppelrahmen)
|
||||||
|
$productionHtml = '
|
||||||
|
<div style="line-height:1.3; font-size:8px; margin:0; padding:0;">
|
||||||
|
<b>Produktion</b><br/><br><br><br>
|
||||||
|
</div>';
|
||||||
|
|
||||||
|
// 2) Feste Box rechts neben der Adress-Box
|
||||||
|
$prodX = $addrX + $addrBoxW; // bündig rechts neben Adresse
|
||||||
|
$prodY = $addrY; // gleiche Oberkante
|
||||||
|
// Breite: restliche Seitenbreite bis zum rechten Rand
|
||||||
|
$prodW = $pdf->getPageWidth() - $MARGIN_RIGHT - $prodX+2;
|
||||||
|
// Höhe: fix (anpassen nach Wunsch)
|
||||||
|
$prodH = 20.0; // mm
|
||||||
|
$prodPad = 0; // Innenabstand
|
||||||
|
|
||||||
|
// 3) EIN sichtbarer Rahmen zeichnen
|
||||||
|
$pdf->SetLineWidth(0.3);
|
||||||
|
$pdf->Rect($prodX, $prodY, $prodW, $prodH, 'D');
|
||||||
|
|
||||||
|
// 4) Inhalt in die Box schreiben und clippen (Überhang abgeschnitten)
|
||||||
|
$pdf->StartTransform();
|
||||||
|
$pdf->Rect($prodX, $prodY, $prodW, $prodH, 'CNZ'); // Clip auf Box setzen
|
||||||
|
|
||||||
|
$pdf->writeHTMLCell(
|
||||||
|
$prodW - 2*$prodPad, // feste Breite des Inhalts
|
||||||
|
$prodH - 2*$prodPad, // feste Höhe des Inhalts
|
||||||
|
$prodX + $prodPad, // x mit Innenabstand
|
||||||
|
$prodY + $prodPad, // y mit Innenabstand
|
||||||
|
$productionHtml, // Inhalt (ohne border!)
|
||||||
|
0, // kein Border (Rahmen haben wir schon)
|
||||||
|
0, // ln
|
||||||
|
false, // fill
|
||||||
|
true, // reseth
|
||||||
|
'L', // align
|
||||||
|
true // autopadding
|
||||||
|
);
|
||||||
|
|
||||||
|
$pdf->StopTransform();
|
||||||
|
|
||||||
|
// 5) (Optional) Cursor direkt rechts neben der Box positionieren
|
||||||
|
$pdf->SetXY($prodX + $prodW, $prodY);
|
||||||
|
|
||||||
|
// === Name-Box: feste Größe, Text bricht, kein Doppelrahmen ===
|
||||||
|
|
||||||
|
// Breite: gesamte Restbreite bis zum rechten Rand (unter Adresse + Produktion)
|
||||||
|
$nameX = $frameX; // beginnt rechts neben dem Logo/Adressbereich
|
||||||
|
$nameW = $pdf->getPageWidth() - $MARGIN_RIGHT - $nameX-65.2;
|
||||||
|
|
||||||
|
// Höhe & Padding der Box (anpassen nach Wunsch)
|
||||||
|
$nameBoxH = 18.2; // mm - feste Höhe
|
||||||
|
$namePad = 1.5; // mm - Innenabstand
|
||||||
|
|
||||||
|
// Y: direkt unter die höhere der beiden Boxen (Adresse vs. Produktion)
|
||||||
|
$yAfterRow = max($addrY + $addrBoxH, $prodY + $prodH) + 0.0; // +2 mm Abstand
|
||||||
|
$nameY = $yAfterRow;
|
||||||
|
|
||||||
|
// Inhalt OHNE border (sonst Doppelrahmen)
|
||||||
|
$nameHtml = '
|
||||||
|
<div style="font-size:15px; font-weight:700; line-height:1.3; margin:0; padding:0;">' . htmlspecialchars($productName) . '
|
||||||
|
</div>';
|
||||||
|
|
||||||
|
// 1) Sichtbaren Rahmen zeichnen (feste Größe)
|
||||||
|
$pdf->SetLineWidth(0.3);
|
||||||
|
$pdf->Rect($nameX, $nameY, $nameW, $nameBoxH, 'D');
|
||||||
|
|
||||||
|
// 2) Inhalt in die Box schreiben und clippen
|
||||||
|
$pdf->StartTransform();
|
||||||
|
$pdf->Rect($nameX, $nameY, $nameW, $nameBoxH, 'CNZ'); // Clip auf Box setzen
|
||||||
|
|
||||||
|
$pdf->writeHTMLCell(
|
||||||
|
$nameW - 2*$namePad, // feste Breite für den Text
|
||||||
|
$nameBoxH - 2*$namePad, // feste Höhe für den Text
|
||||||
|
$nameX + $namePad, // x mit Innenabstand
|
||||||
|
$nameY + $namePad, // y mit Innenabstand
|
||||||
|
$nameHtml,
|
||||||
|
0, // kein HTML-Border
|
||||||
|
0, // ln
|
||||||
|
false, // fill
|
||||||
|
true, // reseth
|
||||||
|
'L', // align
|
||||||
|
true // autopadding
|
||||||
|
);
|
||||||
|
|
||||||
|
$pdf->StopTransform();
|
||||||
|
|
||||||
|
// Optional: Cursor unter die Box setzen (falls du danach im Fluss weitermachen willst)
|
||||||
|
$pdf->SetXY($nameX, $nameY + $nameBoxH);
|
||||||
|
|
||||||
|
// 1) Box-Geometrie (immer gleich groß)
|
||||||
|
$pnBoxW = 67.0; // mm – Gesamtbreite der Box
|
||||||
|
$pnBoxH = 18.2; // mm – Gesamthöhe der Box
|
||||||
|
$pnBoxPad = 2.0; // mm – Innenabstand innerhalb der Box
|
||||||
|
|
||||||
|
// Position der Box (aktuell am rechten Rand oben; passe frei an)
|
||||||
|
$pnBoxX = $pdf->getPageWidth() - $MARGIN_RIGHT - $pnBoxW+1.8; // bündig am rechten Rand
|
||||||
|
$pnBoxY = $startY+21.5; // gleiche Oberkante wie Kopf
|
||||||
|
|
||||||
|
// 2) Sichtbaren Rahmen zeichnen (einmalig)
|
||||||
|
$pdf->SetLineWidth(0.3);
|
||||||
|
$pdf->Rect($pnBoxX, $pnBoxY, $pnBoxW, $pnBoxH, 'D');
|
||||||
|
|
||||||
|
// 3) Clipping aktivieren, damit Inhalt in der Box bleibt
|
||||||
|
$pdf->StartTransform();
|
||||||
|
$pdf->Rect($pnBoxX, $pnBoxY, $pnBoxW, $pnBoxH, 'CNZ'); // Clip auf die Box
|
||||||
|
|
||||||
|
// 4) Produktnummer: frei verschiebbar innerhalb der Box
|
||||||
|
$pnCombined = trim($productNumber . $deviceNumber);
|
||||||
|
$pnText = htmlspecialchars($pnCombined !== '' ? $pnCombined : 'N/A');
|
||||||
|
|
||||||
|
// Offsets innerhalb der Box – hier stellst du die Position ein
|
||||||
|
$pnTextOffsetX = 2.0; // mm von linker Innenkante
|
||||||
|
$pnTextOffsetY = 1; // mm von oberer Innenkante
|
||||||
|
$pnTextW = $pnBoxW - 2*$pnBoxPad; // nutzbare Breite
|
||||||
|
$pnTextH = 8.0; // feste Höhe für den PN-Textbereich (mm)
|
||||||
|
|
||||||
|
$pnHtml = '
|
||||||
|
<div style="font-size:20px; line-height:1.25; margin:0; padding:0;">
|
||||||
|
'.$pnText.'
|
||||||
|
</div>';
|
||||||
|
|
||||||
|
// PN-Text rendern (ohne HTML-Border!)
|
||||||
|
$pdf->writeHTMLCell(
|
||||||
|
$pnTextW, // Breite Textbereich
|
||||||
|
$pnTextH, // Höhe Textbereich
|
||||||
|
$pnBoxX + $pnBoxPad + $pnTextOffsetX, // X in der Box
|
||||||
|
$pnBoxY + $pnBoxPad + $pnTextOffsetY, // Y in der Box
|
||||||
|
$pnHtml,
|
||||||
|
0, 0, false, true, 'L', true
|
||||||
|
);
|
||||||
|
|
||||||
|
// 5) QR-Code: frei verschiebbar innerhalb der Box, verzerrungsfrei per size
|
||||||
|
$qrData = trim((string)($productNumber . $deviceNumber));
|
||||||
|
if ($qrData === '') {
|
||||||
|
$qrData = 'N/A';
|
||||||
|
}
|
||||||
|
|
||||||
|
$qrSize = 16.0; // mm – Kantenlänge des QR
|
||||||
|
$qrOffsetX = $pnBoxW - $pnBoxPad - $qrSize - 2.0; // mm von linker Innenkante
|
||||||
|
$qrOffsetY = $pnBoxH - $pnBoxPad - $qrSize +0.6; // mm von oberer Innenkante
|
||||||
|
|
||||||
|
$qrX = $pnBoxX + $qrOffsetX;
|
||||||
|
$qrY = $pnBoxY + $qrOffsetY;
|
||||||
|
|
||||||
|
$qrStyle = [
|
||||||
|
'border' => 0,
|
||||||
|
'vpadding' => 0,
|
||||||
|
'hpadding' => 0,
|
||||||
|
'fgcolor' => [0,0,0],
|
||||||
|
'bgcolor' => false,
|
||||||
|
];
|
||||||
|
|
||||||
|
// QR rendern (Warnings/Deprecated für diesen Block stumm schalten)
|
||||||
|
$_old_reporting = error_reporting();
|
||||||
|
error_reporting($_old_reporting & ~(E_WARNING | E_DEPRECATED | E_NOTICE));
|
||||||
|
$pdf->write2DBarcode($qrData, 'QRCODE,H', $qrX, $qrY, $qrSize, $qrSize, $qrStyle, 'N');
|
||||||
|
error_reporting($_old_reporting);
|
||||||
|
|
||||||
|
// 6) Clipping beenden
|
||||||
|
$pdf->StopTransform();
|
||||||
|
|
||||||
|
// 7) Optional: Cursor unter die PN-Box setzen, falls du im Fluss weiter willst
|
||||||
|
$pdf->SetXY($pnBoxX, $pnBoxY + $pnBoxH);
|
||||||
|
|
||||||
|
/** Bundle */
|
||||||
|
|
||||||
|
$bundleHeader = '<div style=" background-color: black; color: white; font-size:10px; font-weight:700;line-height:1.4; margin:4px 0 3px 0;"> Bundleinhalt</div>';
|
||||||
|
$pdf->writeHTMLCell(70, 50, 7.65, 46, $bundleHeader, 0, 0, 0, true, 'L', true);
|
||||||
|
$bundleHeaderFillable = '<div style="border: 1px solid black; line-heigt:0.6"></div>';
|
||||||
|
//$pdf->writeHTMLCell(130.8, 39.8, 74.5, 46, $bundleHeaderFillable, 0, 0, 0, false, 'L', true);
|
||||||
|
drawFixedBox($pdf, 76.0, 47.7, 127.8, 4.65);
|
||||||
|
|
||||||
|
|
||||||
|
$bundleRows = '';
|
||||||
|
|
||||||
|
$BASE_FONT_PX = 10.0; // Level 1
|
||||||
|
$FONT_STEP_PX = 1.5; // je Ebene kleiner
|
||||||
|
$MIN_FONT_PX = 6.0;
|
||||||
|
$LINE_HEIGHT_BASE = 1.15; // Basis Zeilenhöhe
|
||||||
|
$LINE_HEIGHT_STEP = 0.05; // je Ebene etwas kompakter
|
||||||
|
$ROW_PAD_V_MM = 0.5; // vertikales Padding je Zeile
|
||||||
|
$ROW_PAD_H_MM = 0.8; // horizontales Padding
|
||||||
|
$WEIGHT_PAD_RIGHT_MM = 1.6; // mehr Abstand zum rechten Rand
|
||||||
|
$INDENT_MM_PER_LVL = 2.8; // Einrückung je Ebene in mm (stabil!)
|
||||||
|
|
||||||
|
foreach ($bundle as $item) {
|
||||||
|
$qty = (int)($item['qty'] ?? 1);
|
||||||
|
$text = htmlspecialchars($item['text'] ?? '');
|
||||||
|
$lvl = max($LEVEL_MIN, min($LEVEL_MAX, (int)($item['level'] ?? 1)));
|
||||||
|
$wkg = isset($item['weight_kg']) ? (float)$item['weight_kg'] : null;
|
||||||
|
|
||||||
|
$textFontPx = max($MIN_FONT_PX, $BASE_FONT_PX - ($lvl - 1) * $FONT_STEP_PX);
|
||||||
|
$weightFontPx = max($MIN_FONT_PX, $BASE_FONT_PX - ($lvl - 1) * $FONT_STEP_PX);
|
||||||
|
$lineHeight = max(1.0, $LINE_HEIGHT_BASE - ($lvl - 1) * $LINE_HEIGHT_STEP);
|
||||||
|
|
||||||
|
// Einrückung robust über mm – aber nur Tabelle nutzen, wenn > 0 mm
|
||||||
|
$indentMm = max(0, ($lvl - 1) * $INDENT_MM_PER_LVL);
|
||||||
|
|
||||||
|
// Name-Spalte: ohne Spacer-Tabelle bei Level 1 (indent=0), sonst mit
|
||||||
|
if ($indentMm > 0) {
|
||||||
|
$nameCellHtml = '
|
||||||
|
<table cellspacing="0" cellpadding="0" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td style="width:'.$indentMm.'mm; padding:0; margin:0;"></td>
|
||||||
|
<td style="font-size:'.$textFontPx.'px; line-height:'.$lineHeight.'; padding:0; margin:0;">'.$text.'</td>
|
||||||
|
</tr>
|
||||||
|
</table>';
|
||||||
|
} else {
|
||||||
|
// Level 1: direkt rendern
|
||||||
|
$nameCellHtml = '<span style="font-size:'.$textFontPx.'px; line-height:'.$lineHeight.';">'.$text.'</span>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$bundleRows .= '
|
||||||
|
<tr>
|
||||||
|
<!-- Anzahl -->
|
||||||
|
<td style="
|
||||||
|
width:12%;
|
||||||
|
text-align:right;
|
||||||
|
vertical-align:middle;
|
||||||
|
font-size:'.$textFontPx.'px;
|
||||||
|
line-height:'.$lineHeight.';
|
||||||
|
padding:'.$ROW_PAD_V_MM.'mm '.$ROW_PAD_H_MM.'mm '.$ROW_PAD_V_MM.'mm '.$ROW_PAD_H_MM.'mm;">
|
||||||
|
'.$qty.'
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<!-- Name mit Einrückung -->
|
||||||
|
<td style="
|
||||||
|
width:68%;
|
||||||
|
vertical-align:middle;
|
||||||
|
padding:'.$ROW_PAD_V_MM.'mm '.$ROW_PAD_H_MM.'mm;">
|
||||||
|
'.$nameCellHtml.'
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<!-- Gewicht rechts mit extra Innenabstand -->
|
||||||
|
<td style="
|
||||||
|
width:20%;
|
||||||
|
text-align:right;
|
||||||
|
vertical-align:middle;
|
||||||
|
font-size:'.$weightFontPx.'px;
|
||||||
|
line-height:'.$lineHeight.';
|
||||||
|
padding:'.$ROW_PAD_V_MM.'mm '.$WEIGHT_PAD_RIGHT_MM.'mm '.$ROW_PAD_V_MM.'mm '.$ROW_PAD_H_MM.'mm;">
|
||||||
|
'.($wkg !== null ? fnum($wkg).' kg' : '').'
|
||||||
|
</td>
|
||||||
|
</tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$bundleHtml = '
|
||||||
|
<table cellspacing="0" cellpadding="0" style="border:1px solid #000; border-collapse:collapse;" width="100%">
|
||||||
|
<tbody>'.$bundleRows.'</tbody>
|
||||||
|
</table>';
|
||||||
|
|
||||||
|
$pdf->writeHTMLCell(
|
||||||
|
$pdf->getPageWidth() - 12.4,
|
||||||
|
0,
|
||||||
|
7.8,
|
||||||
|
50.8,
|
||||||
|
$bundleHtml,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
true,
|
||||||
|
'L',
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/** ---------- Meta-Block dynamisch unterhalb der Bundle-Tabelle ---------- */
|
||||||
|
|
||||||
|
// Höhe der zuletzt gerenderten Bundle-Tabelle holen
|
||||||
|
$bundleH = $pdf->getLastH();
|
||||||
|
|
||||||
|
// Y-Position direkt nach der Bundle-Tabelle (mit 3 mm Abstand)
|
||||||
|
$metaY = 47.6 + $bundleH; // 50 = dein bisheriges Y der Bundle-Tabelle
|
||||||
|
$metaX = $MARGIN_LEFT;
|
||||||
|
$metaW = $pdf->getPageWidth() - $MARGIN_LEFT - $MARGIN_RIGHT;
|
||||||
|
|
||||||
|
// Falls Meta-Block zu nah am Seitenende wäre → neue Seite
|
||||||
|
$usableBottom = $pdf->getPageHeight() - $MARGIN_BOTTOM;
|
||||||
|
if ($metaY > $usableBottom - 40) { // 40 mm Puffer für Meta
|
||||||
|
$pdf->AddPage();
|
||||||
|
$metaY = $MARGIN_TOP;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- Inhalt wie gehabt ---
|
||||||
|
$leftMeta = '
|
||||||
|
<table cellspacing="0" cellpadding="'.$CELL_PAD.'" width="100%">
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
<!-- Maße -->
|
||||||
|
<tr>
|
||||||
|
<!-- Zusammengefasste linke Zelle: hat Rahmen, innen KEIN Rahmen -->
|
||||||
|
<td width="58%" border="1" style="padding-left:20px;">
|
||||||
|
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td width="64%">Maße <small>L x B x H</small></td>
|
||||||
|
<td width="36%">in cm</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<!-- rechte Zelle mit Wert -->
|
||||||
|
<td width="42%" border="1"><b> '.htmlspecialchars($dimsBHT).'</b></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-- Gewicht -->
|
||||||
|
<tr>
|
||||||
|
<td width="58%" border="1" style="padding-left:20px;">
|
||||||
|
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td width="64%">Gewicht</td>
|
||||||
|
<td width="36%">in Kg</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td width="42%" border="1"><b> '.fnum($bruttoWeightSum).' Kg</b></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-- Volumen -->
|
||||||
|
<tr>
|
||||||
|
<td width="58%" border="1" style="padding-left:20px;">
|
||||||
|
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td width="64%">Volumen</td>
|
||||||
|
<td width="36%">in m³</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td width="42%" border="1"><b> '.fnum($volume, 2).' m³</b></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-- Lagerplatz mit innerer Tabelle (optisch perfekt ausgerichtet) -->
|
||||||
|
<tr>
|
||||||
|
<td width="30%" border="1" style="padding-left:20px;">
|
||||||
|
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td width="100%">Lagerplatz</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td width="70%" border="1"><b> '.htmlspecialchars($storageLoc).'</b></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>';
|
||||||
|
|
||||||
|
// ---- Koordinaten der Meta-Zeile bestimmen (nimm deine Werte) ----
|
||||||
|
// Falls du sie schon berechnet hast, nutze deine $metaX, $metaY, $metaW.
|
||||||
|
// Beispiel, wie du sie meist setzt:
|
||||||
|
$metaX = $MARGIN_LEFT;
|
||||||
|
$metaW = $pdf->getPageWidth() - $MARGIN_LEFT - $MARGIN_RIGHT;
|
||||||
|
// $metaY hast du zuvor als Ziel-Y für den Meta-Block berechnet:
|
||||||
|
/// $metaY = ... (z.B. 50 + $bundleH + 3);
|
||||||
|
|
||||||
|
// ---- Spaltenbreiten wie in deinem metaWrap: 62% | 2% | 36% ----
|
||||||
|
$leftW = $metaW * 0.62;
|
||||||
|
$gapW = $metaW * 0.02;
|
||||||
|
$rightW = $metaW * 0.36;
|
||||||
|
|
||||||
|
// Obere linke Ecke der rechten Spalte:
|
||||||
|
$rightX = $metaX + $leftW + $gapW;
|
||||||
|
$rightY = $metaY;
|
||||||
|
|
||||||
|
// ---- Fester Rahmen in der rechten Spalte ----
|
||||||
|
$frameOuterPad = 1.0; // mm: Abstand vom Spaltenrand
|
||||||
|
$frameW = $rightW - 2*$frameOuterPad+8; // Rahmenbreite
|
||||||
|
$frameH = 24.38; // mm: feste Rahmenhöhe, nach Wunsch
|
||||||
|
$frameX = $rightX + $frameOuterPad-5.2;
|
||||||
|
$frameY = $rightY + $frameOuterPad+0.5;
|
||||||
|
|
||||||
|
$pdf->SetLineWidth(0.3);
|
||||||
|
$pdf->Rect($frameX, $frameY, $frameW, $frameH, 'D'); // der feste Rahmen
|
||||||
|
|
||||||
|
// ---- Base64-Bild zentriert & verzerrungsfrei in den Rahmen ----
|
||||||
|
$tmpImg = tempnam(sys_get_temp_dir(), 'epi_') . '.png';
|
||||||
|
file_put_contents($tmpImg, base64_decode($productImage));
|
||||||
|
|
||||||
|
list($imgWpx, $imgHpx) = getimagesize($tmpImg);
|
||||||
|
$imgRatio = ($imgHpx > 0) ? ($imgWpx / $imgHpx) : 1.0;
|
||||||
|
|
||||||
|
$innerPad = 2.0; // mm: Innenabstand im Rahmen
|
||||||
|
$maxW = $frameW - 2*$innerPad;
|
||||||
|
$maxH = $frameH - 2*$innerPad;
|
||||||
|
|
||||||
|
// proportional einpassen
|
||||||
|
if ($maxW / $maxH > $imgRatio) {
|
||||||
|
$drawH = $maxH;
|
||||||
|
$drawW = $maxH * $imgRatio;
|
||||||
|
} else {
|
||||||
|
$drawW = $maxW;
|
||||||
|
$drawH = $maxW / $imgRatio;
|
||||||
|
}
|
||||||
|
|
||||||
|
// zentrieren
|
||||||
|
$imgX = $frameX + ($frameW - $drawW) / 2;
|
||||||
|
$imgY = $frameY + ($frameH - $drawH) / 2;
|
||||||
|
|
||||||
|
$pdf->Image($tmpImg, $imgX, $imgY, $drawW, $drawH, '', '', '', false, 300);
|
||||||
|
@unlink($tmpImg);
|
||||||
|
|
||||||
|
$metaWrap = '
|
||||||
|
<table cellspacing="0" cellpadding="0" border="0" width="100%" style="margin-top:2px;">
|
||||||
|
<tr>
|
||||||
|
<td width="62%">'.$leftMeta.'</td>
|
||||||
|
<td width="2%"></td>
|
||||||
|
<td width="36%">'.$rightMeta.'</td>
|
||||||
|
</tr>
|
||||||
|
</table>';
|
||||||
|
|
||||||
|
// Meta-Block exakt an berechneter Position ausgeben
|
||||||
|
$pdf->writeHTMLCell($metaW, 0, $metaX, $metaY, $metaWrap, 0, 0, 0, true, 'L', true);
|
||||||
|
/** Output */
|
||||||
|
// Falls trotz allem vorher etwas ausgegeben wurde (Warnings), Buffer leeren:
|
||||||
|
if (ob_get_length()) { ob_end_clean(); }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Äußerer Rahmen, Größenberechnung
|
||||||
|
|
||||||
|
// 1) Höhe der META-Zelle (zuletzt geschrieben) holen:
|
||||||
|
$metaH = $pdf->getLastH();
|
||||||
|
|
||||||
|
// 2) Y der Bundle-Tabelle kennst du (50.8 in deinem Code) + deren Höhe:
|
||||||
|
$bundleY = 50.8; // dein fixer Y für die Bundle-Tabelle
|
||||||
|
// $bundleH hast du bereits oben: $bundleH = $pdf->getLastH();
|
||||||
|
|
||||||
|
// 3) Bottom-Kanten aller Boxen berechnen:
|
||||||
|
$bottoms = [
|
||||||
|
$frameY + $frameH, // Logo-Box
|
||||||
|
$addrY + $addrBoxH, // Adress-Box
|
||||||
|
$prodY + $prodH, // Produktion-Box
|
||||||
|
$nameY + $nameBoxH, // Name-Box
|
||||||
|
$pnBoxY + $pnBoxH, // PN/QR-Box
|
||||||
|
$bundleY + $bundleH, // Bundle-Tabelle
|
||||||
|
$metaY + $metaH, // Meta-Block (linke Tabelle + rechter Bildrahmen)
|
||||||
|
];
|
||||||
|
|
||||||
|
// 4) Start-Y des Contentbereichs: oben an deinem Kopf beginnen
|
||||||
|
$outerY = min($frameY, $addrY, $prodY, $nameY, $pnBoxY, 46.0 /*Bundle-Header-Y*/, $metaY);
|
||||||
|
|
||||||
|
// 5) Untere Kante ist die größte Bottom-Kante:
|
||||||
|
$outerBottom = max($bottoms);
|
||||||
|
|
||||||
|
// 6) Außenrahmen-Geometrie:
|
||||||
|
$outerX = $MARGIN_LEFT+1.2;
|
||||||
|
$outerW = $pdf->getPageWidth() - $MARGIN_LEFT - $MARGIN_RIGHT+1;
|
||||||
|
$outerH = max(2, $outerBottom - $outerY)-1.2; // Mindeshöhe absichern
|
||||||
|
|
||||||
|
// 7) Dicke Linie zeichnen (z.B. 1.2 mm)
|
||||||
|
drawFixedBox($pdf, $outerX, $outerY, $outerW, $outerH, 1, '', 0, false);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$filename = 'Kistenetikett_'.preg_replace('/\s+/', '_', trim($productName)).'_'.$productNumber.$deviceNumber.'_'.date('Ymd_His').'.pdf';
|
||||||
|
$pdf->Output($filename, 'I');
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Zeichnet eine flexible, leere oder beschriftete Box mit TCPDF.
|
||||||
|
*
|
||||||
|
* @param TCPDF $pdf Referenz auf dein TCPDF-Objekt
|
||||||
|
* @param float $x Linke obere Ecke (mm)
|
||||||
|
* @param float $y Obere Position (mm)
|
||||||
|
* @param float $w Breite (mm)
|
||||||
|
* @param float $h Höhe (mm)
|
||||||
|
* @param float $border Linienstärke in mm (z. B. 0.3)
|
||||||
|
* @param string $text (Optional) Inhalt oder Beschriftung
|
||||||
|
* @param float $pad Innenabstand in mm
|
||||||
|
* @param bool $fill true = grau hinterlegt, false = leer
|
||||||
|
* @param string|null $style (Optional) Linienstil – 'solid', 'dashed', 'dotted'
|
||||||
|
*/
|
||||||
|
function drawFixedBox(
|
||||||
|
TCPDF $pdf,
|
||||||
|
float $x,
|
||||||
|
float $y,
|
||||||
|
float $w,
|
||||||
|
float $h,
|
||||||
|
float $border = 0.3,
|
||||||
|
string $text = '',
|
||||||
|
float $pad = 1.5,
|
||||||
|
bool $fill = false,
|
||||||
|
?string $style = 'solid'
|
||||||
|
): void {
|
||||||
|
// Farbe für Füllung (hellgrau, wenn aktiviert)
|
||||||
|
$fillColor = [240, 240, 240];
|
||||||
|
|
||||||
|
// Linienstil (falls angegeben)
|
||||||
|
switch ($style) {
|
||||||
|
case 'dashed':
|
||||||
|
$pdf->SetLineStyle(['width' => $border, 'dash' => '3,2']);
|
||||||
|
break;
|
||||||
|
case 'dotted':
|
||||||
|
$pdf->SetLineStyle(['width' => $border, 'dash' => '1,2']);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$pdf->SetLineWidth($border);
|
||||||
|
$pdf->SetLineStyle(['width' => $border]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1) Rahmen (und ggf. Füllung)
|
||||||
|
if ($fill) {
|
||||||
|
$pdf->SetFillColorArray($fillColor);
|
||||||
|
$pdf->Rect($x, $y, $w, $h, 'DF'); // Draw + Fill
|
||||||
|
} else {
|
||||||
|
$pdf->Rect($x, $y, $w, $h, 'D'); // nur Rahmen
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2) Optionaler Textinhalt – sauber eingepasst
|
||||||
|
if (trim($text) !== '') {
|
||||||
|
$pdf->StartTransform();
|
||||||
|
$pdf->Rect($x, $y, $w, $h, 'CNZ'); // Clip auf Box setzen
|
||||||
|
|
||||||
|
$pdf->writeHTMLCell(
|
||||||
|
$w - 2*$pad, $h - 2*$pad,
|
||||||
|
$x + $pad, $y + $pad,
|
||||||
|
'<div style="font-size:9px; line-height:1.2;">'.htmlspecialchars($text).'</div>',
|
||||||
|
0, 0, false, true, 'L', true
|
||||||
|
);
|
||||||
|
|
||||||
|
$pdf->StopTransform();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Linienstil zurücksetzen
|
||||||
|
$pdf->SetLineStyle(['width' => 0.3, 'dash' => 0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Produkt-Details mit Cache holen (vermeidet doppelte API-Calls).
|
||||||
|
*
|
||||||
|
* @param Epirent $Epi
|
||||||
|
* @param int|string $productPk
|
||||||
|
* @param array $cache Referenz-Array für Produkt-Cache
|
||||||
|
* @return object|null
|
||||||
|
*/
|
||||||
|
function fetchProductDetailCached($Epi, $productPk, array &$cache) {
|
||||||
|
$key = (string)$productPk;
|
||||||
|
if (isset($cache[$key])) {
|
||||||
|
return $cache[$key];
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
$res = $Epi->requestEpiApi('/v1/product/' . $key . '?cl=' . Epirent_Mandant);
|
||||||
|
$payload = json_decode($res, false);
|
||||||
|
$prod = $payload->payload[0] ?? null;
|
||||||
|
if ($prod) {
|
||||||
|
$cache[$key] = $prod;
|
||||||
|
return $prod;
|
||||||
|
}
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
// optional: loggen
|
||||||
|
}
|
||||||
|
$cache[$key] = null;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Rekursive Hilfsfunktion: fügt Materialien (und deren Submaterialien) zu $bundle hinzu
|
||||||
|
* und summiert alle Bruttogewichte in $bruttoWeightSum.
|
||||||
|
*
|
||||||
|
* @param Epirent $Epi
|
||||||
|
* @param array $materials Materialliste (vom Produkt)
|
||||||
|
* @param int $level aktuelle Ebene (1..MAX_BUNDLE_LEVEL)
|
||||||
|
* @param array &$bundle Ergebnisliste (wird befüllt)
|
||||||
|
* @param array &$cache Produkt-Cache
|
||||||
|
* @param array &$seenStack Schutz gegen Zyklen (Stack von Produkt-Keys)
|
||||||
|
* @param float $qtyMultiplier Multiplikator für Mengen aus übergeordneten Ebenen
|
||||||
|
* @param float &$bruttoWeightSum Summiert alle weight_gro-Werte × Menge
|
||||||
|
*/
|
||||||
|
function addMaterialsRecursive($Epi, array $materials, int $level, array &$bundle, array &$cache, array &$seenStack, float $qtyMultiplier = 1.0): void
|
||||||
|
{
|
||||||
|
global $bruttoWeightSum;
|
||||||
|
|
||||||
|
$MAX_BUNDLE_LEVEL = 5;
|
||||||
|
if ($level > $MAX_BUNDLE_LEVEL || empty($materials)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($materials as $mat) {
|
||||||
|
$isFree = !empty($mat->is_free_material);
|
||||||
|
$amount = isset($mat->amount) ? (float)$mat->amount : 1.0;
|
||||||
|
$effQty = $amount * $qtyMultiplier;
|
||||||
|
|
||||||
|
// 🟢 1. FREIES MATERIAL → nur Name + Menge, kein weiterer Drilldown
|
||||||
|
if ($isFree) {
|
||||||
|
$name = isset($mat->name) ? (string)$mat->name : '(Unbenanntes freies Material)';
|
||||||
|
$bundle[] = [
|
||||||
|
'qty' => $effQty,
|
||||||
|
'text' => $name,
|
||||||
|
'level' => $level,
|
||||||
|
'weight_kg' => null,
|
||||||
|
];
|
||||||
|
continue; // ⬅️ ganz wichtig: hier abbrechen
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🟡 2. "Normales" Produkt-Material
|
||||||
|
$childPk = $mat->mat_product_pk ?? null;
|
||||||
|
if (!$childPk) {
|
||||||
|
$bundle[] = [
|
||||||
|
'qty' => $effQty,
|
||||||
|
'text' => '(Unbekanntes Material)',
|
||||||
|
'level' => $level,
|
||||||
|
'weight_kg' => null,
|
||||||
|
];
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Zyklen-Schutz
|
||||||
|
$childKey = (string)$childPk;
|
||||||
|
if (in_array($childKey, $seenStack, true)) {
|
||||||
|
$bundle[] = [
|
||||||
|
'qty' => $effQty,
|
||||||
|
'text' => '[Zyklus erkannt bei Produkt ' . $childKey . ']',
|
||||||
|
'level' => $level,
|
||||||
|
'weight_kg' => null,
|
||||||
|
];
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Produktdetail abrufen (Cache-basiert)
|
||||||
|
$child = fetchProductDetailCached($Epi, $childPk, $cache);
|
||||||
|
|
||||||
|
// Basisinfos
|
||||||
|
$childName = $child->name ?? ('Produkt ' . $childKey);
|
||||||
|
$childWeightNet = $child->tech_data->weight_net ?? null;
|
||||||
|
$childWeightGross = $child->tech_data->weight_gro ?? null;
|
||||||
|
$childNumber = $child->product_no ?? null;
|
||||||
|
|
||||||
|
// 🧮 Bruttogewicht zur globalen Summe addieren
|
||||||
|
if (!empty($childWeightGross)) {
|
||||||
|
$bruttoWeightSum += $effQty * (float)$childWeightGross;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 📦 Anzeige: Artikelnummer in Klammern voranstellen
|
||||||
|
$displayName = $childNumber ? '(' . $childNumber . ') ' . $childName : $childName;
|
||||||
|
|
||||||
|
$bundle[] = [
|
||||||
|
'qty' => $effQty,
|
||||||
|
'text' => (string)$displayName,
|
||||||
|
'level' => $level,
|
||||||
|
'weight_kg' => $childWeightNet ? (float)$childWeightNet : null,
|
||||||
|
];
|
||||||
|
|
||||||
|
// 🔁 Rekursion für Sub-Materialien
|
||||||
|
if ($child && !empty($child->materials) && $level < $MAX_BUNDLE_LEVEL) {
|
||||||
|
$seenStack[] = $childKey;
|
||||||
|
addMaterialsRecursive($Epi, (array)$child->materials, $level + 1, $bundle, $cache, $seenStack, $effQty);
|
||||||
|
array_pop($seenStack);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Einstieg: Baut das Bundle eines Produkts bis Tiefe MAX_BUNDLE_LEVEL
|
||||||
|
* und liefert zusätzlich die Bruttogewichtsumme zurück.
|
||||||
|
*
|
||||||
|
* @param Epirent $Epi
|
||||||
|
* @param object $product
|
||||||
|
* @param float &$bruttoWeightSum Rückgabe der aufsummierten weight_gro
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
function buildBundleForProduct($Epi, $product, float &$bruttoWeightSum = 0.0): array
|
||||||
|
{
|
||||||
|
$bundle = [];
|
||||||
|
$cache = [];
|
||||||
|
$seen = [];
|
||||||
|
$materials = isset($product->materials) ? (array)$product->materials : [];
|
||||||
|
|
||||||
|
addMaterialsRecursive($Epi, $materials, 1, $bundle, $cache, $seen, 1.0, $bruttoWeightSum);
|
||||||
|
return $bundle;
|
||||||
|
}
|
||||||
@@ -8,9 +8,29 @@
|
|||||||
Dashboard
|
Dashboard
|
||||||
</a>
|
</a>
|
||||||
<a class="nav-link" href=orders.php>
|
<a class="nav-link" href=orders.php>
|
||||||
<div class="sb-nav-link-icon"><i class="fas fa-tachometer-alt"></i></div>
|
<div class="sb-nav-link-icon"><i class="fas fa-money-bill-wave"></i></div>
|
||||||
Aufträge
|
Aufträge
|
||||||
</a>
|
</a>
|
||||||
|
<a class="nav-link" href=insurance.php>
|
||||||
|
<div class="sb-nav-link-icon"><i class="fas fa-car-burst"></i></div>
|
||||||
|
Versicherung
|
||||||
|
</a>
|
||||||
|
<a class="nav-link" href=labelprint.php>
|
||||||
|
<div class="sb-nav-link-icon"><i class="fas fa-tags"></i></div>
|
||||||
|
Labelprint
|
||||||
|
</a>
|
||||||
|
<a class="nav-link" href=imagecheck.php>
|
||||||
|
<div class="sb-nav-link-icon"><i class="fas fa-image"></i></div>
|
||||||
|
Imagecheck
|
||||||
|
</a>
|
||||||
|
<a class="nav-link" href=groupofgoodscheck.php>
|
||||||
|
<div class="sb-nav-link-icon"><i class="fas fa-layer-group"></i></div>
|
||||||
|
Warengruppencheck
|
||||||
|
</a>
|
||||||
|
<a class="nav-link" href=ROI.php>
|
||||||
|
<div class="sb-nav-link-icon"><i class="fas fa-comment-dollar"></i></div>
|
||||||
|
Return-Of-Invest
|
||||||
|
</a>
|
||||||
|
|
||||||
<div class="sb-sidenav-menu-heading">Addons</div>
|
<div class="sb-sidenav-menu-heading">Addons</div>
|
||||||
<a class="nav-link" target="_blank" href="../Packmonitor.php">
|
<a class="nav-link" target="_blank" href="../Packmonitor.php">
|
||||||
@@ -25,6 +45,8 @@
|
|||||||
<div class="sb-nav-link-icon"><i class="fas fa-list"></i></div>
|
<div class="sb-nav-link-icon"><i class="fas fa-list"></i></div>
|
||||||
Pack- & Aufgabenmonitor
|
Pack- & Aufgabenmonitor
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
|
||||||
<div class="sb-sidenav-menu-heading">Config</div>
|
<div class="sb-sidenav-menu-heading">Config</div>
|
||||||
<a class="nav-link" href=editconfig.php>
|
<a class="nav-link" href=editconfig.php>
|
||||||
<div class="sb-nav-link-icon"><i class="fas fa-tachometer-alt"></i></div>
|
<div class="sb-nav-link-icon"><i class="fas fa-tachometer-alt"></i></div>
|
||||||
|
|||||||
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-Black.ttf
Normal file
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-Black.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-BlackOblique.ttf
Normal file
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-BlackOblique.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-Bold.ttf
Normal file
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-Bold.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-BoldOblique.ttf
Normal file
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-BoldOblique.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-Hairline.ttf
Normal file
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-Hairline.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-HairlineOblique.ttf
Normal file
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-HairlineOblique.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-Light.ttf
Normal file
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-Light.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-LightOblique.ttf
Normal file
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-LightOblique.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-Regular.ttf
Normal file
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-Regular.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-RegularOblique.ttf
Normal file
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-RegularOblique.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-SemiBold.ttf
Normal file
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-SemiBold.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-SemiBoldOblique.ttf
Normal file
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-SemiBoldOblique.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-Thin.ttf
Normal file
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-Thin.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-ThinOblique.ttf
Normal file
BIN
src/assets/font/Hurme1/HurmeGeometricSans1-ThinOblique.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-Black.ttf
Normal file
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-Black.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-BlackOblique.ttf
Normal file
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-BlackOblique.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-Bold.ttf
Normal file
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-Bold.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-BoldOblique.ttf
Normal file
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-BoldOblique.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-Hairline.ttf
Normal file
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-Hairline.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-HairlineOblique.ttf
Normal file
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-HairlineOblique.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-Light.ttf
Normal file
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-Light.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-LightOblique.ttf
Normal file
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-LightOblique.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-Regular.ttf
Normal file
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-Regular.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-RegularOblique.ttf
Normal file
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-RegularOblique.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-SemiBold.ttf
Normal file
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-SemiBold.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-SemiBoldOblique.ttf
Normal file
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-SemiBoldOblique.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-Thin.ttf
Normal file
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-Thin.ttf
Normal file
Binary file not shown.
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-ThinOblique.ttf
Normal file
BIN
src/assets/font/Hurme3/HurmeGeometricSans3-ThinOblique.ttf
Normal file
Binary file not shown.
BIN
src/assets/img/logo.png
Normal file
BIN
src/assets/img/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
18
vendor/autoload.php
vendored
18
vendor/autoload.php
vendored
@@ -2,6 +2,24 @@
|
|||||||
|
|
||||||
// autoload.php @generated by Composer
|
// autoload.php @generated by Composer
|
||||||
|
|
||||||
|
if (PHP_VERSION_ID < 50600) {
|
||||||
|
if (!headers_sent()) {
|
||||||
|
header('HTTP/1.1 500 Internal Server Error');
|
||||||
|
}
|
||||||
|
$err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
|
||||||
|
if (!ini_get('display_errors')) {
|
||||||
|
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
||||||
|
fwrite(STDERR, $err);
|
||||||
|
} elseif (!headers_sent()) {
|
||||||
|
echo $err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
trigger_error(
|
||||||
|
$err,
|
||||||
|
E_USER_ERROR
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
require_once __DIR__ . '/composer/autoload_real.php';
|
require_once __DIR__ . '/composer/autoload_real.php';
|
||||||
|
|
||||||
return ComposerAutoloaderInitab00f29709bdbfe3a1abd7d2d66d569c::getLoader();
|
return ComposerAutoloaderInitab00f29709bdbfe3a1abd7d2d66d569c::getLoader();
|
||||||
|
|||||||
851
vendor/chillerlan/php-qrcode/.idea/codeStyles/Project.xml
generated
vendored
851
vendor/chillerlan/php-qrcode/.idea/codeStyles/Project.xml
generated
vendored
@@ -1,851 +0,0 @@
|
|||||||
<component name="ProjectCodeStyleConfiguration">
|
|
||||||
<code_scheme name="Project" version="173">
|
|
||||||
<option name="AUTODETECT_INDENTS" value="false" />
|
|
||||||
<option name="OTHER_INDENT_OPTIONS">
|
|
||||||
<value>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
</value>
|
|
||||||
</option>
|
|
||||||
<option name="RIGHT_MARGIN" value="130" />
|
|
||||||
<CssCodeStyleSettings>
|
|
||||||
<option name="HEX_COLOR_LOWER_CASE" value="true" />
|
|
||||||
<option name="HEX_COLOR_SHORT_FORMAT" value="true" />
|
|
||||||
<option name="KEEP_SINGLE_LINE_BLOCKS" value="true" />
|
|
||||||
<option name="SPACE_BEFORE_OPENING_BRACE" value="false" />
|
|
||||||
</CssCodeStyleSettings>
|
|
||||||
<DB2CodeStyleSettings version="6">
|
|
||||||
<option name="USE_GENERAL_STYLE" value="false" />
|
|
||||||
<option name="TYPE_CASE" value="3" />
|
|
||||||
<option name="CUSTOM_TYPE_CASE" value="3" />
|
|
||||||
<option name="ALIAS_CASE" value="4" />
|
|
||||||
<option name="BUILT_IN_CASE" value="0" />
|
|
||||||
<option name="QUERY_TRUE_INDENT" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_ELEMENTS" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_LINE_COMMENTS" value="false" />
|
|
||||||
<option name="INSERT_EL_COMMA" value="2" />
|
|
||||||
<option name="SET_EL_WRAP" value="0" />
|
|
||||||
<option name="SET_EL_COMMA" value="0" />
|
|
||||||
<option name="WITH_EL_WRAP" value="0" />
|
|
||||||
<option name="WITH_EL_COMMA" value="0" />
|
|
||||||
<option name="SELECT_EL_WRAP" value="3" />
|
|
||||||
<option name="SELECT_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_EL_WRAP" value="2" />
|
|
||||||
<option name="FROM_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_PLACE_ON" value="10" />
|
|
||||||
<option name="WHERE_EL_WRAP" value="3" />
|
|
||||||
<option name="WHERE_EL_BOUND" value="2" />
|
|
||||||
<option name="ORDER_EL_COMMA" value="2" />
|
|
||||||
<option name="TABLE_OPENING" value="1" />
|
|
||||||
<option name="TABLE_CONTENT" value="2" />
|
|
||||||
<option name="TABLE_CLOSING" value="3" />
|
|
||||||
<option name="TABLE_ALTER_INSTRUCTION_ALIGN" value="false" />
|
|
||||||
<option name="POST_OPT_WRAP_1" value="true" />
|
|
||||||
<option name="POST_OPT_ALIGN" value="false" />
|
|
||||||
<option name="ROUTINE_ARG_COMMA" value="2" />
|
|
||||||
<option name="ROUTINE_ARG_ALIGN_TYPES" value="true" />
|
|
||||||
<option name="IMP_DECLARE_EL_WRAP" value="1" />
|
|
||||||
<option name="IMP_IF_THEN_WRAP_THEN" value="true" />
|
|
||||||
<option name="CORTEGE_SPACE_BEFORE_L_PAREN" value="false" />
|
|
||||||
<option name="EXPR_CASE_WHEN_WRAP" value="false" />
|
|
||||||
<option name="EXPR_CASE_THEN_WRAP" value="true" />
|
|
||||||
<option name="PRIMARY_KEY_NAME_TEMPLATE" value="{table}_{columns}_pk" />
|
|
||||||
</DB2CodeStyleSettings>
|
|
||||||
<DerbyCodeStyleSettings version="6">
|
|
||||||
<option name="USE_GENERAL_STYLE" value="false" />
|
|
||||||
<option name="TYPE_CASE" value="3" />
|
|
||||||
<option name="CUSTOM_TYPE_CASE" value="3" />
|
|
||||||
<option name="ALIAS_CASE" value="4" />
|
|
||||||
<option name="BUILT_IN_CASE" value="0" />
|
|
||||||
<option name="QUERY_TRUE_INDENT" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_ELEMENTS" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_LINE_COMMENTS" value="false" />
|
|
||||||
<option name="INSERT_EL_COMMA" value="2" />
|
|
||||||
<option name="SET_EL_WRAP" value="0" />
|
|
||||||
<option name="SET_EL_COMMA" value="0" />
|
|
||||||
<option name="WITH_EL_WRAP" value="0" />
|
|
||||||
<option name="WITH_EL_COMMA" value="0" />
|
|
||||||
<option name="SELECT_EL_WRAP" value="3" />
|
|
||||||
<option name="SELECT_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_EL_WRAP" value="2" />
|
|
||||||
<option name="FROM_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_PLACE_ON" value="10" />
|
|
||||||
<option name="WHERE_EL_WRAP" value="3" />
|
|
||||||
<option name="WHERE_EL_BOUND" value="2" />
|
|
||||||
<option name="ORDER_EL_COMMA" value="2" />
|
|
||||||
<option name="TABLE_OPENING" value="1" />
|
|
||||||
<option name="TABLE_CONTENT" value="2" />
|
|
||||||
<option name="TABLE_CLOSING" value="3" />
|
|
||||||
<option name="TABLE_ALTER_INSTRUCTION_ALIGN" value="false" />
|
|
||||||
<option name="POST_OPT_WRAP_1" value="true" />
|
|
||||||
<option name="POST_OPT_ALIGN" value="false" />
|
|
||||||
<option name="ROUTINE_ARG_COMMA" value="2" />
|
|
||||||
<option name="ROUTINE_ARG_ALIGN_TYPES" value="true" />
|
|
||||||
<option name="IMP_DECLARE_EL_WRAP" value="1" />
|
|
||||||
<option name="IMP_IF_THEN_WRAP_THEN" value="true" />
|
|
||||||
<option name="CORTEGE_SPACE_BEFORE_L_PAREN" value="false" />
|
|
||||||
<option name="EXPR_CASE_WHEN_WRAP" value="false" />
|
|
||||||
<option name="EXPR_CASE_THEN_WRAP" value="true" />
|
|
||||||
<option name="PRIMARY_KEY_NAME_TEMPLATE" value="{table}_{columns}_pk" />
|
|
||||||
</DerbyCodeStyleSettings>
|
|
||||||
<H2CodeStyleSettings version="6">
|
|
||||||
<option name="USE_GENERAL_STYLE" value="false" />
|
|
||||||
<option name="TYPE_CASE" value="3" />
|
|
||||||
<option name="CUSTOM_TYPE_CASE" value="3" />
|
|
||||||
<option name="ALIAS_CASE" value="4" />
|
|
||||||
<option name="BUILT_IN_CASE" value="0" />
|
|
||||||
<option name="QUERY_TRUE_INDENT" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_ELEMENTS" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_LINE_COMMENTS" value="false" />
|
|
||||||
<option name="INSERT_EL_COMMA" value="2" />
|
|
||||||
<option name="SET_EL_WRAP" value="0" />
|
|
||||||
<option name="SET_EL_COMMA" value="0" />
|
|
||||||
<option name="WITH_EL_WRAP" value="0" />
|
|
||||||
<option name="WITH_EL_COMMA" value="0" />
|
|
||||||
<option name="SELECT_EL_WRAP" value="3" />
|
|
||||||
<option name="SELECT_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_EL_WRAP" value="2" />
|
|
||||||
<option name="FROM_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_PLACE_ON" value="10" />
|
|
||||||
<option name="WHERE_EL_WRAP" value="3" />
|
|
||||||
<option name="WHERE_EL_BOUND" value="2" />
|
|
||||||
<option name="ORDER_EL_COMMA" value="2" />
|
|
||||||
<option name="TABLE_OPENING" value="1" />
|
|
||||||
<option name="TABLE_CONTENT" value="2" />
|
|
||||||
<option name="TABLE_CLOSING" value="3" />
|
|
||||||
<option name="TABLE_ALTER_INSTRUCTION_ALIGN" value="false" />
|
|
||||||
<option name="POST_OPT_WRAP_1" value="true" />
|
|
||||||
<option name="POST_OPT_ALIGN" value="false" />
|
|
||||||
<option name="ROUTINE_ARG_COMMA" value="2" />
|
|
||||||
<option name="ROUTINE_ARG_ALIGN_TYPES" value="true" />
|
|
||||||
<option name="IMP_DECLARE_EL_WRAP" value="1" />
|
|
||||||
<option name="IMP_IF_THEN_WRAP_THEN" value="true" />
|
|
||||||
<option name="CORTEGE_SPACE_BEFORE_L_PAREN" value="false" />
|
|
||||||
<option name="EXPR_CASE_WHEN_WRAP" value="false" />
|
|
||||||
<option name="EXPR_CASE_THEN_WRAP" value="true" />
|
|
||||||
<option name="PRIMARY_KEY_NAME_TEMPLATE" value="{table}_{columns}_pk" />
|
|
||||||
</H2CodeStyleSettings>
|
|
||||||
<HSQLCodeStyleSettings version="6">
|
|
||||||
<option name="USE_GENERAL_STYLE" value="false" />
|
|
||||||
<option name="TYPE_CASE" value="3" />
|
|
||||||
<option name="CUSTOM_TYPE_CASE" value="3" />
|
|
||||||
<option name="ALIAS_CASE" value="4" />
|
|
||||||
<option name="BUILT_IN_CASE" value="0" />
|
|
||||||
<option name="QUERY_TRUE_INDENT" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_ELEMENTS" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_LINE_COMMENTS" value="false" />
|
|
||||||
<option name="INSERT_EL_COMMA" value="2" />
|
|
||||||
<option name="SET_EL_WRAP" value="0" />
|
|
||||||
<option name="SET_EL_COMMA" value="0" />
|
|
||||||
<option name="WITH_EL_WRAP" value="0" />
|
|
||||||
<option name="WITH_EL_COMMA" value="0" />
|
|
||||||
<option name="SELECT_EL_WRAP" value="3" />
|
|
||||||
<option name="SELECT_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_EL_WRAP" value="2" />
|
|
||||||
<option name="FROM_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_PLACE_ON" value="10" />
|
|
||||||
<option name="WHERE_EL_WRAP" value="3" />
|
|
||||||
<option name="WHERE_EL_BOUND" value="2" />
|
|
||||||
<option name="ORDER_EL_COMMA" value="2" />
|
|
||||||
<option name="TABLE_OPENING" value="1" />
|
|
||||||
<option name="TABLE_CONTENT" value="2" />
|
|
||||||
<option name="TABLE_CLOSING" value="3" />
|
|
||||||
<option name="TABLE_ALTER_INSTRUCTION_ALIGN" value="false" />
|
|
||||||
<option name="POST_OPT_WRAP_1" value="true" />
|
|
||||||
<option name="POST_OPT_ALIGN" value="false" />
|
|
||||||
<option name="ROUTINE_ARG_COMMA" value="2" />
|
|
||||||
<option name="ROUTINE_ARG_ALIGN_TYPES" value="true" />
|
|
||||||
<option name="IMP_DECLARE_EL_WRAP" value="1" />
|
|
||||||
<option name="IMP_IF_THEN_WRAP_THEN" value="true" />
|
|
||||||
<option name="CORTEGE_SPACE_BEFORE_L_PAREN" value="false" />
|
|
||||||
<option name="EXPR_CASE_WHEN_WRAP" value="false" />
|
|
||||||
<option name="EXPR_CASE_THEN_WRAP" value="true" />
|
|
||||||
<option name="PRIMARY_KEY_NAME_TEMPLATE" value="{table}_{columns}_pk" />
|
|
||||||
</HSQLCodeStyleSettings>
|
|
||||||
<HTMLCodeStyleSettings>
|
|
||||||
<option name="HTML_ATTRIBUTE_WRAP" value="0" />
|
|
||||||
<option name="HTML_TEXT_WRAP" value="0" />
|
|
||||||
<option name="HTML_ENFORCE_QUOTES" value="true" />
|
|
||||||
</HTMLCodeStyleSettings>
|
|
||||||
<JSCodeStyleSettings version="0">
|
|
||||||
<option name="FORCE_SEMICOLON_STYLE" value="true" />
|
|
||||||
<option name="ALIGN_OBJECT_PROPERTIES" value="2" />
|
|
||||||
<option name="ALIGN_VAR_STATEMENTS" value="1" />
|
|
||||||
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_CLASS_LBRACE" value="false" />
|
|
||||||
<option name="USE_DOUBLE_QUOTES" value="false" />
|
|
||||||
<option name="FORCE_QUOTE_STYlE" value="true" />
|
|
||||||
<option name="ENFORCE_TRAILING_COMMA" value="WhenMultiline" />
|
|
||||||
<option name="IMPORTS_WRAP" value="1" />
|
|
||||||
<option name="SPACE_BEFORE_ASYNC_ARROW_LPAREN" value="false" />
|
|
||||||
</JSCodeStyleSettings>
|
|
||||||
<MSSQLCodeStyleSettings version="6">
|
|
||||||
<option name="USE_GENERAL_STYLE" value="false" />
|
|
||||||
<option name="TYPE_CASE" value="3" />
|
|
||||||
<option name="CUSTOM_TYPE_CASE" value="3" />
|
|
||||||
<option name="ALIAS_CASE" value="4" />
|
|
||||||
<option name="BUILT_IN_CASE" value="0" />
|
|
||||||
<option name="QUERY_TRUE_INDENT" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_ELEMENTS" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_LINE_COMMENTS" value="false" />
|
|
||||||
<option name="INSERT_EL_COMMA" value="2" />
|
|
||||||
<option name="SET_EL_WRAP" value="0" />
|
|
||||||
<option name="SET_EL_COMMA" value="0" />
|
|
||||||
<option name="WITH_EL_WRAP" value="0" />
|
|
||||||
<option name="WITH_EL_COMMA" value="0" />
|
|
||||||
<option name="SELECT_EL_WRAP" value="3" />
|
|
||||||
<option name="SELECT_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_EL_WRAP" value="2" />
|
|
||||||
<option name="FROM_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_PLACE_ON" value="10" />
|
|
||||||
<option name="WHERE_EL_WRAP" value="3" />
|
|
||||||
<option name="WHERE_EL_BOUND" value="2" />
|
|
||||||
<option name="ORDER_EL_COMMA" value="2" />
|
|
||||||
<option name="TABLE_OPENING" value="1" />
|
|
||||||
<option name="TABLE_CONTENT" value="2" />
|
|
||||||
<option name="TABLE_CLOSING" value="3" />
|
|
||||||
<option name="TABLE_ALTER_INSTRUCTION_ALIGN" value="false" />
|
|
||||||
<option name="POST_OPT_WRAP_1" value="true" />
|
|
||||||
<option name="POST_OPT_ALIGN" value="false" />
|
|
||||||
<option name="ROUTINE_ARG_COMMA" value="2" />
|
|
||||||
<option name="ROUTINE_ARG_ALIGN_TYPES" value="true" />
|
|
||||||
<option name="IMP_DECLARE_EL_WRAP" value="1" />
|
|
||||||
<option name="IMP_IF_THEN_WRAP_THEN" value="true" />
|
|
||||||
<option name="CORTEGE_SPACE_BEFORE_L_PAREN" value="false" />
|
|
||||||
<option name="EXPR_CASE_WHEN_WRAP" value="false" />
|
|
||||||
<option name="EXPR_CASE_THEN_WRAP" value="true" />
|
|
||||||
<option name="PRIMARY_KEY_NAME_TEMPLATE" value="{table}_{columns}_pk" />
|
|
||||||
</MSSQLCodeStyleSettings>
|
|
||||||
<MySQLCodeStyleSettings version="6">
|
|
||||||
<option name="USE_GENERAL_STYLE" value="false" />
|
|
||||||
<option name="TYPE_CASE" value="3" />
|
|
||||||
<option name="CUSTOM_TYPE_CASE" value="3" />
|
|
||||||
<option name="ALIAS_CASE" value="4" />
|
|
||||||
<option name="BUILT_IN_CASE" value="0" />
|
|
||||||
<option name="QUERY_TRUE_INDENT" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_ELEMENTS" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_LINE_COMMENTS" value="false" />
|
|
||||||
<option name="INSERT_EL_COMMA" value="2" />
|
|
||||||
<option name="SET_EL_WRAP" value="0" />
|
|
||||||
<option name="SET_EL_COMMA" value="0" />
|
|
||||||
<option name="WITH_EL_WRAP" value="0" />
|
|
||||||
<option name="WITH_EL_COMMA" value="0" />
|
|
||||||
<option name="SELECT_EL_WRAP" value="3" />
|
|
||||||
<option name="SELECT_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_EL_WRAP" value="2" />
|
|
||||||
<option name="FROM_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_PLACE_ON" value="10" />
|
|
||||||
<option name="WHERE_EL_WRAP" value="3" />
|
|
||||||
<option name="WHERE_EL_BOUND" value="2" />
|
|
||||||
<option name="ORDER_EL_COMMA" value="2" />
|
|
||||||
<option name="TABLE_OPENING" value="1" />
|
|
||||||
<option name="TABLE_CONTENT" value="2" />
|
|
||||||
<option name="TABLE_CLOSING" value="3" />
|
|
||||||
<option name="TABLE_ALTER_INSTRUCTION_ALIGN" value="false" />
|
|
||||||
<option name="POST_OPT_WRAP_1" value="true" />
|
|
||||||
<option name="POST_OPT_ALIGN" value="false" />
|
|
||||||
<option name="ROUTINE_ARG_COMMA" value="2" />
|
|
||||||
<option name="ROUTINE_ARG_ALIGN_TYPES" value="true" />
|
|
||||||
<option name="IMP_DECLARE_EL_WRAP" value="1" />
|
|
||||||
<option name="IMP_IF_THEN_WRAP_THEN" value="true" />
|
|
||||||
<option name="CORTEGE_SPACE_BEFORE_L_PAREN" value="false" />
|
|
||||||
<option name="EXPR_CASE_WHEN_WRAP" value="false" />
|
|
||||||
<option name="EXPR_CASE_THEN_WRAP" value="true" />
|
|
||||||
<option name="PRIMARY_KEY_NAME_TEMPLATE" value="{table}_{columns}_pk" />
|
|
||||||
</MySQLCodeStyleSettings>
|
|
||||||
<OracleCodeStyleSettings version="6">
|
|
||||||
<option name="USE_GENERAL_STYLE" value="false" />
|
|
||||||
<option name="TYPE_CASE" value="3" />
|
|
||||||
<option name="CUSTOM_TYPE_CASE" value="3" />
|
|
||||||
<option name="ALIAS_CASE" value="4" />
|
|
||||||
<option name="BUILT_IN_CASE" value="0" />
|
|
||||||
<option name="QUERY_TRUE_INDENT" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_ELEMENTS" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_LINE_COMMENTS" value="false" />
|
|
||||||
<option name="INSERT_EL_COMMA" value="2" />
|
|
||||||
<option name="SET_EL_WRAP" value="0" />
|
|
||||||
<option name="SET_EL_COMMA" value="0" />
|
|
||||||
<option name="WITH_EL_WRAP" value="0" />
|
|
||||||
<option name="WITH_EL_COMMA" value="0" />
|
|
||||||
<option name="SELECT_EL_WRAP" value="3" />
|
|
||||||
<option name="SELECT_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_EL_WRAP" value="2" />
|
|
||||||
<option name="FROM_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_PLACE_ON" value="10" />
|
|
||||||
<option name="WHERE_EL_WRAP" value="3" />
|
|
||||||
<option name="WHERE_EL_BOUND" value="2" />
|
|
||||||
<option name="ORDER_EL_COMMA" value="2" />
|
|
||||||
<option name="TABLE_OPENING" value="1" />
|
|
||||||
<option name="TABLE_CONTENT" value="2" />
|
|
||||||
<option name="TABLE_CLOSING" value="3" />
|
|
||||||
<option name="TABLE_ALTER_INSTRUCTION_ALIGN" value="false" />
|
|
||||||
<option name="POST_OPT_WRAP_1" value="true" />
|
|
||||||
<option name="POST_OPT_ALIGN" value="false" />
|
|
||||||
<option name="ROUTINE_ARG_COMMA" value="2" />
|
|
||||||
<option name="ROUTINE_ARG_ALIGN_TYPES" value="true" />
|
|
||||||
<option name="IMP_DECLARE_EL_WRAP" value="1" />
|
|
||||||
<option name="IMP_IF_THEN_WRAP_THEN" value="true" />
|
|
||||||
<option name="CORTEGE_SPACE_BEFORE_L_PAREN" value="false" />
|
|
||||||
<option name="EXPR_CASE_WHEN_WRAP" value="false" />
|
|
||||||
<option name="EXPR_CASE_THEN_WRAP" value="true" />
|
|
||||||
<option name="PRIMARY_KEY_NAME_TEMPLATE" value="{table}_{columns}_pk" />
|
|
||||||
</OracleCodeStyleSettings>
|
|
||||||
<PHPCodeStyleSettings>
|
|
||||||
<option name="ALIGN_KEY_VALUE_PAIRS" value="true" />
|
|
||||||
<option name="ALIGN_PHPDOC_PARAM_NAMES" value="true" />
|
|
||||||
<option name="ALIGN_PHPDOC_COMMENTS" value="true" />
|
|
||||||
<option name="ALIGN_ASSIGNMENTS" value="true" />
|
|
||||||
<option name="CONCAT_SPACES" value="false" />
|
|
||||||
<option name="COMMA_AFTER_LAST_ARRAY_ELEMENT" value="true" />
|
|
||||||
<option name="PHPDOC_BLANK_LINE_BEFORE_TAGS" value="true" />
|
|
||||||
<option name="PHPDOC_BLANK_LINES_AROUND_PARAMETERS" value="true" />
|
|
||||||
<option name="PHPDOC_WRAP_LONG_LINES" value="true" />
|
|
||||||
<option name="LOWER_CASE_BOOLEAN_CONST" value="true" />
|
|
||||||
<option name="LOWER_CASE_NULL_CONST" value="true" />
|
|
||||||
<option name="ELSE_IF_STYLE" value="COMBINE" />
|
|
||||||
<option name="FIELDS_DEFAULT_VISIBILITY" value="protected" />
|
|
||||||
<option name="BLANK_LINES_BEFORE_RETURN_STATEMENT" value="1" />
|
|
||||||
<option name="KEEP_RPAREN_AND_LBRACE_ON_ONE_LINE" value="true" />
|
|
||||||
<option name="ALIGN_CLASS_CONSTANTS" value="true" />
|
|
||||||
<option name="KEEP_BLANK_LINES_AFTER_LBRACE" value="1" />
|
|
||||||
<option name="SPACE_BEFORE_CLOSURE_LEFT_PARENTHESIS" value="false" />
|
|
||||||
<option name="FORCE_SHORT_DECLARATION_ARRAY_STYLE" value="true" />
|
|
||||||
<option name="SPACE_AROUND_ASSIGNMENT_IN_DECLARE" value="true" />
|
|
||||||
<option name="SPACE_AFTER_COLON_IN_RETURN_TYPE" value="false" />
|
|
||||||
<option name="PHPDOC_USE_FQCN" value="true" />
|
|
||||||
<option name="MULTILINE_CHAINED_CALLS_SEMICOLON_ON_NEW_LINE" value="true" />
|
|
||||||
<option name="PREFER_TEMPLATE_INDENTS" value="true" />
|
|
||||||
</PHPCodeStyleSettings>
|
|
||||||
<PostgresCodeStyleSettings version="6">
|
|
||||||
<option name="USE_GENERAL_STYLE" value="false" />
|
|
||||||
<option name="TYPE_CASE" value="3" />
|
|
||||||
<option name="CUSTOM_TYPE_CASE" value="3" />
|
|
||||||
<option name="ALIAS_CASE" value="4" />
|
|
||||||
<option name="BUILT_IN_CASE" value="0" />
|
|
||||||
<option name="QUERY_TRUE_INDENT" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_ELEMENTS" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_LINE_COMMENTS" value="false" />
|
|
||||||
<option name="INSERT_EL_COMMA" value="2" />
|
|
||||||
<option name="SET_EL_WRAP" value="0" />
|
|
||||||
<option name="SET_EL_COMMA" value="0" />
|
|
||||||
<option name="WITH_EL_WRAP" value="0" />
|
|
||||||
<option name="WITH_EL_COMMA" value="0" />
|
|
||||||
<option name="SELECT_EL_WRAP" value="3" />
|
|
||||||
<option name="SELECT_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_EL_WRAP" value="2" />
|
|
||||||
<option name="FROM_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_PLACE_ON" value="10" />
|
|
||||||
<option name="WHERE_EL_WRAP" value="3" />
|
|
||||||
<option name="WHERE_EL_BOUND" value="2" />
|
|
||||||
<option name="ORDER_EL_COMMA" value="2" />
|
|
||||||
<option name="TABLE_OPENING" value="1" />
|
|
||||||
<option name="TABLE_CONTENT" value="2" />
|
|
||||||
<option name="TABLE_CLOSING" value="3" />
|
|
||||||
<option name="TABLE_ALTER_INSTRUCTION_ALIGN" value="false" />
|
|
||||||
<option name="POST_OPT_WRAP_1" value="true" />
|
|
||||||
<option name="POST_OPT_ALIGN" value="false" />
|
|
||||||
<option name="ROUTINE_ARG_COMMA" value="2" />
|
|
||||||
<option name="ROUTINE_ARG_ALIGN_TYPES" value="true" />
|
|
||||||
<option name="IMP_DECLARE_EL_WRAP" value="1" />
|
|
||||||
<option name="IMP_IF_THEN_WRAP_THEN" value="true" />
|
|
||||||
<option name="CORTEGE_SPACE_BEFORE_L_PAREN" value="false" />
|
|
||||||
<option name="EXPR_CASE_WHEN_WRAP" value="false" />
|
|
||||||
<option name="EXPR_CASE_THEN_WRAP" value="true" />
|
|
||||||
<option name="PRIMARY_KEY_NAME_TEMPLATE" value="{table}_{columns}_pk" />
|
|
||||||
</PostgresCodeStyleSettings>
|
|
||||||
<SQLiteCodeStyleSettings version="6">
|
|
||||||
<option name="USE_GENERAL_STYLE" value="false" />
|
|
||||||
<option name="TYPE_CASE" value="3" />
|
|
||||||
<option name="CUSTOM_TYPE_CASE" value="3" />
|
|
||||||
<option name="ALIAS_CASE" value="4" />
|
|
||||||
<option name="BUILT_IN_CASE" value="0" />
|
|
||||||
<option name="QUERY_TRUE_INDENT" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_ELEMENTS" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_LINE_COMMENTS" value="false" />
|
|
||||||
<option name="INSERT_EL_COMMA" value="2" />
|
|
||||||
<option name="SET_EL_WRAP" value="0" />
|
|
||||||
<option name="SET_EL_COMMA" value="0" />
|
|
||||||
<option name="WITH_EL_WRAP" value="0" />
|
|
||||||
<option name="WITH_EL_COMMA" value="0" />
|
|
||||||
<option name="SELECT_EL_WRAP" value="3" />
|
|
||||||
<option name="SELECT_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_EL_WRAP" value="2" />
|
|
||||||
<option name="FROM_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_PLACE_ON" value="10" />
|
|
||||||
<option name="WHERE_EL_WRAP" value="3" />
|
|
||||||
<option name="WHERE_EL_BOUND" value="2" />
|
|
||||||
<option name="ORDER_EL_COMMA" value="2" />
|
|
||||||
<option name="TABLE_OPENING" value="1" />
|
|
||||||
<option name="TABLE_CONTENT" value="2" />
|
|
||||||
<option name="TABLE_CLOSING" value="3" />
|
|
||||||
<option name="TABLE_ALTER_INSTRUCTION_ALIGN" value="false" />
|
|
||||||
<option name="POST_OPT_WRAP_1" value="true" />
|
|
||||||
<option name="POST_OPT_ALIGN" value="false" />
|
|
||||||
<option name="ROUTINE_ARG_COMMA" value="2" />
|
|
||||||
<option name="ROUTINE_ARG_ALIGN_TYPES" value="true" />
|
|
||||||
<option name="IMP_DECLARE_EL_WRAP" value="1" />
|
|
||||||
<option name="IMP_IF_THEN_WRAP_THEN" value="true" />
|
|
||||||
<option name="CORTEGE_SPACE_BEFORE_L_PAREN" value="false" />
|
|
||||||
<option name="EXPR_CASE_WHEN_WRAP" value="false" />
|
|
||||||
<option name="EXPR_CASE_THEN_WRAP" value="true" />
|
|
||||||
<option name="PRIMARY_KEY_NAME_TEMPLATE" value="{table}_{columns}_pk" />
|
|
||||||
</SQLiteCodeStyleSettings>
|
|
||||||
<SqlCodeStyleSettings version="6">
|
|
||||||
<option name="TYPE_CASE" value="3" />
|
|
||||||
<option name="CUSTOM_TYPE_CASE" value="3" />
|
|
||||||
<option name="ALIAS_CASE" value="4" />
|
|
||||||
<option name="BUILT_IN_CASE" value="0" />
|
|
||||||
<option name="QUERY_TRUE_INDENT" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_ELEMENTS" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_LINE_COMMENTS" value="false" />
|
|
||||||
<option name="INSERT_EL_COMMA" value="2" />
|
|
||||||
<option name="SET_EL_WRAP" value="0" />
|
|
||||||
<option name="SET_EL_COMMA" value="0" />
|
|
||||||
<option name="WITH_EL_WRAP" value="0" />
|
|
||||||
<option name="WITH_EL_COMMA" value="0" />
|
|
||||||
<option name="SELECT_EL_WRAP" value="3" />
|
|
||||||
<option name="SELECT_EL_COMMA" value="2" />
|
|
||||||
<option name="SELECT_ALIGN_AS" value="false" />
|
|
||||||
<option name="FROM_EL_WRAP" value="2" />
|
|
||||||
<option name="FROM_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_PLACE_ON" value="10" />
|
|
||||||
<option name="WHERE_EL_WRAP" value="3" />
|
|
||||||
<option name="WHERE_EL_BOUND" value="2" />
|
|
||||||
<option name="ORDER_EL_COMMA" value="2" />
|
|
||||||
<option name="TABLE_OPENING" value="1" />
|
|
||||||
<option name="TABLE_CONTENT" value="2" />
|
|
||||||
<option name="TABLE_CLOSING" value="3" />
|
|
||||||
<option name="TABLE_ALTER_INSTRUCTION_ALIGN" value="false" />
|
|
||||||
<option name="POST_OPT_WRAP_1" value="true" />
|
|
||||||
<option name="POST_OPT_ALIGN" value="false" />
|
|
||||||
<option name="ROUTINE_ARG_COMMA" value="2" />
|
|
||||||
<option name="ROUTINE_ARG_ALIGN_TYPES" value="true" />
|
|
||||||
<option name="IMP_DECLARE_EL_WRAP" value="1" />
|
|
||||||
<option name="IMP_IF_THEN_INDENT_THEN_ELSE" value="true" />
|
|
||||||
<option name="IMP_IF_THEN_INDENT_END" value="true" />
|
|
||||||
<option name="CORTEGE_SPACE_BEFORE_L_PAREN" value="false" />
|
|
||||||
<option name="EXPR_CASE_WHEN_WRAP" value="false" />
|
|
||||||
<option name="PRIMARY_KEY_NAME_TEMPLATE" value="{table}_{columns}_pk" />
|
|
||||||
<option name="ALIGN_AS_IN_SELECT_STATEMENT" value="false" />
|
|
||||||
<option name="NEW_LINE_BEFORE_THEN" value="false" />
|
|
||||||
<option name="INDENT_SELECT_INTO_CLAUSE" value="true" />
|
|
||||||
</SqlCodeStyleSettings>
|
|
||||||
<SybaseCodeStyleSettings version="6">
|
|
||||||
<option name="USE_GENERAL_STYLE" value="false" />
|
|
||||||
<option name="TYPE_CASE" value="3" />
|
|
||||||
<option name="CUSTOM_TYPE_CASE" value="3" />
|
|
||||||
<option name="ALIAS_CASE" value="4" />
|
|
||||||
<option name="BUILT_IN_CASE" value="0" />
|
|
||||||
<option name="QUERY_TRUE_INDENT" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_ELEMENTS" value="false" />
|
|
||||||
<option name="QUERY_ALIGN_LINE_COMMENTS" value="false" />
|
|
||||||
<option name="INSERT_EL_COMMA" value="2" />
|
|
||||||
<option name="SET_EL_WRAP" value="0" />
|
|
||||||
<option name="SET_EL_COMMA" value="0" />
|
|
||||||
<option name="WITH_EL_WRAP" value="0" />
|
|
||||||
<option name="WITH_EL_COMMA" value="0" />
|
|
||||||
<option name="SELECT_EL_WRAP" value="3" />
|
|
||||||
<option name="SELECT_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_EL_WRAP" value="2" />
|
|
||||||
<option name="FROM_EL_COMMA" value="2" />
|
|
||||||
<option name="FROM_PLACE_ON" value="10" />
|
|
||||||
<option name="WHERE_EL_WRAP" value="3" />
|
|
||||||
<option name="WHERE_EL_BOUND" value="2" />
|
|
||||||
<option name="ORDER_EL_COMMA" value="2" />
|
|
||||||
<option name="TABLE_OPENING" value="1" />
|
|
||||||
<option name="TABLE_CONTENT" value="2" />
|
|
||||||
<option name="TABLE_CLOSING" value="3" />
|
|
||||||
<option name="TABLE_ALTER_INSTRUCTION_ALIGN" value="false" />
|
|
||||||
<option name="POST_OPT_WRAP_1" value="true" />
|
|
||||||
<option name="POST_OPT_ALIGN" value="false" />
|
|
||||||
<option name="ROUTINE_ARG_COMMA" value="2" />
|
|
||||||
<option name="ROUTINE_ARG_ALIGN_TYPES" value="true" />
|
|
||||||
<option name="IMP_DECLARE_EL_WRAP" value="1" />
|
|
||||||
<option name="IMP_IF_THEN_WRAP_THEN" value="true" />
|
|
||||||
<option name="CORTEGE_SPACE_BEFORE_L_PAREN" value="false" />
|
|
||||||
<option name="EXPR_CASE_WHEN_WRAP" value="false" />
|
|
||||||
<option name="EXPR_CASE_THEN_WRAP" value="true" />
|
|
||||||
<option name="PRIMARY_KEY_NAME_TEMPLATE" value="{table}_{columns}_pk" />
|
|
||||||
</SybaseCodeStyleSettings>
|
|
||||||
<XML>
|
|
||||||
<option name="XML_ATTRIBUTE_WRAP" value="0" />
|
|
||||||
<option name="XML_TEXT_WRAP" value="0" />
|
|
||||||
<option name="XML_KEEP_WHITE_SPACES_INSIDE_CDATA" value="true" />
|
|
||||||
</XML>
|
|
||||||
<codeStyleSettings language="DB2">
|
|
||||||
<indentOptions>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
<option name="KEEP_INDENTS_ON_EMPTY_LINES" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="Derby">
|
|
||||||
<indentOptions>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
<option name="KEEP_INDENTS_ON_EMPTY_LINES" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="H2">
|
|
||||||
<indentOptions>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
<option name="KEEP_INDENTS_ON_EMPTY_LINES" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="HSQLDB">
|
|
||||||
<indentOptions>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
<option name="KEEP_INDENTS_ON_EMPTY_LINES" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="HTML">
|
|
||||||
<option name="SOFT_MARGINS" value="130" />
|
|
||||||
<indentOptions>
|
|
||||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="JSON">
|
|
||||||
<indentOptions>
|
|
||||||
<option name="INDENT_SIZE" value="4" />
|
|
||||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="JavaScript">
|
|
||||||
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
|
|
||||||
<option name="ELSE_ON_NEW_LINE" value="true" />
|
|
||||||
<option name="WHILE_ON_NEW_LINE" value="true" />
|
|
||||||
<option name="CATCH_ON_NEW_LINE" value="true" />
|
|
||||||
<option name="FINALLY_ON_NEW_LINE" value="true" />
|
|
||||||
<option name="ALIGN_MULTILINE_CHAINED_METHODS" value="true" />
|
|
||||||
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
|
|
||||||
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="true" />
|
|
||||||
<option name="ALIGN_MULTILINE_TERNARY_OPERATION" value="true" />
|
|
||||||
<option name="ALIGN_MULTILINE_ARRAY_INITIALIZER_EXPRESSION" value="true" />
|
|
||||||
<option name="SPACE_BEFORE_IF_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_WHILE_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_FOR_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_CATCH_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_SWITCH_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_METHOD_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_IF_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_ELSE_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_WHILE_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_FOR_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_DO_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_SWITCH_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_TRY_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_CATCH_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_FINALLY_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_ELSE_KEYWORD" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_WHILE_KEYWORD" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_CATCH_KEYWORD" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_FINALLY_KEYWORD" value="false" />
|
|
||||||
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
|
|
||||||
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
|
|
||||||
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
|
|
||||||
<option name="ARRAY_INITIALIZER_LBRACE_ON_NEXT_LINE" value="true" />
|
|
||||||
<option name="ARRAY_INITIALIZER_RBRACE_ON_NEXT_LINE" value="true" />
|
|
||||||
<option name="PLACE_ASSIGNMENT_SIGN_ON_NEXT_LINE" value="true" />
|
|
||||||
<option name="IF_BRACE_FORCE" value="3" />
|
|
||||||
<option name="DOWHILE_BRACE_FORCE" value="3" />
|
|
||||||
<option name="WHILE_BRACE_FORCE" value="3" />
|
|
||||||
<option name="FOR_BRACE_FORCE" value="3" />
|
|
||||||
<indentOptions>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="Markdown">
|
|
||||||
<indentOptions>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="MySQL">
|
|
||||||
<indentOptions>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
<option name="KEEP_INDENTS_ON_EMPTY_LINES" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="Oracle">
|
|
||||||
<indentOptions>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
<option name="KEEP_INDENTS_ON_EMPTY_LINES" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="PHP">
|
|
||||||
<option name="KEEP_BLANK_LINES_IN_DECLARATIONS" value="1" />
|
|
||||||
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
|
|
||||||
<option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="1" />
|
|
||||||
<option name="BLANK_LINES_AFTER_PACKAGE" value="1" />
|
|
||||||
<option name="BLANK_LINES_BEFORE_IMPORTS" value="0" />
|
|
||||||
<option name="BLANK_LINES_AFTER_CLASS_HEADER" value="1" />
|
|
||||||
<option name="BLANK_LINES_BEFORE_CLASS_END" value="1" />
|
|
||||||
<option name="CLASS_BRACE_STYLE" value="1" />
|
|
||||||
<option name="METHOD_BRACE_STYLE" value="1" />
|
|
||||||
<option name="ELSE_ON_NEW_LINE" value="true" />
|
|
||||||
<option name="WHILE_ON_NEW_LINE" value="true" />
|
|
||||||
<option name="CATCH_ON_NEW_LINE" value="true" />
|
|
||||||
<option name="FINALLY_ON_NEW_LINE" value="true" />
|
|
||||||
<option name="SPECIAL_ELSE_IF_TREATMENT" value="true" />
|
|
||||||
<option name="ALIGN_MULTILINE_CHAINED_METHODS" value="true" />
|
|
||||||
<option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="true" />
|
|
||||||
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="true" />
|
|
||||||
<option name="ALIGN_MULTILINE_TERNARY_OPERATION" value="true" />
|
|
||||||
<option name="ALIGN_MULTILINE_EXTENDS_LIST" value="true" />
|
|
||||||
<option name="ALIGN_MULTILINE_ARRAY_INITIALIZER_EXPRESSION" value="true" />
|
|
||||||
<option name="ALIGN_GROUP_FIELD_DECLARATIONS" value="true" />
|
|
||||||
<option name="SPACE_BEFORE_IF_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_WHILE_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_FOR_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_CATCH_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_SWITCH_PARENTHESES" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_CLASS_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_METHOD_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_IF_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_ELSE_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_WHILE_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_FOR_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_DO_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_SWITCH_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_TRY_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_CATCH_LBRACE" value="false" />
|
|
||||||
<option name="SPACE_BEFORE_FINALLY_LBRACE" value="false" />
|
|
||||||
<option name="CALL_PARAMETERS_LPAREN_ON_NEXT_LINE" value="true" />
|
|
||||||
<option name="CALL_PARAMETERS_RPAREN_ON_NEXT_LINE" value="true" />
|
|
||||||
<option name="METHOD_PARAMETERS_LPAREN_ON_NEXT_LINE" value="true" />
|
|
||||||
<option name="METHOD_PARAMETERS_RPAREN_ON_NEXT_LINE" value="true" />
|
|
||||||
<option name="PARENTHESES_EXPRESSION_LPAREN_WRAP" value="true" />
|
|
||||||
<option name="PARENTHESES_EXPRESSION_RPAREN_WRAP" value="true" />
|
|
||||||
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
|
|
||||||
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
|
|
||||||
<option name="FOR_STATEMENT_RPAREN_ON_NEXT_LINE" value="true" />
|
|
||||||
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
|
|
||||||
<option name="ARRAY_INITIALIZER_LBRACE_ON_NEXT_LINE" value="true" />
|
|
||||||
<option name="ARRAY_INITIALIZER_RBRACE_ON_NEXT_LINE" value="true" />
|
|
||||||
<option name="PLACE_ASSIGNMENT_SIGN_ON_NEXT_LINE" value="true" />
|
|
||||||
<option name="IF_BRACE_FORCE" value="3" />
|
|
||||||
<option name="DOWHILE_BRACE_FORCE" value="3" />
|
|
||||||
<option name="WHILE_BRACE_FORCE" value="3" />
|
|
||||||
<option name="FOR_BRACE_FORCE" value="3" />
|
|
||||||
<indentOptions>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
<arrangement>
|
|
||||||
<rules>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<CONST />
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<AND>
|
|
||||||
<FIELD />
|
|
||||||
<PUBLIC />
|
|
||||||
<STATIC />
|
|
||||||
</AND>
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<AND>
|
|
||||||
<FIELD />
|
|
||||||
<PROTECTED />
|
|
||||||
<STATIC />
|
|
||||||
</AND>
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<AND>
|
|
||||||
<FIELD />
|
|
||||||
<PRIVATE />
|
|
||||||
<STATIC />
|
|
||||||
</AND>
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<AND>
|
|
||||||
<FIELD />
|
|
||||||
<PUBLIC />
|
|
||||||
</AND>
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<AND>
|
|
||||||
<FIELD />
|
|
||||||
<PROTECTED />
|
|
||||||
</AND>
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<AND>
|
|
||||||
<FIELD />
|
|
||||||
<PRIVATE />
|
|
||||||
</AND>
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<CONSTRUCTOR />
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<AND>
|
|
||||||
<METHOD />
|
|
||||||
<PUBLIC />
|
|
||||||
<STATIC />
|
|
||||||
</AND>
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<AND>
|
|
||||||
<METHOD />
|
|
||||||
<PROTECTED />
|
|
||||||
<STATIC />
|
|
||||||
</AND>
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<AND>
|
|
||||||
<METHOD />
|
|
||||||
<PRIVATE />
|
|
||||||
<STATIC />
|
|
||||||
</AND>
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<AND>
|
|
||||||
<METHOD />
|
|
||||||
<PUBLIC />
|
|
||||||
</AND>
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<AND>
|
|
||||||
<METHOD />
|
|
||||||
<PROTECTED />
|
|
||||||
</AND>
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<AND>
|
|
||||||
<METHOD />
|
|
||||||
<PRIVATE />
|
|
||||||
</AND>
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<TRAIT />
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<INTERFACE />
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<rule>
|
|
||||||
<match>
|
|
||||||
<CLASS />
|
|
||||||
</match>
|
|
||||||
</rule>
|
|
||||||
</section>
|
|
||||||
</rules>
|
|
||||||
</arrangement>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="PostgreSQL">
|
|
||||||
<indentOptions>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
<option name="KEEP_INDENTS_ON_EMPTY_LINES" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="SQL">
|
|
||||||
<indentOptions>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
<option name="KEEP_INDENTS_ON_EMPTY_LINES" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="SQLite">
|
|
||||||
<indentOptions>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
<option name="KEEP_INDENTS_ON_EMPTY_LINES" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="Sybase">
|
|
||||||
<indentOptions>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
<option name="KEEP_INDENTS_ON_EMPTY_LINES" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="TSQL">
|
|
||||||
<indentOptions>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
<option name="KEEP_INDENTS_ON_EMPTY_LINES" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="XML">
|
|
||||||
<indentOptions>
|
|
||||||
<option name="USE_TAB_CHARACTER" value="true" />
|
|
||||||
<option name="SMART_TABS" value="true" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
</code_scheme>
|
|
||||||
</component>
|
|
||||||
5
vendor/chillerlan/php-qrcode/.idea/codeStyles/codeStyleConfig.xml
generated
vendored
5
vendor/chillerlan/php-qrcode/.idea/codeStyles/codeStyleConfig.xml
generated
vendored
@@ -1,5 +0,0 @@
|
|||||||
<component name="ProjectCodeStyleConfiguration">
|
|
||||||
<state>
|
|
||||||
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
|
||||||
</state>
|
|
||||||
</component>
|
|
||||||
27
vendor/chillerlan/php-qrcode/.idea/inspectionProfiles/Project_Default.xml
generated
vendored
27
vendor/chillerlan/php-qrcode/.idea/inspectionProfiles/Project_Default.xml
generated
vendored
@@ -1,27 +0,0 @@
|
|||||||
<component name="InspectionProjectProfileManager">
|
|
||||||
<profile version="1.0">
|
|
||||||
<option name="myName" value="Project Default" />
|
|
||||||
<inspection_tool class="JSAccessibilityCheck" enabled="true" level="WARNING" enabled_by_default="true" editorAttributes="WARNING_ATTRIBUTES" />
|
|
||||||
<inspection_tool class="MessDetectorValidationInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="PhpAssignmentInConditionInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="PhpCSValidationInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="PhpComposerExtensionStubsInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="PhpDivisionByZeroInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="PhpInternalEntityUsedInspection" enabled="true" level="INFO" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="PhpMethodOrClassCallIsNotCaseSensitiveInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="PhpMissingDocCommentInspection" enabled="true" level="INFO" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="PhpMissingParentCallMagicInspection" enabled="false" level="WARNING" enabled_by_default="false">
|
|
||||||
<option name="ENABLE_FOR_SLEEP" value="false" />
|
|
||||||
<option name="ENABLE_FOR_WAKEUP" value="false" />
|
|
||||||
</inspection_tool>
|
|
||||||
<inspection_tool class="PhpMultipleClassesDeclarationsInOneFile" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="PhpStatementHasEmptyBodyInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="PhpUsageOfSilenceOperatorInspection" enabled="true" level="STFU!" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="PhpVoidFunctionResultUsedInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
|
|
||||||
<option name="processCode" value="true" />
|
|
||||||
<option name="processLiterals" value="true" />
|
|
||||||
<option name="processComments" value="true" />
|
|
||||||
</inspection_tool>
|
|
||||||
</profile>
|
|
||||||
</component>
|
|
||||||
41
vendor/chillerlan/php-qrcode/README.md
vendored
41
vendor/chillerlan/php-qrcode/README.md
vendored
@@ -13,24 +13,24 @@ It also features a QR Code reader based on a [PHP port](https://github.com/khana
|
|||||||
[![Packagist downloads][downloads-badge]][downloads]
|
[![Packagist downloads][downloads-badge]][downloads]
|
||||||
[![Documentation][readthedocs-badge]][readthedocs]
|
[![Documentation][readthedocs-badge]][readthedocs]
|
||||||
|
|
||||||
[php-badge]: https://img.shields.io/packagist/php-v/chillerlan/php-qrcode?logo=php&color=8892BF
|
[php-badge]: https://img.shields.io/packagist/php-v/chillerlan/php-qrcode?logo=php&color=8892BF&logoColor=fff
|
||||||
[php]: https://www.php.net/supported-versions.php
|
[php]: https://www.php.net/supported-versions.php
|
||||||
[packagist-badge]: https://img.shields.io/packagist/v/chillerlan/php-qrcode.svg?logo=packagist
|
[packagist-badge]: https://img.shields.io/packagist/v/chillerlan/php-qrcode.svg?logo=packagist&logoColor=fff
|
||||||
[packagist]: https://packagist.org/packages/chillerlan/php-qrcode
|
[packagist]: https://packagist.org/packages/chillerlan/php-qrcode
|
||||||
[gh-action-badge]: https://img.shields.io/github/actions/workflow/status/chillerlan/php-qrcode/ci.yml?branch=v5.0.x&logo=github
|
[gh-action-badge]: https://img.shields.io/github/actions/workflow/status/chillerlan/php-qrcode/ci.yml?branch=v5.0.x&logo=github&logoColor=fff
|
||||||
[gh-action]: https://github.com/chillerlan/php-qrcode/actions/workflows/ci.yml?query=branch%3Amain
|
[gh-action]: https://github.com/chillerlan/php-qrcode/actions/workflows/ci.yml?query=branch%3Amain
|
||||||
[coverage-badge]: https://img.shields.io/codecov/c/github/chillerlan/php-qrcode/v5.0.x?logo=codecov
|
[coverage-badge]: https://img.shields.io/codecov/c/github/chillerlan/php-qrcode/v5.0.x?logo=codecov&logoColor=fff
|
||||||
[coverage]: https://app.codecov.io/gh/chillerlan/php-qrcode/tree/v5.0.x
|
[coverage]: https://app.codecov.io/gh/chillerlan/php-qrcode/tree/v5.0.x
|
||||||
[codacy-badge]: https://img.shields.io/codacy/grade/edccfc4fe5a34b74b1c53ee03f097b8d/v5.0.x?logo=codacy
|
[codacy-badge]: https://img.shields.io/codacy/grade/edccfc4fe5a34b74b1c53ee03f097b8d/v5.0.x?logo=codacy&logoColor=fff
|
||||||
[codacy]: https://app.codacy.com/gh/chillerlan/php-qrcode/dashboard?branch=v5.0.x
|
[codacy]: https://app.codacy.com/gh/chillerlan/php-qrcode/dashboard?branch=v5.0.x
|
||||||
[downloads-badge]: https://img.shields.io/packagist/dt/chillerlan/php-qrcode?logo=packagist
|
[downloads-badge]: https://img.shields.io/packagist/dt/chillerlan/php-qrcode?logo=packagist&logoColor=fff
|
||||||
[downloads]: https://packagist.org/packages/chillerlan/php-qrcode/stats
|
[downloads]: https://packagist.org/packages/chillerlan/php-qrcode/stats
|
||||||
[readthedocs-badge]: https://img.shields.io/readthedocs/php-qrcode/v5.0.x?logo=readthedocs
|
[readthedocs-badge]: https://img.shields.io/readthedocs/php-qrcode/v5.0.x?logo=readthedocs&logoColor=fff
|
||||||
[readthedocs]: https://php-qrcode.readthedocs.io/en/v5.0.x/
|
[readthedocs]: https://php-qrcode.readthedocs.io/en/v5.0.x/
|
||||||
|
|
||||||
## Overview
|
# Overview
|
||||||
|
|
||||||
### Features
|
## Features
|
||||||
|
|
||||||
- Creation of [Model 2 QR Codes](https://www.qrcode.com/en/codes/model12.html), [Version 1 to 40](https://www.qrcode.com/en/about/version.html)
|
- Creation of [Model 2 QR Codes](https://www.qrcode.com/en/codes/model12.html), [Version 1 to 40](https://www.qrcode.com/en/about/version.html)
|
||||||
- [ECC Levels](https://www.qrcode.com/en/about/error_correction.html) L/M/Q/H supported
|
- [ECC Levels](https://www.qrcode.com/en/about/error_correction.html) L/M/Q/H supported
|
||||||
@@ -52,7 +52,7 @@ It also features a QR Code reader based on a [PHP port](https://github.com/khana
|
|||||||
- QR Code reader (via GD and ImageMagick)
|
- QR Code reader (via GD and ImageMagick)
|
||||||
|
|
||||||
|
|
||||||
### Requirements
|
## Requirements
|
||||||
|
|
||||||
- PHP 7.4+
|
- PHP 7.4+
|
||||||
- [`ext-mbstring`](https://www.php.net/manual/book.mbstring.php)
|
- [`ext-mbstring`](https://www.php.net/manual/book.mbstring.php)
|
||||||
@@ -65,16 +65,21 @@ It also features a QR Code reader based on a [PHP port](https://github.com/khana
|
|||||||
For the QRCode reader, either `ext-gd` or `ext-imagick` is required!
|
For the QRCode reader, either `ext-gd` or `ext-imagick` is required!
|
||||||
|
|
||||||
|
|
||||||
## Documentation
|
# Documentation
|
||||||
|
|
||||||
- The user manual is at https://php-qrcode.readthedocs.io/ ([sources](https://github.com/chillerlan/php-qrcode/tree/v5.0.x/docs))
|
- The user manual is at https://php-qrcode.readthedocs.io/ ([sources](https://github.com/chillerlan/php-qrcode/tree/v5.0.x/docs))
|
||||||
- An API documentation created with [phpDocumentor](https://www.phpdoc.org/) can be found at https://chillerlan.github.io/php-qrcode/
|
- An API documentation created with [phpDocumentor](https://www.phpdoc.org/) can be found at https://chillerlan.github.io/php-qrcode/
|
||||||
- The documentation for the `QROptions` container can be found here: [chillerlan/php-settings-container](https://github.com/chillerlan/php-settings-container#readme)
|
- The documentation for the `QROptions` container can be found here: [chillerlan/php-settings-container](https://github.com/chillerlan/php-settings-container#readme)
|
||||||
|
|
||||||
|
**Important: Please use the examples from the branch that matches your installed php-qrcode version (
|
||||||
|
[v4.x](https://github.com/chillerlan/php-qrcode/tree/v4.3.x/examples),
|
||||||
|
[v5.x](https://github.com/chillerlan/php-qrcode/tree/v5.0.x/examples),
|
||||||
|
[dev-main](https://github.com/chillerlan/php-qrcode/tree/main/examples)
|
||||||
|
)!**
|
||||||
|
|
||||||
## Installation with [composer](https://getcomposer.org)
|
## Installation with [composer](https://getcomposer.org)
|
||||||
|
|
||||||
See [the installation guide](https://php-qrcode.readthedocs.io/en/v5.0.x/Usage-Installation.html) for more info!
|
See [the installation guide](https://php-qrcode.readthedocs.io/en/v5.0.x/Usage/Installation.html) for more info!
|
||||||
|
|
||||||
|
|
||||||
### Terminal
|
### Terminal
|
||||||
@@ -117,7 +122,7 @@ Also, have a look [in the examples folder](https://github.com/chillerlan/php-qrc
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
### Reading QR Codes
|
## Reading QR Codes
|
||||||
|
|
||||||
Using the built-in QR Code reader is pretty straight-forward:
|
Using the built-in QR Code reader is pretty straight-forward:
|
||||||
|
|
||||||
@@ -139,30 +144,30 @@ catch(Throwable $e){
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Shameless advertising
|
# Shameless advertising
|
||||||
|
|
||||||
Hi, please check out some of my other projects that are way cooler than qrcodes!
|
Hi, please check out some of my other projects that are way cooler than qrcodes!
|
||||||
|
|
||||||
- [js-qrcode](https://github.com/chillerlan/js-qrcode) - a javascript port of this library
|
- [js-qrcode](https://github.com/chillerlan/js-qrcode) - a javascript port of this library
|
||||||
- [php-authenticator](https://github.com/chillerlan/php-authenticator) - a Google Authenticator implementation (see [authenticator example](https://github.com/chillerlan/php-qrcode/blob/v5.0.x/examples/authenticator.php))
|
- [php-authenticator](https://github.com/chillerlan/php-authenticator) - a Google Authenticator implementation (see [authenticator example](https://github.com/chillerlan/php-qrcode/blob/v5.0.x/examples/authenticator.php))
|
||||||
- [php-httpinterface](https://github.com/chillerlan/php-httpinterface) - a PSR-7/15/17/18 implemetation
|
- [php-httpinterface](https://github.com/chillerlan/php-httpinterface) - a PSR-7/15/17/18 implemetation
|
||||||
- [php-oauth-core](https://github.com/chillerlan/php-oauth-core) - an OAuth 1/2 client library along with a bunch of [providers](https://github.com/chillerlan/php-oauth-providers)
|
- [php-oauth](https://github.com/chillerlan/php-oauth) - an OAuth 1/2 client library, fully PSR-7/PSR-17/PSR-18 compatible
|
||||||
- [php-database](https://github.com/chillerlan/php-database) - a database client & querybuilder for MySQL, Postgres, SQLite, MSSQL, Firebird
|
- [php-database](https://github.com/chillerlan/php-database) - a database client & querybuilder for MySQL, Postgres, SQLite, MSSQL, Firebird
|
||||||
- [php-tootbot](https://github.com/php-tootbot/tootbot-template) - a Mastodon bot library (see [@dwil](https://github.com/php-tootbot/dwil))
|
- [php-tootbot](https://github.com/php-tootbot/tootbot-template) - a Mastodon bot library (see [@dwil](https://github.com/php-tootbot/dwil))
|
||||||
|
|
||||||
|
|
||||||
## Disclaimer!
|
# Disclaimer!
|
||||||
|
|
||||||
I don't take responsibility for molten CPUs, misled applications, failed log-ins etc.. Use at your own risk!
|
I don't take responsibility for molten CPUs, misled applications, failed log-ins etc.. Use at your own risk!
|
||||||
|
|
||||||
|
|
||||||
### License notice
|
## License notice
|
||||||
|
|
||||||
- Parts of this code are [ported to PHP](https://github.com/codemasher/php-qrcode-decoder) from the [ZXing project](https://github.com/zxing/zxing) and licensed under the [Apache License, Version 2.0](./NOTICE).
|
- Parts of this code are [ported to PHP](https://github.com/codemasher/php-qrcode-decoder) from the [ZXing project](https://github.com/zxing/zxing) and licensed under the [Apache License, Version 2.0](./NOTICE).
|
||||||
- [The documentation](https://github.com/chillerlan/php-qrcode/tree/v5.0.x/docs) is licensed under the [Creative Commons Attribution 4.0 International (CC BY 4.0) License](https://creativecommons.org/licenses/by/4.0/).
|
- [The documentation](https://github.com/chillerlan/php-qrcode/tree/v5.0.x/docs) is licensed under the [Creative Commons Attribution 4.0 International (CC BY 4.0) License](https://creativecommons.org/licenses/by/4.0/).
|
||||||
|
|
||||||
|
|
||||||
### Trademark Notice
|
## Trademark Notice
|
||||||
|
|
||||||
The word "QR Code" is a registered trademark of *DENSO WAVE INCORPORATED*<br>
|
The word "QR Code" is a registered trademark of *DENSO WAVE INCORPORATED*<br>
|
||||||
https://www.qrcode.com/en/faq.html#patentH2Title
|
https://www.qrcode.com/en/faq.html#patentH2Title
|
||||||
|
|||||||
35
vendor/chillerlan/php-qrcode/composer.json
vendored
35
vendor/chillerlan/php-qrcode/composer.json
vendored
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
|
"$schema": "https://getcomposer.org/schema.json",
|
||||||
"name": "chillerlan/php-qrcode",
|
"name": "chillerlan/php-qrcode",
|
||||||
"description": "A QR code generator and reader with a user friendly API. PHP 7.4+",
|
"description": "A QR Code generator and reader with a user-friendly API. PHP 7.4+",
|
||||||
"homepage": "https://github.com/chillerlan/php-qrcode",
|
"homepage": "https://github.com/chillerlan/php-qrcode",
|
||||||
"license": [
|
"license": [
|
||||||
"MIT", "Apache-2.0"
|
"MIT", "Apache-2.0"
|
||||||
@@ -32,6 +33,12 @@
|
|||||||
"homepage":"https://github.com/chillerlan/php-qrcode/graphs/contributors"
|
"homepage":"https://github.com/chillerlan/php-qrcode/graphs/contributors"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "Ko-Fi",
|
||||||
|
"url": "https://ko-fi.com/codemasher"
|
||||||
|
}
|
||||||
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"docs": "https://php-qrcode.readthedocs.io",
|
"docs": "https://php-qrcode.readthedocs.io",
|
||||||
"issues": "https://github.com/chillerlan/php-qrcode/issues",
|
"issues": "https://github.com/chillerlan/php-qrcode/issues",
|
||||||
@@ -42,15 +49,18 @@
|
|||||||
"require": {
|
"require": {
|
||||||
"php": "^7.4 || ^8.0",
|
"php": "^7.4 || ^8.0",
|
||||||
"ext-mbstring": "*",
|
"ext-mbstring": "*",
|
||||||
"chillerlan/php-settings-container": "^2.1.4 || ^3.1"
|
"chillerlan/php-settings-container": "^2.1.6 || ^3.2.1"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"chillerlan/php-authenticator": "^4.1 || ^5.1",
|
"ext-fileinfo": "*",
|
||||||
"phan/phan": "^5.4",
|
"chillerlan/php-authenticator": "^4.3.1 || ^5.2.1",
|
||||||
|
"phan/phan": "^5.5.1",
|
||||||
|
"phpcompatibility/php-compatibility": "10.x-dev",
|
||||||
"phpunit/phpunit": "^9.6",
|
"phpunit/phpunit": "^9.6",
|
||||||
"phpmd/phpmd": "^2.15",
|
"phpmd/phpmd": "^2.15",
|
||||||
"setasign/fpdf": "^1.8.2",
|
"setasign/fpdf": "^1.8.2",
|
||||||
"squizlabs/php_codesniffer": "^3.8"
|
"slevomat/coding-standard": "^8.23.0",
|
||||||
|
"squizlabs/php_codesniffer": "^4.0.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"chillerlan/php-authenticator": "Yet another Google authenticator! Also creates URIs for mobile apps.",
|
"chillerlan/php-authenticator": "Yet another Google authenticator! Also creates URIs for mobile apps.",
|
||||||
@@ -59,21 +69,26 @@
|
|||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"chillerlan\\QRCode\\": "src/"
|
"chillerlan\\QRCode\\": "src"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"chillerlan\\QRCodeTest\\": "tests/"
|
"chillerlan\\QRCodeTest\\": "tests"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"phpunit": "@php vendor/bin/phpunit",
|
"phan": "@php vendor/bin/phan",
|
||||||
"phan": "@php vendor/bin/phan"
|
"phpcs": "@php vendor/bin/phpcs",
|
||||||
|
"phpmd": "@php vendor/bin/phpmd src text ./phpmd.xml.dist",
|
||||||
|
"phpunit": "@php vendor/bin/phpunit"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"lock": false,
|
"lock": false,
|
||||||
"sort-packages": true,
|
"sort-packages": true,
|
||||||
"platform-check": true
|
"platform-check": true,
|
||||||
|
"allow-plugins": {
|
||||||
|
"dealerdirect/phpcodesniffer-composer-installer": true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class GDLuminanceSource extends LuminanceSourceAbstract{
|
|||||||
*
|
*
|
||||||
* @throws \chillerlan\QRCode\Decoder\QRCodeDecoderException
|
* @throws \chillerlan\QRCode\Decoder\QRCodeDecoderException
|
||||||
*/
|
*/
|
||||||
public function __construct($gdImage, SettingsContainerInterface $options = null){
|
public function __construct($gdImage, ?SettingsContainerInterface $options = null){
|
||||||
|
|
||||||
/** @noinspection PhpFullyQualifiedNameUsageInspection */
|
/** @noinspection PhpFullyQualifiedNameUsageInspection */
|
||||||
if(
|
if(
|
||||||
@@ -85,12 +85,12 @@ class GDLuminanceSource extends LuminanceSourceAbstract{
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** @inheritDoc */
|
/** @inheritDoc */
|
||||||
public static function fromFile(string $path, SettingsContainerInterface $options = null):self{
|
public static function fromFile(string $path, ?SettingsContainerInterface $options = null):self{
|
||||||
return new self(imagecreatefromstring(file_get_contents(self::checkFile($path))), $options);
|
return new self(imagecreatefromstring(file_get_contents(self::checkFile($path))), $options);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @inheritDoc */
|
/** @inheritDoc */
|
||||||
public static function fromBlob(string $blob, SettingsContainerInterface $options = null):self{
|
public static function fromBlob(string $blob, ?SettingsContainerInterface $options = null):self{
|
||||||
return new self(imagecreatefromstring($blob), $options);
|
return new self(imagecreatefromstring($blob), $options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ final class GenericGFPoly{
|
|||||||
* @throws \chillerlan\QRCode\QRCodeException if argument is null or empty, or if leading coefficient is 0 and this
|
* @throws \chillerlan\QRCode\QRCodeException if argument is null or empty, or if leading coefficient is 0 and this
|
||||||
* is not a constant polynomial (that is, it is not the monomial "0")
|
* is not a constant polynomial (that is, it is not the monomial "0")
|
||||||
*/
|
*/
|
||||||
public function __construct(array $coefficients, int $degree = null){
|
public function __construct(array $coefficients, ?int $degree = null){
|
||||||
$degree ??= 0;
|
$degree ??= 0;
|
||||||
|
|
||||||
if(empty($coefficients)){
|
if(empty($coefficients)){
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class IMagickLuminanceSource extends LuminanceSourceAbstract{
|
|||||||
/**
|
/**
|
||||||
* IMagickLuminanceSource constructor.
|
* IMagickLuminanceSource constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(Imagick $imagick, SettingsContainerInterface $options = null){
|
public function __construct(Imagick $imagick, ?SettingsContainerInterface $options = null){
|
||||||
parent::__construct($imagick->getImageWidth(), $imagick->getImageHeight(), $options);
|
parent::__construct($imagick->getImageWidth(), $imagick->getImageHeight(), $options);
|
||||||
|
|
||||||
$this->imagick = $imagick;
|
$this->imagick = $imagick;
|
||||||
@@ -63,12 +63,12 @@ class IMagickLuminanceSource extends LuminanceSourceAbstract{
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** @inheritDoc */
|
/** @inheritDoc */
|
||||||
public static function fromFile(string $path, SettingsContainerInterface $options = null):self{
|
public static function fromFile(string $path, ?SettingsContainerInterface $options = null):self{
|
||||||
return new self(new Imagick(self::checkFile($path)), $options);
|
return new self(new Imagick(self::checkFile($path)), $options);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @inheritDoc */
|
/** @inheritDoc */
|
||||||
public static function fromBlob(string $blob, SettingsContainerInterface $options = null):self{
|
public static function fromBlob(string $blob, ?SettingsContainerInterface $options = null):self{
|
||||||
$im = new Imagick;
|
$im = new Imagick;
|
||||||
$im->readImageBlob($blob);
|
$im->readImageBlob($blob);
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ abstract class LuminanceSourceAbstract implements LuminanceSourceInterface{
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function __construct(int $width, int $height, SettingsContainerInterface $options = null){
|
public function __construct(int $width, int $height, ?SettingsContainerInterface $options = null){
|
||||||
$this->width = $width;
|
$this->width = $width;
|
||||||
$this->height = $height;
|
$this->height = $height;
|
||||||
$this->options = ($options ?? new QROptions);
|
$this->options = ($options ?? new QROptions);
|
||||||
@@ -57,7 +57,10 @@ abstract class LuminanceSourceAbstract implements LuminanceSourceInterface{
|
|||||||
return $this->height;
|
return $this->height;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @inheritDoc */
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
* @throws \chillerlan\QRCode\Decoder\QRCodeDecoderException
|
||||||
|
*/
|
||||||
public function getRow(int $y):array{
|
public function getRow(int $y):array{
|
||||||
|
|
||||||
if($y < 0 || $y >= $this->getHeight()){
|
if($y < 0 || $y >= $this->getHeight()){
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ final class MaskPattern{
|
|||||||
*/
|
*/
|
||||||
public function __construct(int $maskPattern){
|
public function __construct(int $maskPattern){
|
||||||
|
|
||||||
if((0b111 & $maskPattern) !== $maskPattern){
|
if(($maskPattern & 0b111) !== $maskPattern){
|
||||||
throw new QRCodeException('invalid mask pattern');
|
throw new QRCodeException('invalid mask pattern');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
namespace chillerlan\QRCode\Data;
|
namespace chillerlan\QRCode\Data;
|
||||||
|
|
||||||
use chillerlan\QRCode\Common\{BitBuffer, Mode};
|
use chillerlan\QRCode\Common\{BitBuffer, Mode};
|
||||||
use function array_flip, ceil, intdiv, str_split;
|
use function ceil, intdiv, preg_match, strpos;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Alphanumeric mode: 0 to 9, A to Z, space, $ % * + - . / :
|
* Alphanumeric mode: 0 to 9, A to Z, space, $ % * + - . / :
|
||||||
@@ -24,16 +24,9 @@ final class AlphaNum extends QRDataModeAbstract{
|
|||||||
/**
|
/**
|
||||||
* ISO/IEC 18004:2000 Table 5
|
* ISO/IEC 18004:2000 Table 5
|
||||||
*
|
*
|
||||||
* @var int[]
|
* @var string
|
||||||
*/
|
*/
|
||||||
private const CHAR_TO_ORD = [
|
private const CHAR_MAP = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:';
|
||||||
'0' => 0, '1' => 1, '2' => 2, '3' => 3, '4' => 4, '5' => 5, '6' => 6, '7' => 7,
|
|
||||||
'8' => 8, '9' => 9, 'A' => 10, 'B' => 11, 'C' => 12, 'D' => 13, 'E' => 14, 'F' => 15,
|
|
||||||
'G' => 16, 'H' => 17, 'I' => 18, 'J' => 19, 'K' => 20, 'L' => 21, 'M' => 22, 'N' => 23,
|
|
||||||
'O' => 24, 'P' => 25, 'Q' => 26, 'R' => 27, 'S' => 28, 'T' => 29, 'U' => 30, 'V' => 31,
|
|
||||||
'W' => 32, 'X' => 33, 'Y' => 34, 'Z' => 35, ' ' => 36, '$' => 37, '%' => 38, '*' => 39,
|
|
||||||
'+' => 40, '-' => 41, '.' => 42, '/' => 43, ':' => 44,
|
|
||||||
];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
@@ -51,18 +44,7 @@ final class AlphaNum extends QRDataModeAbstract{
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
public static function validateString(string $string):bool{
|
public static function validateString(string $string):bool{
|
||||||
|
return (bool)preg_match('/^[A-Z\d %$*+\-.:\/]+$/', $string);
|
||||||
if($string === ''){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(str_split($string) as $chr){
|
|
||||||
if(!isset(self::CHAR_TO_ORD[$chr])){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -78,12 +60,15 @@ final class AlphaNum extends QRDataModeAbstract{
|
|||||||
|
|
||||||
// encode 2 characters in 11 bits
|
// encode 2 characters in 11 bits
|
||||||
for($i = 0; ($i + 1) < $len; $i += 2){
|
for($i = 0; ($i + 1) < $len; $i += 2){
|
||||||
$bitBuffer->put((self::CHAR_TO_ORD[$this->data[$i]] * 45 + self::CHAR_TO_ORD[$this->data[($i + 1)]]), 11);
|
$bitBuffer->put(
|
||||||
|
($this->ord($this->data[$i]) * 45 + $this->ord($this->data[($i + 1)])),
|
||||||
|
11,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// encode a remaining character in 6 bits
|
// encode a remaining character in 6 bits
|
||||||
if($i < $len){
|
if($i < $len){
|
||||||
$bitBuffer->put(self::CHAR_TO_ORD[$this->data[$i]], 6);
|
$bitBuffer->put($this->ord($this->data[$i]), 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
@@ -95,19 +80,7 @@ final class AlphaNum extends QRDataModeAbstract{
|
|||||||
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
||||||
*/
|
*/
|
||||||
public static function decodeSegment(BitBuffer $bitBuffer, int $versionNumber):string{
|
public static function decodeSegment(BitBuffer $bitBuffer, int $versionNumber):string{
|
||||||
$length = $bitBuffer->read(self::getLengthBits($versionNumber));
|
$length = $bitBuffer->read(self::getLengthBits($versionNumber));
|
||||||
$charmap = array_flip(self::CHAR_TO_ORD);
|
|
||||||
|
|
||||||
// @todo
|
|
||||||
$toAlphaNumericChar = function(int $ord) use ($charmap):string{
|
|
||||||
|
|
||||||
if(isset($charmap[$ord])){
|
|
||||||
return $charmap[$ord];
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new QRCodeDataException('invalid character value: '.$ord);
|
|
||||||
};
|
|
||||||
|
|
||||||
$result = '';
|
$result = '';
|
||||||
// Read two characters at a time
|
// Read two characters at a time
|
||||||
while($length > 1){
|
while($length > 1){
|
||||||
@@ -116,9 +89,9 @@ final class AlphaNum extends QRDataModeAbstract{
|
|||||||
throw new QRCodeDataException('not enough bits available'); // @codeCoverageIgnore
|
throw new QRCodeDataException('not enough bits available'); // @codeCoverageIgnore
|
||||||
}
|
}
|
||||||
|
|
||||||
$nextTwoCharsBits = $bitBuffer->read(11);
|
$nextTwoCharsBits = $bitBuffer->read(11);
|
||||||
$result .= $toAlphaNumericChar(intdiv($nextTwoCharsBits, 45));
|
$result .= self::chr(intdiv($nextTwoCharsBits, 45));
|
||||||
$result .= $toAlphaNumericChar($nextTwoCharsBits % 45);
|
$result .= self::chr($nextTwoCharsBits % 45);
|
||||||
$length -= 2;
|
$length -= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,10 +101,36 @@ final class AlphaNum extends QRDataModeAbstract{
|
|||||||
throw new QRCodeDataException('not enough bits available'); // @codeCoverageIgnore
|
throw new QRCodeDataException('not enough bits available'); // @codeCoverageIgnore
|
||||||
}
|
}
|
||||||
|
|
||||||
$result .= $toAlphaNumericChar($bitBuffer->read(6));
|
$result .= self::chr($bitBuffer->read(6));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
||||||
|
*/
|
||||||
|
private function ord(string $chr):int{
|
||||||
|
/** @phan-suppress-next-line PhanParamSuspiciousOrder */
|
||||||
|
$ord = strpos(self::CHAR_MAP, $chr);
|
||||||
|
|
||||||
|
if($ord === false){
|
||||||
|
throw new QRCodeDataException('invalid character'); // @codeCoverageIgnore
|
||||||
|
}
|
||||||
|
|
||||||
|
return $ord;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
||||||
|
*/
|
||||||
|
private static function chr(int $ord):string{
|
||||||
|
|
||||||
|
if($ord < 0 || $ord > 44){
|
||||||
|
throw new QRCodeDataException('invalid character code'); // @codeCoverageIgnore
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::CHAR_MAP[$ord];
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
28
vendor/chillerlan/php-qrcode/src/Data/ECI.php
vendored
28
vendor/chillerlan/php-qrcode/src/Data/ECI.php
vendored
@@ -34,6 +34,7 @@ final class ECI extends QRDataModeAbstract{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
|
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
||||||
* @noinspection PhpMissingParentConstructorInspection
|
* @noinspection PhpMissingParentConstructorInspection
|
||||||
*/
|
*/
|
||||||
public function __construct(int $encoding){
|
public function __construct(int $encoding){
|
||||||
@@ -107,7 +108,7 @@ final class ECI extends QRDataModeAbstract{
|
|||||||
$id = ((($firstByte & 0b00011111) << 16) | $bitBuffer->read(16));
|
$id = ((($firstByte & 0b00011111) << 16) | $bitBuffer->read(16));
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
throw new QRCodeDataException(sprintf('error decoding ECI value first byte: %08b', $firstByte)); // @codeCoverageIgnore
|
throw new QRCodeDataException(sprintf('error decoding ECI value first byte: %08b', $firstByte));// @codeCoverageIgnore
|
||||||
}
|
}
|
||||||
|
|
||||||
return new ECICharset($id);
|
return new ECICharset($id);
|
||||||
@@ -128,17 +129,12 @@ final class ECI extends QRDataModeAbstract{
|
|||||||
public static function decodeSegment(BitBuffer $bitBuffer, int $versionNumber):string{
|
public static function decodeSegment(BitBuffer $bitBuffer, int $versionNumber):string{
|
||||||
$eciCharset = self::parseValue($bitBuffer);
|
$eciCharset = self::parseValue($bitBuffer);
|
||||||
$nextMode = $bitBuffer->read(4);
|
$nextMode = $bitBuffer->read(4);
|
||||||
|
$data = self::decodeModeSegment($nextMode, $bitBuffer, $versionNumber);
|
||||||
if($nextMode !== Mode::BYTE){
|
$encoding = $eciCharset->getName();
|
||||||
throw new QRCodeDataException(sprintf('ECI designator followed by invalid mode: "%04b"', $nextMode));
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = Byte::decodeSegment($bitBuffer, $versionNumber);
|
|
||||||
$encoding = $eciCharset->getName();
|
|
||||||
|
|
||||||
if($encoding === null){
|
if($encoding === null){
|
||||||
// The spec isn't clear on this mode; see
|
// The spec isn't clear on this mode; see
|
||||||
// section 6.4.5: t does not say which encoding to assuming
|
// section 6.4.5: it does not say which encoding to assuming
|
||||||
// upon decoding. I have seen ISO-8859-1 used as well as
|
// upon decoding. I have seen ISO-8859-1 used as well as
|
||||||
// Shift_JIS -- without anything like an ECI designator to
|
// Shift_JIS -- without anything like an ECI designator to
|
||||||
// give a hint.
|
// give a hint.
|
||||||
@@ -152,4 +148,18 @@ final class ECI extends QRDataModeAbstract{
|
|||||||
return mb_convert_encoding($data, mb_internal_encoding(), $encoding);
|
return mb_convert_encoding($data, mb_internal_encoding(), $encoding);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
||||||
|
*/
|
||||||
|
private static function decodeModeSegment(int $mode, BitBuffer $bitBuffer, int $versionNumber):string{
|
||||||
|
|
||||||
|
switch(true){
|
||||||
|
case $mode === Mode::NUMBER: return Number::decodeSegment($bitBuffer, $versionNumber);
|
||||||
|
case $mode === Mode::ALPHANUM: return AlphaNum::decodeSegment($bitBuffer, $versionNumber);
|
||||||
|
case $mode === Mode::BYTE: return Byte::decodeSegment($bitBuffer, $versionNumber);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new QRCodeDataException(sprintf('ECI designator followed by invalid mode: "%04b"', $mode));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
12
vendor/chillerlan/php-qrcode/src/Data/Hanzi.php
vendored
12
vendor/chillerlan/php-qrcode/src/Data/Hanzi.php
vendored
@@ -13,7 +13,7 @@ namespace chillerlan\QRCode\Data;
|
|||||||
use chillerlan\QRCode\Common\{BitBuffer, Mode};
|
use chillerlan\QRCode\Common\{BitBuffer, Mode};
|
||||||
use Throwable;
|
use Throwable;
|
||||||
use function chr, implode, intdiv, is_string, mb_convert_encoding, mb_detect_encoding,
|
use function chr, implode, intdiv, is_string, mb_convert_encoding, mb_detect_encoding,
|
||||||
mb_detect_order, mb_internal_encoding, mb_strlen, ord, sprintf, strlen;
|
mb_internal_encoding, mb_strlen, ord, sprintf, strlen;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hanzi (simplified Chinese) mode, GBT18284-2000: 13-bit double-byte characters from the GB2312/GB18030 character set
|
* Hanzi (simplified Chinese) mode, GBT18284-2000: 13-bit double-byte characters from the GB2312/GB18030 character set
|
||||||
@@ -64,11 +64,15 @@ final class Hanzi extends QRDataModeAbstract{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
|
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
||||||
*/
|
*/
|
||||||
public static function convertEncoding(string $string):string{
|
public static function convertEncoding(string $string):string{
|
||||||
mb_detect_order([mb_internal_encoding(), 'UTF-8', 'GB2312', 'GB18030', 'CP936', 'EUC-CN', 'HZ']);
|
|
||||||
|
|
||||||
$detected = mb_detect_encoding($string, null, true);
|
$detected = mb_detect_encoding(
|
||||||
|
$string,
|
||||||
|
[mb_internal_encoding(), 'UTF-8', 'GB2312', 'GB18030', 'CP936', 'EUC-CN', 'HZ'],
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
|
||||||
if($detected === false){
|
if($detected === false){
|
||||||
throw new QRCodeDataException('mb_detect_encoding error');
|
throw new QRCodeDataException('mb_detect_encoding error');
|
||||||
@@ -199,7 +203,7 @@ final class Hanzi extends QRDataModeAbstract{
|
|||||||
$length--;
|
$length--;
|
||||||
}
|
}
|
||||||
|
|
||||||
return mb_convert_encoding(implode($buffer), mb_internal_encoding(), self::ENCODING);
|
return mb_convert_encoding(implode('', $buffer), mb_internal_encoding(), self::ENCODING);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace chillerlan\QRCode\Data;
|
|||||||
use chillerlan\QRCode\Common\{BitBuffer, Mode};
|
use chillerlan\QRCode\Common\{BitBuffer, Mode};
|
||||||
use Throwable;
|
use Throwable;
|
||||||
use function chr, implode, intdiv, is_string, mb_convert_encoding, mb_detect_encoding,
|
use function chr, implode, intdiv, is_string, mb_convert_encoding, mb_detect_encoding,
|
||||||
mb_detect_order, mb_internal_encoding, mb_strlen, ord, sprintf, strlen;
|
mb_internal_encoding, mb_strlen, ord, sprintf, strlen;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Kanji mode: 13-bit double-byte characters from the Shift-JIS character set
|
* Kanji mode: 13-bit double-byte characters from the Shift-JIS character set
|
||||||
@@ -57,11 +57,10 @@ final class Kanji extends QRDataModeAbstract{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
|
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
||||||
*/
|
*/
|
||||||
public static function convertEncoding(string $string):string{
|
public static function convertEncoding(string $string):string{
|
||||||
mb_detect_order([mb_internal_encoding(), 'UTF-8', 'SJIS', 'SJIS-2004']);
|
$detected = mb_detect_encoding($string, [mb_internal_encoding(), 'UTF-8', 'SJIS', 'SJIS-2004'], true);
|
||||||
|
|
||||||
$detected = mb_detect_encoding($string, null, true);
|
|
||||||
|
|
||||||
if($detected === false){
|
if($detected === false){
|
||||||
throw new QRCodeDataException('mb_detect_encoding error');
|
throw new QRCodeDataException('mb_detect_encoding error');
|
||||||
@@ -185,7 +184,7 @@ final class Kanji extends QRDataModeAbstract{
|
|||||||
$length--;
|
$length--;
|
||||||
}
|
}
|
||||||
|
|
||||||
return mb_convert_encoding(implode($buffer), mb_internal_encoding(), self::ENCODING);
|
return mb_convert_encoding(implode('', $buffer), mb_internal_encoding(), self::ENCODING);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
60
vendor/chillerlan/php-qrcode/src/Data/Number.php
vendored
60
vendor/chillerlan/php-qrcode/src/Data/Number.php
vendored
@@ -11,7 +11,7 @@
|
|||||||
namespace chillerlan\QRCode\Data;
|
namespace chillerlan\QRCode\Data;
|
||||||
|
|
||||||
use chillerlan\QRCode\Common\{BitBuffer, Mode};
|
use chillerlan\QRCode\Common\{BitBuffer, Mode};
|
||||||
use function array_flip, ceil, intdiv, str_split, substr, unpack;
|
use function ceil, intdiv, substr, unpack;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Numeric mode: decimal digits 0 to 9
|
* Numeric mode: decimal digits 0 to 9
|
||||||
@@ -21,13 +21,6 @@ use function array_flip, ceil, intdiv, str_split, substr, unpack;
|
|||||||
*/
|
*/
|
||||||
final class Number extends QRDataModeAbstract{
|
final class Number extends QRDataModeAbstract{
|
||||||
|
|
||||||
/**
|
|
||||||
* @var int[]
|
|
||||||
*/
|
|
||||||
private const NUMBER_TO_ORD = [
|
|
||||||
'0' => 0, '1' => 1, '2' => 2, '3' => 3, '4' => 4, '5' => 5, '6' => 6, '7' => 7, '8' => 8, '9' => 9,
|
|
||||||
];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
@@ -44,18 +37,7 @@ final class Number extends QRDataModeAbstract{
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
public static function validateString(string $string):bool{
|
public static function validateString(string $string):bool{
|
||||||
|
return (bool)preg_match('/^\d+$/', $string);
|
||||||
if($string === ''){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(str_split($string) as $chr){
|
|
||||||
if(!isset(self::NUMBER_TO_ORD[$chr])){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -95,12 +77,20 @@ final class Number extends QRDataModeAbstract{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* get the code for the given numeric string
|
* get the code for the given numeric string
|
||||||
|
*
|
||||||
|
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
||||||
*/
|
*/
|
||||||
private function parseInt(string $string):int{
|
private function parseInt(string $string):int{
|
||||||
$num = 0;
|
$num = 0;
|
||||||
|
|
||||||
foreach(unpack('C*', $string) as $chr){
|
$ords = unpack('C*', $string);
|
||||||
$num = ($num * 10 + $chr - 48);
|
|
||||||
|
if($ords === false){
|
||||||
|
throw new QRCodeDataException('unpack() error');
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($ords as $ord){
|
||||||
|
$num = ($num * 10 + $ord - 48);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $num;
|
return $num;
|
||||||
@@ -112,19 +102,7 @@ final class Number extends QRDataModeAbstract{
|
|||||||
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
||||||
*/
|
*/
|
||||||
public static function decodeSegment(BitBuffer $bitBuffer, int $versionNumber):string{
|
public static function decodeSegment(BitBuffer $bitBuffer, int $versionNumber):string{
|
||||||
$length = $bitBuffer->read(self::getLengthBits($versionNumber));
|
$length = $bitBuffer->read(self::getLengthBits($versionNumber));
|
||||||
$charmap = array_flip(self::NUMBER_TO_ORD);
|
|
||||||
|
|
||||||
// @todo
|
|
||||||
$toNumericChar = function(int $ord) use ($charmap):string{
|
|
||||||
|
|
||||||
if(isset($charmap[$ord])){
|
|
||||||
return $charmap[$ord];
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new QRCodeDataException('invalid character value: '.$ord);
|
|
||||||
};
|
|
||||||
|
|
||||||
$result = '';
|
$result = '';
|
||||||
// Read three digits at a time
|
// Read three digits at a time
|
||||||
while($length >= 3){
|
while($length >= 3){
|
||||||
@@ -139,9 +117,9 @@ final class Number extends QRDataModeAbstract{
|
|||||||
throw new QRCodeDataException('error decoding numeric value');
|
throw new QRCodeDataException('error decoding numeric value');
|
||||||
}
|
}
|
||||||
|
|
||||||
$result .= $toNumericChar(intdiv($threeDigitsBits, 100));
|
$result .= intdiv($threeDigitsBits, 100);
|
||||||
$result .= $toNumericChar(intdiv($threeDigitsBits, 10) % 10);
|
$result .= (intdiv($threeDigitsBits, 10) % 10);
|
||||||
$result .= $toNumericChar($threeDigitsBits % 10);
|
$result .= ($threeDigitsBits % 10);
|
||||||
|
|
||||||
$length -= 3;
|
$length -= 3;
|
||||||
}
|
}
|
||||||
@@ -158,8 +136,8 @@ final class Number extends QRDataModeAbstract{
|
|||||||
throw new QRCodeDataException('error decoding numeric value');
|
throw new QRCodeDataException('error decoding numeric value');
|
||||||
}
|
}
|
||||||
|
|
||||||
$result .= $toNumericChar(intdiv($twoDigitsBits, 10));
|
$result .= intdiv($twoDigitsBits, 10);
|
||||||
$result .= $toNumericChar($twoDigitsBits % 10);
|
$result .= ($twoDigitsBits % 10);
|
||||||
}
|
}
|
||||||
elseif($length === 1){
|
elseif($length === 1){
|
||||||
// One digit left over to read
|
// One digit left over to read
|
||||||
@@ -173,7 +151,7 @@ final class Number extends QRDataModeAbstract{
|
|||||||
throw new QRCodeDataException('error decoding numeric value');
|
throw new QRCodeDataException('error decoding numeric value');
|
||||||
}
|
}
|
||||||
|
|
||||||
$result .= $toNumericChar($digitBits);
|
$result .= $digitBits;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
|
|||||||
@@ -195,7 +195,7 @@ final class QRData{
|
|||||||
|
|
||||||
// guess the version number within the given range
|
// guess the version number within the given range
|
||||||
for($version = $this->options->versionMin; $version <= $this->options->versionMax; $version++){
|
for($version = $this->options->versionMin; $version <= $this->options->versionMax; $version++){
|
||||||
if($total <= $this->maxBitsForEcc[$version]){
|
if($total <= ($this->maxBitsForEcc[$version] - 4)){
|
||||||
return new Version($version);
|
return new Version($version);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -207,7 +207,7 @@ final class QRData{
|
|||||||
/**
|
/**
|
||||||
* creates a BitBuffer and writes the string data to it
|
* creates a BitBuffer and writes the string data to it
|
||||||
*
|
*
|
||||||
* @throws \chillerlan\QRCode\QRCodeException on data overflow
|
* @throws \chillerlan\QRCode\Data\QRCodeDataException on data overflow
|
||||||
*/
|
*/
|
||||||
private function writeBitBuffer():void{
|
private function writeBitBuffer():void{
|
||||||
$MAX_BITS = $this->eccLevel->getMaxBitsForVersion($this->version);
|
$MAX_BITS = $this->eccLevel->getMaxBitsForVersion($this->version);
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ class QRMatrix{
|
|||||||
*
|
*
|
||||||
* @return int[][]|bool[][]
|
* @return int[][]|bool[][]
|
||||||
*/
|
*/
|
||||||
public function getMatrix(bool $boolean = null):array{
|
public function getMatrix(?bool $boolean = null):array{
|
||||||
|
|
||||||
if($boolean !== true){
|
if($boolean !== true){
|
||||||
return $this->matrix;
|
return $this->matrix;
|
||||||
@@ -195,7 +195,7 @@ class QRMatrix{
|
|||||||
* @see \chillerlan\QRCode\Data\QRMatrix::getMatrix()
|
* @see \chillerlan\QRCode\Data\QRMatrix::getMatrix()
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
public function matrix(bool $boolean = null):array{
|
public function matrix(?bool $boolean = null):array{
|
||||||
return $this->getMatrix($boolean);
|
return $this->getMatrix($boolean);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -387,7 +387,7 @@ class QRMatrix{
|
|||||||
* 7 # 3
|
* 7 # 3
|
||||||
* 6 5 4
|
* 6 5 4
|
||||||
*/
|
*/
|
||||||
public function checkNeighbours(int $x, int $y, int $M_TYPE = null):int{
|
public function checkNeighbours(int $x, int $y, ?int $M_TYPE = null):int{
|
||||||
$bits = 0;
|
$bits = 0;
|
||||||
|
|
||||||
foreach($this::neighbours as $bit => [$ix, $iy]){
|
foreach($this::neighbours as $bit => [$ix, $iy]){
|
||||||
@@ -463,6 +463,7 @@ class QRMatrix{
|
|||||||
|
|
||||||
for($c = 0; $c < 3; $c++){
|
for($c = 0; $c < 3; $c++){
|
||||||
for($i = 0; $i < 8; $i++){
|
for($i = 0; $i < 8; $i++){
|
||||||
|
// phpcs:ignore
|
||||||
$this->set( $h[$c][0] , ($h[$c][1] + $i), false, $this::M_SEPARATOR);
|
$this->set( $h[$c][0] , ($h[$c][1] + $i), false, $this::M_SEPARATOR);
|
||||||
$this->set(($v[$c][0] - $i), $v[$c][1] , false, $this::M_SEPARATOR);
|
$this->set(($v[$c][0] - $i), $v[$c][1] , false, $this::M_SEPARATOR);
|
||||||
}
|
}
|
||||||
@@ -552,7 +553,7 @@ class QRMatrix{
|
|||||||
*
|
*
|
||||||
* ISO/IEC 18004:2000 Section 8.9
|
* ISO/IEC 18004:2000 Section 8.9
|
||||||
*/
|
*/
|
||||||
public function setFormatInfo(MaskPattern $maskPattern = null):self{
|
public function setFormatInfo(?MaskPattern $maskPattern = null):self{
|
||||||
$this->maskPattern = $maskPattern;
|
$this->maskPattern = $maskPattern;
|
||||||
$bits = 0; // sets all format fields to false (test mode)
|
$bits = 0; // sets all format fields to false (test mode)
|
||||||
|
|
||||||
@@ -678,7 +679,7 @@ class QRMatrix{
|
|||||||
*
|
*
|
||||||
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
||||||
*/
|
*/
|
||||||
public function setLogoSpace(int $width, int $height = null, int $startX = null, int $startY = null):self{
|
public function setLogoSpace(int $width, ?int $height = null, ?int $startX = null, ?int $startY = null):self{
|
||||||
$height ??= $width;
|
$height ??= $width;
|
||||||
|
|
||||||
// if width and height happen to be negative or 0 (default value), just return - nothing to do
|
// if width and height happen to be negative or 0 (default value), just return - nothing to do
|
||||||
|
|||||||
@@ -415,7 +415,7 @@ final class BitMatrix extends QRMatrix{
|
|||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
||||||
*/
|
*/
|
||||||
public function setQuietZone(int $quietZoneSize = null):self{
|
public function setQuietZone(?int $quietZoneSize = null):self{
|
||||||
throw new QRCodeDataException('not supported');
|
throw new QRCodeDataException('not supported');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -423,7 +423,7 @@ final class BitMatrix extends QRMatrix{
|
|||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
* @throws \chillerlan\QRCode\Data\QRCodeDataException
|
||||||
*/
|
*/
|
||||||
public function setLogoSpace(int $width, int $height = null, int $startX = null, int $startY = null):self{
|
public function setLogoSpace(int $width, ?int $height = null, ?int $startX = null, ?int $startY = null):self{
|
||||||
throw new QRCodeDataException('not supported');
|
throw new QRCodeDataException('not supported');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ final class Decoder{
|
|||||||
private ?EccLevel $eccLevel = null;
|
private ?EccLevel $eccLevel = null;
|
||||||
private ?MaskPattern $maskPattern = null;
|
private ?MaskPattern $maskPattern = null;
|
||||||
private BitBuffer $bitBuffer;
|
private BitBuffer $bitBuffer;
|
||||||
|
private Detector $detector;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decodes a QR Code represented as a BitMatrix.
|
* Decodes a QR Code represented as a BitMatrix.
|
||||||
@@ -37,7 +38,8 @@ final class Decoder{
|
|||||||
* @throws \Throwable|\chillerlan\QRCode\Decoder\QRCodeDecoderException
|
* @throws \Throwable|\chillerlan\QRCode\Decoder\QRCodeDecoderException
|
||||||
*/
|
*/
|
||||||
public function decode(LuminanceSourceInterface $source):DecoderResult{
|
public function decode(LuminanceSourceInterface $source):DecoderResult{
|
||||||
$matrix = (new Detector($source))->detect();
|
$this->detector = new Detector($source);
|
||||||
|
$matrix = $this->detector->detect();
|
||||||
|
|
||||||
try{
|
try{
|
||||||
// clone the BitMatrix to avoid errors in case we run into mirroring
|
// clone the BitMatrix to avoid errors in case we run into mirroring
|
||||||
@@ -148,6 +150,7 @@ final class Decoder{
|
|||||||
'data' => $result,
|
'data' => $result,
|
||||||
'version' => $this->version,
|
'version' => $this->version,
|
||||||
'eccLevel' => $this->eccLevel,
|
'eccLevel' => $this->eccLevel,
|
||||||
|
'finderPatterns' => $this->detector->getFinderPatterns(),
|
||||||
'maskPattern' => $this->maskPattern,
|
'maskPattern' => $this->maskPattern,
|
||||||
'structuredAppendParity' => $parityData,
|
'structuredAppendParity' => $parityData,
|
||||||
'structuredAppendSequence' => $symbolSequence,
|
'structuredAppendSequence' => $symbolSequence,
|
||||||
|
|||||||
@@ -20,13 +20,14 @@ use function property_exists;
|
|||||||
* applies to 2D barcode formats. For now, it contains the raw bytes obtained
|
* applies to 2D barcode formats. For now, it contains the raw bytes obtained
|
||||||
* as well as a String interpretation of those bytes, if applicable.
|
* as well as a String interpretation of those bytes, if applicable.
|
||||||
*
|
*
|
||||||
* @property \chillerlan\QRCode\Common\BitBuffer $rawBytes
|
* @property \chillerlan\QRCode\Common\BitBuffer $rawBytes
|
||||||
* @property string $data
|
* @property string $data
|
||||||
* @property \chillerlan\QRCode\Common\Version $version
|
* @property \chillerlan\QRCode\Common\Version $version
|
||||||
* @property \chillerlan\QRCode\Common\EccLevel $eccLevel
|
* @property \chillerlan\QRCode\Common\EccLevel $eccLevel
|
||||||
* @property \chillerlan\QRCode\Common\MaskPattern $maskPattern
|
* @property \chillerlan\QRCode\Common\MaskPattern $maskPattern
|
||||||
* @property int $structuredAppendParity
|
* @property int $structuredAppendParity
|
||||||
* @property int $structuredAppendSequence
|
* @property int $structuredAppendSequence
|
||||||
|
* @property \chillerlan\QRCode\Detector\FinderPattern[] $finderPatterns
|
||||||
*/
|
*/
|
||||||
final class DecoderResult{
|
final class DecoderResult{
|
||||||
|
|
||||||
@@ -37,11 +38,13 @@ final class DecoderResult{
|
|||||||
private string $data = '';
|
private string $data = '';
|
||||||
private int $structuredAppendParity = -1;
|
private int $structuredAppendParity = -1;
|
||||||
private int $structuredAppendSequence = -1;
|
private int $structuredAppendSequence = -1;
|
||||||
|
/** @var \chillerlan\QRCode\Detector\FinderPattern[] */
|
||||||
|
private array $finderPatterns = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DecoderResult constructor.
|
* DecoderResult constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(iterable $properties = null){
|
public function __construct(?iterable $properties = null){
|
||||||
|
|
||||||
if(!empty($properties)){
|
if(!empty($properties)){
|
||||||
|
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ final class ReedSolomonDecoder{
|
|||||||
while($longerBlocksStartAt >= 0){
|
while($longerBlocksStartAt >= 0){
|
||||||
$numCodewords = count($result[$longerBlocksStartAt][1]);
|
$numCodewords = count($result[$longerBlocksStartAt][1]);
|
||||||
|
|
||||||
if($numCodewords == $shorterBlocksTotalCodewords){
|
if($numCodewords === $shorterBlocksTotalCodewords){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -256,7 +256,7 @@ final class AlignmentPatternFinder{
|
|||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($i == $maxI || $stateCount[1] > $maxCount){
|
if($i === $maxI || $stateCount[1] > $maxCount){
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -269,6 +269,7 @@ final class AlignmentPatternFinder{
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// phpcs:ignore
|
||||||
if((5 * abs(($stateCount[0] + $stateCount[1] + $stateCount[2]) - $originalStateCountTotal)) >= (2 * $originalStateCountTotal)){
|
if((5 * abs(($stateCount[0] + $stateCount[1] + $stateCount[2]) - $originalStateCountTotal)) >= (2 * $originalStateCountTotal)){
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ use const NAN;
|
|||||||
final class Detector{
|
final class Detector{
|
||||||
|
|
||||||
private BitMatrix $matrix;
|
private BitMatrix $matrix;
|
||||||
|
/** @var \chillerlan\QRCode\Detector\FinderPattern[] */
|
||||||
|
private array $finderPatterns = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Detector constructor.
|
* Detector constructor.
|
||||||
@@ -33,11 +35,20 @@ final class Detector{
|
|||||||
$this->matrix = (new Binarizer($source))->getBlackMatrix();
|
$this->matrix = (new Binarizer($source))->getBlackMatrix();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \chillerlan\QRCode\Detector\FinderPattern[]
|
||||||
|
*/
|
||||||
|
public function getFinderPatterns():array{
|
||||||
|
return $this->finderPatterns;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Detects a QR Code in an image.
|
* Detects a QR Code in an image.
|
||||||
*/
|
*/
|
||||||
public function detect():BitMatrix{
|
public function detect():BitMatrix{
|
||||||
[$bottomLeft, $topLeft, $topRight] = (new FinderPatternFinder($this->matrix))->find();
|
$this->finderPatterns = (new FinderPatternFinder($this->matrix))->find();
|
||||||
|
|
||||||
|
[$bottomLeft, $topLeft, $topRight] = $this->finderPatterns;
|
||||||
|
|
||||||
$moduleSize = $this->calculateModuleSize($topLeft, $topRight, $bottomLeft);
|
$moduleSize = $this->calculateModuleSize($topLeft, $topRight, $bottomLeft);
|
||||||
$dimension = $this->computeDimension($topLeft, $topRight, $bottomLeft, $moduleSize);
|
$dimension = $this->computeDimension($topLeft, $topRight, $bottomLeft, $moduleSize);
|
||||||
@@ -305,11 +316,11 @@ final class Detector{
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private function createTransform(
|
private function createTransform(
|
||||||
FinderPattern $nw,
|
FinderPattern $nw,
|
||||||
FinderPattern $ne,
|
FinderPattern $ne,
|
||||||
FinderPattern $sw,
|
FinderPattern $sw,
|
||||||
int $size,
|
int $size,
|
||||||
AlignmentPattern $ap = null
|
?AlignmentPattern $ap = null
|
||||||
):PerspectiveTransform{
|
):PerspectiveTransform{
|
||||||
$dimMinusThree = ($size - 3.5);
|
$dimMinusThree = ($size - 3.5);
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ final class FinderPattern extends ResultPoint{
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function __construct(float $posX, float $posY, float $estimatedModuleSize, int $count = null){
|
public function __construct(float $posX, float $posY, float $estimatedModuleSize, ?int $count = null){
|
||||||
parent::__construct($posX, $posY, $estimatedModuleSize);
|
parent::__construct($posX, $posY, $estimatedModuleSize);
|
||||||
|
|
||||||
$this->count = ($count ?? 1);
|
$this->count = ($count ?? 1);
|
||||||
|
|||||||
@@ -290,11 +290,13 @@ final class FinderPatternFinder{
|
|||||||
|
|
||||||
// Now also count down, right from center
|
// Now also count down, right from center
|
||||||
$i = 1;
|
$i = 1;
|
||||||
|
// phpcs:ignore
|
||||||
while(($centerI + $i) < $dimension && ($centerJ + $i) < $dimension && $this->matrix->check(($centerJ + $i), ($centerI + $i))){
|
while(($centerI + $i) < $dimension && ($centerJ + $i) < $dimension && $this->matrix->check(($centerJ + $i), ($centerI + $i))){
|
||||||
$stateCount[2]++;
|
$stateCount[2]++;
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// phpcs:ignore
|
||||||
while(($centerI + $i) < $dimension && ($centerJ + $i) < $dimension && !$this->matrix->check(($centerJ + $i), ($centerI + $i))){
|
while(($centerI + $i) < $dimension && ($centerJ + $i) < $dimension && !$this->matrix->check(($centerJ + $i), ($centerI + $i))){
|
||||||
$stateCount[3]++;
|
$stateCount[3]++;
|
||||||
$i++;
|
$i++;
|
||||||
@@ -304,6 +306,7 @@ final class FinderPatternFinder{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// phpcs:ignore
|
||||||
while(($centerI + $i) < $dimension && ($centerJ + $i) < $dimension && $this->matrix->check(($centerJ + $i), ($centerI + $i))){
|
while(($centerI + $i) < $dimension && ($centerJ + $i) < $dimension && $this->matrix->check(($centerJ + $i), ($centerI + $i))){
|
||||||
$stateCount[4]++;
|
$stateCount[4]++;
|
||||||
$i++;
|
$i++;
|
||||||
|
|||||||
@@ -152,15 +152,15 @@ final class GridSampler{
|
|||||||
|
|
||||||
// no need to try/catch as QRMatrix::set() will silently discard out of bounds values
|
// no need to try/catch as QRMatrix::set() will silently discard out of bounds values
|
||||||
# try{
|
# try{
|
||||||
for($x = 0; $x < $max; $x += 2){
|
for($x = 0; $x < $max; $x += 2){
|
||||||
// Black(-ish) pixel
|
// Black(-ish) pixel
|
||||||
$bits->set(
|
$bits->set(
|
||||||
intdiv($x, 2),
|
intdiv($x, 2),
|
||||||
$y,
|
$y,
|
||||||
$matrix->check((int)$this->points[$x], (int)$this->points[($x + 1)]),
|
$matrix->check((int)$this->points[$x], (int)$this->points[($x + 1)]),
|
||||||
QRMatrix::M_DATA
|
QRMatrix::M_DATA
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
# }
|
# }
|
||||||
# catch(\Throwable $aioobe){//ArrayIndexOutOfBoundsException
|
# catch(\Throwable $aioobe){//ArrayIndexOutOfBoundsException
|
||||||
// This feels wrong, but, sometimes if the finder patterns are misidentified, the resulting
|
// This feels wrong, but, sometimes if the finder patterns are misidentified, the resulting
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ final class PerspectiveTransform{
|
|||||||
/**
|
/**
|
||||||
* @return array[] [$xValues, $yValues]
|
* @return array[] [$xValues, $yValues]
|
||||||
*/
|
*/
|
||||||
public function transformPoints(array $xValues, array $yValues = null):array{
|
public function transformPoints(array $xValues, ?array $yValues = null):array{
|
||||||
$max = count($xValues);
|
$max = count($xValues);
|
||||||
|
|
||||||
if($yValues !== null){ // unused
|
if($yValues !== null){ // unused
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ class QREps extends QROutputAbstract{
|
|||||||
// CMYK
|
// CMYK
|
||||||
? '%f %f %f %f C'
|
? '%f %f %f %f C'
|
||||||
// RGB
|
// RGB
|
||||||
:'%f %f %f R';
|
: '%f %f %f R';
|
||||||
|
|
||||||
return sprintf($format, ...$values);
|
return sprintf($format, ...$values);
|
||||||
}
|
}
|
||||||
@@ -103,7 +103,7 @@ class QREps extends QROutputAbstract{
|
|||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
public function dump(string $file = null):string{
|
public function dump(?string $file = null):string{
|
||||||
[$width, $height] = $this->getOutputDimensions();
|
[$width, $height] = $this->getOutputDimensions();
|
||||||
|
|
||||||
$eps = [
|
$eps = [
|
||||||
|
|||||||
@@ -110,7 +110,10 @@ class QRFpdf extends QROutputAbstract{
|
|||||||
* Initializes an FPDF instance
|
* Initializes an FPDF instance
|
||||||
*/
|
*/
|
||||||
protected function initFPDF():FPDF{
|
protected function initFPDF():FPDF{
|
||||||
return new FPDF('P', $this->options->fpdfMeasureUnit, $this->getOutputDimensions());
|
$fpdf = new FPDF('P', $this->options->fpdfMeasureUnit, $this->getOutputDimensions());
|
||||||
|
$fpdf->AddPage();
|
||||||
|
|
||||||
|
return $fpdf;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -118,9 +121,8 @@ class QRFpdf extends QROutputAbstract{
|
|||||||
*
|
*
|
||||||
* @return string|\FPDF
|
* @return string|\FPDF
|
||||||
*/
|
*/
|
||||||
public function dump(string $file = null){
|
public function dump(?string $file = null, ?FPDF $fpdf = null){
|
||||||
$this->fpdf = $this->initFPDF();
|
$this->fpdf = ($fpdf ?? $this->initFPDF());
|
||||||
$this->fpdf->AddPage();
|
|
||||||
|
|
||||||
if($this::moduleValueIsValid($this->options->bgColor)){
|
if($this::moduleValueIsValid($this->options->bgColor)){
|
||||||
$bgColor = $this->prepareModuleValue($this->options->bgColor);
|
$bgColor = $this->prepareModuleValue($this->options->bgColor);
|
||||||
|
|||||||
@@ -179,7 +179,7 @@ class QRGdImage extends QROutputAbstract{
|
|||||||
* @phan-suppress PhanUndeclaredTypeReturnType, PhanTypeMismatchReturn
|
* @phan-suppress PhanUndeclaredTypeReturnType, PhanTypeMismatchReturn
|
||||||
* @throws \ErrorException
|
* @throws \ErrorException
|
||||||
*/
|
*/
|
||||||
public function dump(string $file = null){
|
public function dump(?string $file = null){
|
||||||
|
|
||||||
set_error_handler(function(int $errno, string $errstr):bool{
|
set_error_handler(function(int $errno, string $errstr):bool{
|
||||||
throw new ErrorException($errstr, $errno);
|
throw new ErrorException($errstr, $errno);
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ class QRImagick extends QROutputAbstract{
|
|||||||
*
|
*
|
||||||
* @return string|\Imagick
|
* @return string|\Imagick
|
||||||
*/
|
*/
|
||||||
public function dump(string $file = null){
|
public function dump(?string $file = null){
|
||||||
$this->setBgColor();
|
$this->setBgColor();
|
||||||
|
|
||||||
$this->imagick = $this->createImage();
|
$this->imagick = $this->createImage();
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ abstract class QRMarkup extends QROutputAbstract{
|
|||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
public function dump(string $file = null):string{
|
public function dump(?string $file = null):string{
|
||||||
$data = $this->createMarkup($file !== null);
|
$data = $this->createMarkup($file !== null);
|
||||||
|
|
||||||
$this->saveToFile($data, $file);
|
$this->saveToFile($data, $file);
|
||||||
|
|||||||
@@ -146,18 +146,18 @@ abstract class QROutputAbstract implements QROutputInterface{
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepares the value for the given input ()
|
* Prepares the value for the given input (return value depends on the output class)
|
||||||
*
|
*
|
||||||
* @param mixed $value
|
* @param mixed $value
|
||||||
*
|
*
|
||||||
* @return mixed|null return value depends on the output class
|
* @return mixed|null
|
||||||
*/
|
*/
|
||||||
abstract protected function prepareModuleValue($value);
|
abstract protected function prepareModuleValue($value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a default value for either dark or light modules
|
* Returns a default value for either dark or light modules (return value depends on the output class)
|
||||||
*
|
*
|
||||||
* @return mixed|null return value depends on the output class
|
* @return mixed|null
|
||||||
*/
|
*/
|
||||||
abstract protected function getDefaultModuleValue(bool $isDark);
|
abstract protected function getDefaultModuleValue(bool $isDark);
|
||||||
|
|
||||||
@@ -188,7 +188,7 @@ abstract class QROutputAbstract implements QROutputInterface{
|
|||||||
/**
|
/**
|
||||||
* Returns a base64 data URI for the given string and mime type
|
* Returns a base64 data URI for the given string and mime type
|
||||||
*/
|
*/
|
||||||
protected function toBase64DataURI(string $data, string $mime = null):string{
|
protected function toBase64DataURI(string $data, ?string $mime = null):string{
|
||||||
return sprintf('data:%s;base64,%s', ($mime ?? $this::MIME_TYPE), base64_encode($data));
|
return sprintf('data:%s;base64,%s', ($mime ?? $this::MIME_TYPE), base64_encode($data));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,7 +200,7 @@ abstract class QROutputAbstract implements QROutputInterface{
|
|||||||
*
|
*
|
||||||
* @throws \chillerlan\QRCode\Output\QRCodeOutputException
|
* @throws \chillerlan\QRCode\Output\QRCodeOutputException
|
||||||
*/
|
*/
|
||||||
protected function saveToFile(string $data, string $file = null):void{
|
protected function saveToFile(string $data, ?string $file = null):void{
|
||||||
|
|
||||||
if($file === null){
|
if($file === null){
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -221,6 +221,6 @@ interface QROutputInterface{
|
|||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function dump(string $file = null);
|
public function dump(?string $file = null);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ class QRString extends QROutputAbstract{
|
|||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
public function dump(string $file = null):string{
|
public function dump(?string $file = null):string{
|
||||||
|
|
||||||
switch($this->options->outputType){
|
switch($this->options->outputType){
|
||||||
case QROutputInterface::STRING_TEXT:
|
case QROutputInterface::STRING_TEXT:
|
||||||
@@ -101,7 +101,7 @@ class QRString extends QROutputAbstract{
|
|||||||
*
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
public static function ansi8(string $str, int $color, bool $background = null):string{
|
public static function ansi8(string $str, int $color, ?bool $background = null):string{
|
||||||
$color = max(0, min($color, 255));
|
$color = max(0, min($color, 255));
|
||||||
$background = ($background === true) ? 48 : 38;
|
$background = ($background === true) ? 48 : 38;
|
||||||
|
|
||||||
|
|||||||
@@ -25,9 +25,9 @@ class QRStringJSON extends QROutputAbstract{
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
* @throws \JsonException
|
* @throws \JsonException
|
||||||
*/
|
*/
|
||||||
public function dump(string $file = null):string{
|
public function dump(?string $file = null):string{
|
||||||
$matrix = $this->matrix->getMatrix($this->options->jsonAsBooleans);
|
$matrix = $this->matrix->getMatrix($this->options->jsonAsBooleans);
|
||||||
$data = json_encode($matrix, $this->options->jsonFlags);;
|
$data = json_encode($matrix, $this->options->jsonFlags);
|
||||||
|
|
||||||
$this->saveToFile($data, $file);
|
$this->saveToFile($data, $file);
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ class QRStringText extends QROutputAbstract{
|
|||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
public function dump(string $file = null):string{
|
public function dump(?string $file = null):string{
|
||||||
$lines = [];
|
$lines = [];
|
||||||
$linestart = $this->options->textLineStart;
|
$linestart = $this->options->textLineStart;
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@ class QRStringText extends QROutputAbstract{
|
|||||||
*
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
public static function ansi8(string $str, int $color, bool $background = null):string{
|
public static function ansi8(string $str, int $color, ?bool $background = null):string{
|
||||||
$color = max(0, min($color, 255));
|
$color = max(0, min($color, 255));
|
||||||
$background = ($background === true) ? 48 : 38;
|
$background = ($background === true) ? 48 : 38;
|
||||||
|
|
||||||
|
|||||||
17
vendor/chillerlan/php-qrcode/src/QRCode.php
vendored
17
vendor/chillerlan/php-qrcode/src/QRCode.php
vendored
@@ -182,7 +182,7 @@ class QRCode{
|
|||||||
*
|
*
|
||||||
* PHP8: accept iterable
|
* PHP8: accept iterable
|
||||||
*/
|
*/
|
||||||
public function __construct(SettingsContainerInterface $options = null){
|
public function __construct(?SettingsContainerInterface $options = null){
|
||||||
$this->setOptions(($options ?? new QROptions));
|
$this->setOptions(($options ?? new QROptions));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -202,9 +202,14 @@ class QRCode{
|
|||||||
/**
|
/**
|
||||||
* Renders a QR Code for the given $data and QROptions, saves $file optionally
|
* Renders a QR Code for the given $data and QROptions, saves $file optionally
|
||||||
*
|
*
|
||||||
|
* Note: it is possible to add several data segments before calling this method with a valid $data string
|
||||||
|
* which will result in a mixed-mode QR Code with the given parameter as last element.
|
||||||
|
*
|
||||||
|
* @see https://github.com/chillerlan/php-qrcode/issues/246
|
||||||
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function render(string $data = null, string $file = null){
|
public function render(?string $data = null, ?string $file = null){
|
||||||
|
|
||||||
if($data !== null){
|
if($data !== null){
|
||||||
/** @var \chillerlan\QRCode\Data\QRDataModeInterface $dataInterface */
|
/** @var \chillerlan\QRCode\Data\QRDataModeInterface $dataInterface */
|
||||||
@@ -226,7 +231,7 @@ class QRCode{
|
|||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function renderMatrix(QRMatrix $matrix, string $file = null){
|
public function renderMatrix(QRMatrix $matrix, ?string $file = null){
|
||||||
return $this->initOutputInterface($matrix)->dump($file ?? $this->options->cachefile);
|
return $this->initOutputInterface($matrix)->dump($file ?? $this->options->cachefile);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -298,7 +303,7 @@ class QRCode{
|
|||||||
throw new QRCodeOutputException('invalid output module');
|
throw new QRCodeOutputException('invalid output module');
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!in_array(QROutputInterface::class, class_implements($outputInterface))){
|
if(!in_array(QROutputInterface::class, class_implements($outputInterface), true)){
|
||||||
throw new QRCodeOutputException('output module does not implement QROutputInterface');
|
throw new QRCodeOutputException('output module does not implement QROutputInterface');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -457,8 +462,6 @@ class QRCode{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Reads a QR Code from a given file
|
* Reads a QR Code from a given file
|
||||||
*
|
|
||||||
* @noinspection PhpUndefinedMethodInspection
|
|
||||||
*/
|
*/
|
||||||
public function readFromFile(string $path):DecoderResult{
|
public function readFromFile(string $path):DecoderResult{
|
||||||
return $this->readFromSource($this->luminanceSourceFQN::fromFile($path, $this->options));
|
return $this->readFromSource($this->luminanceSourceFQN::fromFile($path, $this->options));
|
||||||
@@ -466,8 +469,6 @@ class QRCode{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Reads a QR Code from the given data blob
|
* Reads a QR Code from the given data blob
|
||||||
*
|
|
||||||
* @noinspection PhpUndefinedMethodInspection
|
|
||||||
*/
|
*/
|
||||||
public function readFromBlob(string $blob):DecoderResult{
|
public function readFromBlob(string $blob):DecoderResult{
|
||||||
return $this->readFromSource($this->luminanceSourceFQN::fromBlob($blob, $this->options));
|
return $this->readFromSource($this->luminanceSourceFQN::fromBlob($blob, $this->options));
|
||||||
|
|||||||
@@ -19,23 +19,23 @@ A container class for settings objects - decouple configuration logic from your
|
|||||||
[license]: https://github.com/chillerlan/php-settings-container/blob/main/LICENSE
|
[license]: https://github.com/chillerlan/php-settings-container/blob/main/LICENSE
|
||||||
[coverage-badge]: https://img.shields.io/codecov/c/github/chillerlan/php-settings-container.svg?logo=codecov
|
[coverage-badge]: https://img.shields.io/codecov/c/github/chillerlan/php-settings-container.svg?logo=codecov
|
||||||
[coverage]: https://codecov.io/github/chillerlan/php-settings-container
|
[coverage]: https://codecov.io/github/chillerlan/php-settings-container
|
||||||
[codacy-badge]: https://img.shields.io/codacy/grade/bd2467799e2943d2853ce3ebad5af490/v2.x-php7.4?logo=codacy
|
[codacy-badge]: https://img.shields.io/codacy/grade/bd2467799e2943d2853ce3ebad5af490/main?logo=codacy
|
||||||
[codacy]: https://app.codacy.com/gh/chillerlan/php-settings-container/dashboard?branch=v2.x-php7.4
|
[codacy]: https://www.codacy.com/gh/chillerlan/php-settings-container/dashboard?branch=main
|
||||||
[downloads-badge]: https://img.shields.io/packagist/dt/chillerlan/php-settings-container.svg?logo=packagist
|
[downloads-badge]: https://img.shields.io/packagist/dt/chillerlan/php-settings-container.svg?logo=packagist
|
||||||
[downloads]: https://packagist.org/packages/chillerlan/php-settings-container/stats
|
[downloads]: https://packagist.org/packages/chillerlan/php-settings-container/stats
|
||||||
[gh-action-badge]: https://github.com/chillerlan/php-settings-container/workflows/CI/badge.svg
|
[gh-action-badge]: https://img.shields.io/github/actions/workflow/status/chillerlan/php-settings-container/ci.yml?branch=main&logo=github
|
||||||
[gh-action]: https://github.com/chillerlan/php-settings-container/actions?query=workflow%3A%22CI%22
|
[gh-action]: https://github.com/chillerlan/php-settings-container/actions/workflows/ci.yml?query=branch%3Amain
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
**requires [composer](https://getcomposer.org)**
|
**requires [composer](https://getcomposer.org)**
|
||||||
|
|
||||||
*composer.json* (note: replace `dev-main` with a [version constraint](https://getcomposer.org/doc/articles/versions.md#writing-version-constraints), e.g. `^2.1` - see [releases](https://github.com/chillerlan/php-settings-container/releases) for valid versions)
|
*composer.json* (note: replace `dev-main` with a [version constraint](https://getcomposer.org/doc/articles/versions.md#writing-version-constraints), e.g. `^3.0` - see [releases](https://github.com/chillerlan/php-settings-container/releases) for valid versions)
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.4 || ^8.0",
|
"php": "^8.1",
|
||||||
"chillerlan/php-settings-container": "dev-main"
|
"chillerlan/php-settings-container": "dev-main"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -45,18 +45,14 @@ Profit!
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
The `SettingsContainerInterface` (wrapped in`SettingsContainerAbstract` ) provides plug-in functionality for immutable object properties and adds some fancy, like loading/saving JSON, arrays etc.
|
The `SettingsContainerInterface` (wrapped in`SettingsContainerAbstract`) provides plug-in functionality for immutable object properties and adds some fancy, like loading/saving JSON, arrays etc.
|
||||||
It takes an `iterable` as the only constructor argument and calls a method with the trait's name on invocation (`MyTrait::MyTrait()`) for each used trait.
|
It takes an `iterable` as the only constructor argument and calls a method with the trait's name on invocation (`MyTrait::MyTrait()`) for each used trait.
|
||||||
|
|
||||||
|
A PHPStan ruleset to exclude errors generated by accessing magic properties on `SettingsContainerInterface` can be found in `rules-magic-access.neon`.
|
||||||
|
|
||||||
|
|
||||||
### Simple usage
|
### Simple usage
|
||||||
```php
|
```php
|
||||||
class MyContainer extends SettingsContainerAbstract{
|
|
||||||
protected $foo;
|
|
||||||
protected $bar;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
Typed properties in PHP 7.4+:
|
|
||||||
```php
|
|
||||||
class MyContainer extends SettingsContainerAbstract{
|
class MyContainer extends SettingsContainerAbstract{
|
||||||
protected string $foo;
|
protected string $foo;
|
||||||
protected string $bar;
|
protected string $bar;
|
||||||
@@ -64,7 +60,7 @@ class MyContainer extends SettingsContainerAbstract{
|
|||||||
```
|
```
|
||||||
|
|
||||||
```php
|
```php
|
||||||
// use it just like a \stdClass
|
// use it just like a \stdClass (except the properties are fixed)
|
||||||
$container = new MyContainer;
|
$container = new MyContainer;
|
||||||
$container->foo = 'what';
|
$container->foo = 'what';
|
||||||
$container->bar = 'foo';
|
$container->bar = 'foo';
|
||||||
@@ -90,25 +86,36 @@ var_dump($container->nope); // -> null
|
|||||||
|
|
||||||
### Advanced usage
|
### Advanced usage
|
||||||
```php
|
```php
|
||||||
|
// from library 1
|
||||||
trait SomeOptions{
|
trait SomeOptions{
|
||||||
protected $foo;
|
protected string $foo;
|
||||||
protected $what;
|
protected string $what;
|
||||||
|
|
||||||
// this method will be called in SettingsContainerAbstract::construct()
|
// this method will be called in SettingsContainerAbstract::construct()
|
||||||
// after the properties have been set
|
// after the properties have been set
|
||||||
protected function SomeOptions(){
|
protected function SomeOptions():void{
|
||||||
// just some constructor stuff...
|
// just some constructor stuff...
|
||||||
$this->foo = strtoupper($this->foo);
|
$this->foo = strtoupper($this->foo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* special prefixed magic setters & getters
|
||||||
|
*/
|
||||||
|
|
||||||
// this method will be called from __set() when property $what is set
|
// this method will be called from __set() when property $what is set
|
||||||
protected function set_what(string $value){
|
protected function set_what(string $value):void{
|
||||||
$this->what = md5($value);
|
$this->what = md5($value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// this method is called on __get() for the property $what
|
||||||
|
protected function get_what():string{
|
||||||
|
return 'hash: '.$this->what;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// from library 2
|
||||||
trait MoreOptions{
|
trait MoreOptions{
|
||||||
protected $bar = 'whatever'; // provide default values
|
protected string $bar = 'whatever'; // provide default values
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -129,27 +136,31 @@ var_dump($container->foo); // -> WHATEVER (constructor ran strtoupper on the val
|
|||||||
var_dump($container->bar); // -> nothing
|
var_dump($container->bar); // -> nothing
|
||||||
|
|
||||||
$container->what = 'some value';
|
$container->what = 'some value';
|
||||||
var_dump($container->what); // -> md5 hash of "some value"
|
var_dump($container->what); // -> hash: 5946210c9e93ae37891dfe96c3e39614 (custom getter added "hash: ")
|
||||||
```
|
```
|
||||||
|
|
||||||
### API
|
### API
|
||||||
|
|
||||||
#### [`SettingsContainerAbstract`](https://github.com/chillerlan/php-settings-container/blob/main/src/SettingsContainerAbstract.php)
|
#### [`SettingsContainerAbstract`](https://github.com/chillerlan/php-settings-container/blob/main/src/SettingsContainerAbstract.php)
|
||||||
|
|
||||||
method | return | info
|
| method | return | info |
|
||||||
-------- | ---- | -----------
|
|--------------------------------------------|------------------------------|---------------------------------------------------------------------------------------------------------------------|
|
||||||
`__construct(iterable $properties = null)` | - | calls `construct()` internally after the properties have been set
|
| `__construct(iterable $properties = null)` | - | calls `construct()` internally after the properties have been set |
|
||||||
(protected) `construct()` | void | calls a method with trait name as replacement constructor for each used trait
|
| (protected) `construct()` | void | calls a method with trait name as replacement constructor for each used trait |
|
||||||
`__get(string $property)` | mixed | calls `$this->{'get_'.$property}()` if such a method exists
|
| `__get(string $property)` | mixed | calls `$this->{'get_'.$property}()` if such a method exists |
|
||||||
`__set(string $property, $value)` | void | calls `$this->{'set_'.$property}($value)` if such a method exists
|
| `__set(string $property, $value)` | void | calls `$this->{'set_'.$property}($value)` if such a method exists |
|
||||||
`__isset(string $property)` | bool |
|
| `__isset(string $property)` | bool | |
|
||||||
`__unset(string $property)` | void |
|
| `__unset(string $property)` | void | |
|
||||||
`__toString()` | string | a JSON string
|
| `__toString()` | string | a JSON string |
|
||||||
`toArray()` | array |
|
| `toArray()` | array | |
|
||||||
`fromIterable(iterable $properties)` | `SettingsContainerInterface` |
|
| `fromIterable(iterable $properties)` | `SettingsContainerInterface` | |
|
||||||
`toJSON(int $jsonOptions = null)` | string | accepts [JSON options constants](http://php.net/manual/json.constants.php)
|
| `toJSON(int $jsonOptions = null)` | string | accepts [JSON options constants](http://php.net/manual/json.constants.php) |
|
||||||
`fromJSON(string $json)` | `SettingsContainerInterface` |
|
| `fromJSON(string $json)` | `SettingsContainerInterface` | |
|
||||||
`jsonSerialize()` | mixed | implements the [`JsonSerializable`](https://www.php.net/manual/en/jsonserializable.jsonserialize.php) interface
|
| `jsonSerialize()` | mixed | implements the [`JsonSerializable`](https://www.php.net/manual/en/jsonserializable.jsonserialize.php) interface |
|
||||||
|
| `serialize()` | string | implements the [`Serializable`](https://www.php.net/manual/en/serializable.serialize.php) interface |
|
||||||
|
| `unserialize(string $data)` | void | implements the [`Serializable`](https://www.php.net/manual/en/serializable.unserialize.php) interface |
|
||||||
|
| `__serialize()` | array | implements the [`Serializable`](https://www.php.net/manual/en/language.oop5.magic.php#object.serialize) interface |
|
||||||
|
| `__unserialize(array $data)` | void | implements the [`Serializable`](https://www.php.net/manual/en/language.oop5.magic.php#object.unserialize) interface |
|
||||||
|
|
||||||
## Disclaimer
|
## Disclaimer
|
||||||
This might be either an utterly genius or completely stupid idea - you decide. However, i like it and it works.
|
This might be either an utterly genius or completely stupid idea - you decide. However, i like it and it works.
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "chillerlan/php-settings-container",
|
"name": "chillerlan/php-settings-container",
|
||||||
"description": "A container class for immutable settings objects. Not a DI container. PHP 7.4+",
|
"description": "A container class for immutable settings objects. Not a DI container.",
|
||||||
"homepage": "https://github.com/chillerlan/php-settings-container",
|
"homepage": "https://github.com/chillerlan/php-settings-container",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"minimum-stability": "stable",
|
"minimum-stability": "stable",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"php7", "helper", "container", "settings", "configuration"
|
"helper", "container", "settings", "configuration"
|
||||||
],
|
],
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@@ -20,28 +20,29 @@
|
|||||||
"source": "https://github.com/chillerlan/php-settings-container"
|
"source": "https://github.com/chillerlan/php-settings-container"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.4 || ^8.0",
|
"php": "^8.1",
|
||||||
"ext-json": "*"
|
"ext-json": "*"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phan/phan": "^5.4",
|
"phpmd/phpmd": "^2.15",
|
||||||
"phpmd/phpmd": "^2.13",
|
"phpstan/phpstan": "^1.11",
|
||||||
"phpunit/phpunit": "^9.6",
|
"phpstan/phpstan-deprecation-rules": "^1.2",
|
||||||
"phpcsstandards/php_codesniffer": "^3.8"
|
"phpunit/phpunit": "^10.5",
|
||||||
|
"squizlabs/php_codesniffer": "^3.10"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"chillerlan\\Settings\\": "src/"
|
"chillerlan\\Settings\\": "src"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"chillerlan\\SettingsTest\\": "tests/"
|
"chillerlan\\SettingsTest\\": "tests"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"phpunit": "@php vendor/bin/phpunit",
|
"phpunit": "@php vendor/bin/phpunit",
|
||||||
"phan": "@php vendor/bin/phan"
|
"phpstan": "@php vendor/bin/phpstan"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"lock": false,
|
"lock": false,
|
||||||
|
|||||||
4
vendor/chillerlan/php-settings-container/rules-magic-access.neon
vendored
Normal file
4
vendor/chillerlan/php-settings-container/rules-magic-access.neon
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
parameters:
|
||||||
|
ignoreErrors:
|
||||||
|
# yes, these are magic
|
||||||
|
- message: "#^Access to an undefined property chillerlan\\\\Settings\\\\SettingsContainerInterface\\:\\:\\$[\\w]+\\.$#"
|
||||||
@@ -7,20 +7,23 @@
|
|||||||
* @copyright 2018 Smiley
|
* @copyright 2018 Smiley
|
||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace chillerlan\Settings;
|
namespace chillerlan\Settings;
|
||||||
|
|
||||||
use ReflectionClass, ReflectionProperty;
|
use InvalidArgumentException, JsonException, ReflectionClass, ReflectionProperty;
|
||||||
|
use function array_keys, get_object_vars, is_object, json_decode, json_encode,
|
||||||
use function get_object_vars, json_decode, json_encode, method_exists, property_exists;
|
json_last_error_msg, method_exists, property_exists, serialize, unserialize;
|
||||||
use const JSON_THROW_ON_ERROR;
|
use const JSON_THROW_ON_ERROR;
|
||||||
|
|
||||||
abstract class SettingsContainerAbstract implements SettingsContainerInterface{
|
abstract class SettingsContainerAbstract implements SettingsContainerInterface{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SettingsContainerAbstract constructor.
|
* SettingsContainerAbstract constructor.
|
||||||
|
*
|
||||||
|
* @phpstan-param array<string, mixed> $properties
|
||||||
*/
|
*/
|
||||||
public function __construct(iterable $properties = null){
|
public function __construct(iterable|null $properties = null){
|
||||||
|
|
||||||
if(!empty($properties)){
|
if(!empty($properties)){
|
||||||
$this->fromIterable($properties);
|
$this->fromIterable($properties);
|
||||||
@@ -49,7 +52,7 @@ abstract class SettingsContainerAbstract implements SettingsContainerInterface{
|
|||||||
/**
|
/**
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
public function __get(string $property){
|
public function __get(string $property):mixed{
|
||||||
|
|
||||||
if(!property_exists($this, $property) || $this->isPrivate($property)){
|
if(!property_exists($this, $property) || $this->isPrivate($property)){
|
||||||
return null;
|
return null;
|
||||||
@@ -67,7 +70,7 @@ abstract class SettingsContainerAbstract implements SettingsContainerInterface{
|
|||||||
/**
|
/**
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
public function __set(string $property, $value):void{
|
public function __set(string $property, mixed $value):void{
|
||||||
|
|
||||||
if(!property_exists($this, $property) || $this->isPrivate($property)){
|
if(!property_exists($this, $property) || $this->isPrivate($property)){
|
||||||
return;
|
return;
|
||||||
@@ -120,13 +123,19 @@ abstract class SettingsContainerAbstract implements SettingsContainerInterface{
|
|||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
public function toArray():array{
|
public function toArray():array{
|
||||||
return get_object_vars($this);
|
$properties = [];
|
||||||
|
|
||||||
|
foreach(array_keys(get_object_vars($this)) as $key){
|
||||||
|
$properties[$key] = $this->__get($key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $properties;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
public function fromIterable(iterable $properties):SettingsContainerInterface{
|
public function fromIterable(iterable $properties):static{
|
||||||
|
|
||||||
foreach($properties as $key => $value){
|
foreach($properties as $key => $value){
|
||||||
$this->__set($key, $value);
|
$this->__set($key, $value);
|
||||||
@@ -138,14 +147,21 @@ abstract class SettingsContainerAbstract implements SettingsContainerInterface{
|
|||||||
/**
|
/**
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
public function toJSON(int $jsonOptions = null):string{
|
public function toJSON(int|null $jsonOptions = null):string{
|
||||||
return json_encode($this, ($jsonOptions ?? 0));
|
$json = json_encode($this, ($jsonOptions ?? 0));
|
||||||
|
|
||||||
|
if($json === false){
|
||||||
|
throw new JsonException(json_last_error_msg());
|
||||||
|
}
|
||||||
|
|
||||||
|
return $json;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
public function fromJSON(string $json):SettingsContainerInterface{
|
public function fromJSON(string $json):static{
|
||||||
|
/** @phpstan-var array<string, mixed> $data */
|
||||||
$data = json_decode($json, true, 512, JSON_THROW_ON_ERROR);
|
$data = json_decode($json, true, 512, JSON_THROW_ON_ERROR);
|
||||||
|
|
||||||
return $this->fromIterable($data);
|
return $this->fromIterable($data);
|
||||||
@@ -153,11 +169,84 @@ abstract class SettingsContainerAbstract implements SettingsContainerInterface{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
* @phan-suppress PhanUndeclaredClassAttribute
|
* @return array<string, mixed>
|
||||||
*/
|
*/
|
||||||
#[\ReturnTypeWillChange]
|
|
||||||
public function jsonSerialize():array{
|
public function jsonSerialize():array{
|
||||||
return $this->toArray();
|
return $this->toArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a serialized string representation of the object in its current state (except static/readonly properties)
|
||||||
|
*
|
||||||
|
* @inheritdoc
|
||||||
|
* @see \chillerlan\Settings\SettingsContainerInterface::toArray()
|
||||||
|
*/
|
||||||
|
public function serialize():string{
|
||||||
|
return serialize($this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restores the data (except static/readonly properties) from the given serialized object to the current instance
|
||||||
|
*
|
||||||
|
* @inheritdoc
|
||||||
|
* @see \chillerlan\Settings\SettingsContainerInterface::fromIterable()
|
||||||
|
*/
|
||||||
|
public function unserialize(string $data):void{
|
||||||
|
$obj = unserialize($data);
|
||||||
|
|
||||||
|
if($obj === false || !is_object($obj)){
|
||||||
|
throw new InvalidArgumentException('The given serialized string is invalid');
|
||||||
|
}
|
||||||
|
|
||||||
|
$reflection = new ReflectionClass($obj);
|
||||||
|
|
||||||
|
if(!$reflection->isInstance($this)){
|
||||||
|
throw new InvalidArgumentException('The unserialized object does not match the class of this container');
|
||||||
|
}
|
||||||
|
|
||||||
|
$properties = $reflection->getProperties(~(ReflectionProperty::IS_STATIC | ReflectionProperty::IS_READONLY));
|
||||||
|
|
||||||
|
foreach($properties as $reflectionProperty){
|
||||||
|
$this->{$reflectionProperty->name} = $reflectionProperty->getValue($obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a serialized string representation of the object in its current state (except static/readonly properties)
|
||||||
|
*
|
||||||
|
* @inheritdoc
|
||||||
|
* @see \chillerlan\Settings\SettingsContainerInterface::toArray()
|
||||||
|
*/
|
||||||
|
public function __serialize():array{
|
||||||
|
|
||||||
|
$properties = (new ReflectionClass($this))
|
||||||
|
->getProperties(~(ReflectionProperty::IS_STATIC | ReflectionProperty::IS_READONLY))
|
||||||
|
;
|
||||||
|
|
||||||
|
$data = [];
|
||||||
|
|
||||||
|
foreach($properties as $reflectionProperty){
|
||||||
|
$data[$reflectionProperty->name] = $reflectionProperty->getValue($this);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restores the data from the given array to the current instance
|
||||||
|
*
|
||||||
|
* @inheritdoc
|
||||||
|
* @see \chillerlan\Settings\SettingsContainerInterface::fromIterable()
|
||||||
|
*
|
||||||
|
* @param array<string, mixed> $data
|
||||||
|
*/
|
||||||
|
public function __unserialize(array $data):void{
|
||||||
|
|
||||||
|
foreach($data as $key => $value){
|
||||||
|
$this->{$key} = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,30 +7,28 @@
|
|||||||
* @copyright 2018 Smiley
|
* @copyright 2018 Smiley
|
||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace chillerlan\Settings;
|
namespace chillerlan\Settings;
|
||||||
|
|
||||||
use JsonSerializable;
|
use JsonSerializable, Serializable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* a generic container with magic getter and setter
|
* a generic container with magic getter and setter
|
||||||
*/
|
*/
|
||||||
interface SettingsContainerInterface extends JsonSerializable{
|
interface SettingsContainerInterface extends JsonSerializable, Serializable{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve the value of $property
|
* Retrieve the value of $property
|
||||||
*
|
*
|
||||||
* @return mixed|null
|
* @return mixed|null
|
||||||
*/
|
*/
|
||||||
public function __get(string $property);
|
public function __get(string $property):mixed;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set $property to $value while avoiding private and non-existing properties
|
* Set $property to $value while avoiding private and non-existing properties
|
||||||
*
|
|
||||||
* @param string $property
|
|
||||||
* @param mixed $value
|
|
||||||
*/
|
*/
|
||||||
public function __set(string $property, $value):void;
|
public function __set(string $property, mixed $value):void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if $property is set (aka. not null), excluding private properties
|
* Checks if $property is set (aka. not null), excluding private properties
|
||||||
@@ -43,32 +41,46 @@ interface SettingsContainerInterface extends JsonSerializable{
|
|||||||
public function __unset(string $property):void;
|
public function __unset(string $property):void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see SettingsContainerInterface::toJSON()
|
* @see \chillerlan\Settings\SettingsContainerInterface::toJSON()
|
||||||
*/
|
*/
|
||||||
public function __toString():string;
|
public function __toString():string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an array representation of the settings object
|
* Returns an array representation of the settings object
|
||||||
|
*
|
||||||
|
* The values will be run through the magic __get(), which may also call custom getters.
|
||||||
|
*
|
||||||
|
* @return array<string, mixed>
|
||||||
*/
|
*/
|
||||||
public function toArray():array;
|
public function toArray():array;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets properties from a given iterable
|
* Sets properties from a given iterable
|
||||||
|
*
|
||||||
|
* The values will be run through the magic __set(), which may also call custom setters.
|
||||||
|
*
|
||||||
|
* @phpstan-param array<string, mixed> $properties
|
||||||
*/
|
*/
|
||||||
public function fromIterable(iterable $properties):SettingsContainerInterface;
|
public function fromIterable(iterable $properties):static;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a JSON representation of the settings object
|
* Returns a JSON representation of the settings object
|
||||||
|
*
|
||||||
* @see \json_encode()
|
* @see \json_encode()
|
||||||
|
* @see \chillerlan\Settings\SettingsContainerInterface::toArray()
|
||||||
|
*
|
||||||
|
* @throws \JsonException
|
||||||
*/
|
*/
|
||||||
public function toJSON(int $jsonOptions = null):string;
|
public function toJSON(int|null $jsonOptions = null):string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets properties from a given JSON string
|
* Sets properties from a given JSON string
|
||||||
*
|
*
|
||||||
|
* @see \chillerlan\Settings\SettingsContainerInterface::fromIterable()
|
||||||
|
*
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
* @throws \JsonException
|
* @throws \JsonException
|
||||||
*/
|
*/
|
||||||
public function fromJSON(string $json):SettingsContainerInterface;
|
public function fromJSON(string $json):static;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
198
vendor/composer/ClassLoader.php
vendored
198
vendor/composer/ClassLoader.php
vendored
@@ -42,21 +42,76 @@ namespace Composer\Autoload;
|
|||||||
*/
|
*/
|
||||||
class ClassLoader
|
class ClassLoader
|
||||||
{
|
{
|
||||||
|
/** @var \Closure(string):void */
|
||||||
|
private static $includeFile;
|
||||||
|
|
||||||
|
/** @var string|null */
|
||||||
|
private $vendorDir;
|
||||||
|
|
||||||
// PSR-4
|
// PSR-4
|
||||||
|
/**
|
||||||
|
* @var array<string, array<string, int>>
|
||||||
|
*/
|
||||||
private $prefixLengthsPsr4 = array();
|
private $prefixLengthsPsr4 = array();
|
||||||
|
/**
|
||||||
|
* @var array<string, list<string>>
|
||||||
|
*/
|
||||||
private $prefixDirsPsr4 = array();
|
private $prefixDirsPsr4 = array();
|
||||||
|
/**
|
||||||
|
* @var list<string>
|
||||||
|
*/
|
||||||
private $fallbackDirsPsr4 = array();
|
private $fallbackDirsPsr4 = array();
|
||||||
|
|
||||||
// PSR-0
|
// PSR-0
|
||||||
|
/**
|
||||||
|
* List of PSR-0 prefixes
|
||||||
|
*
|
||||||
|
* Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
|
||||||
|
*
|
||||||
|
* @var array<string, array<string, list<string>>>
|
||||||
|
*/
|
||||||
private $prefixesPsr0 = array();
|
private $prefixesPsr0 = array();
|
||||||
|
/**
|
||||||
|
* @var list<string>
|
||||||
|
*/
|
||||||
private $fallbackDirsPsr0 = array();
|
private $fallbackDirsPsr0 = array();
|
||||||
|
|
||||||
|
/** @var bool */
|
||||||
private $useIncludePath = false;
|
private $useIncludePath = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array<string, string>
|
||||||
|
*/
|
||||||
private $classMap = array();
|
private $classMap = array();
|
||||||
|
|
||||||
|
/** @var bool */
|
||||||
private $classMapAuthoritative = false;
|
private $classMapAuthoritative = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array<string, bool>
|
||||||
|
*/
|
||||||
private $missingClasses = array();
|
private $missingClasses = array();
|
||||||
|
|
||||||
|
/** @var string|null */
|
||||||
private $apcuPrefix;
|
private $apcuPrefix;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array<string, self>
|
||||||
|
*/
|
||||||
|
private static $registeredLoaders = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string|null $vendorDir
|
||||||
|
*/
|
||||||
|
public function __construct($vendorDir = null)
|
||||||
|
{
|
||||||
|
$this->vendorDir = $vendorDir;
|
||||||
|
self::initializeIncludeClosure();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<string, list<string>>
|
||||||
|
*/
|
||||||
public function getPrefixes()
|
public function getPrefixes()
|
||||||
{
|
{
|
||||||
if (!empty($this->prefixesPsr0)) {
|
if (!empty($this->prefixesPsr0)) {
|
||||||
@@ -66,28 +121,42 @@ class ClassLoader
|
|||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<string, list<string>>
|
||||||
|
*/
|
||||||
public function getPrefixesPsr4()
|
public function getPrefixesPsr4()
|
||||||
{
|
{
|
||||||
return $this->prefixDirsPsr4;
|
return $this->prefixDirsPsr4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return list<string>
|
||||||
|
*/
|
||||||
public function getFallbackDirs()
|
public function getFallbackDirs()
|
||||||
{
|
{
|
||||||
return $this->fallbackDirsPsr0;
|
return $this->fallbackDirsPsr0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return list<string>
|
||||||
|
*/
|
||||||
public function getFallbackDirsPsr4()
|
public function getFallbackDirsPsr4()
|
||||||
{
|
{
|
||||||
return $this->fallbackDirsPsr4;
|
return $this->fallbackDirsPsr4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<string, string> Array of classname => path
|
||||||
|
*/
|
||||||
public function getClassMap()
|
public function getClassMap()
|
||||||
{
|
{
|
||||||
return $this->classMap;
|
return $this->classMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $classMap Class to filename map
|
* @param array<string, string> $classMap Class to filename map
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function addClassMap(array $classMap)
|
public function addClassMap(array $classMap)
|
||||||
{
|
{
|
||||||
@@ -102,22 +171,25 @@ class ClassLoader
|
|||||||
* Registers a set of PSR-0 directories for a given prefix, either
|
* Registers a set of PSR-0 directories for a given prefix, either
|
||||||
* appending or prepending to the ones previously set for this prefix.
|
* appending or prepending to the ones previously set for this prefix.
|
||||||
*
|
*
|
||||||
* @param string $prefix The prefix
|
* @param string $prefix The prefix
|
||||||
* @param array|string $paths The PSR-0 root directories
|
* @param list<string>|string $paths The PSR-0 root directories
|
||||||
* @param bool $prepend Whether to prepend the directories
|
* @param bool $prepend Whether to prepend the directories
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function add($prefix, $paths, $prepend = false)
|
public function add($prefix, $paths, $prepend = false)
|
||||||
{
|
{
|
||||||
|
$paths = (array) $paths;
|
||||||
if (!$prefix) {
|
if (!$prefix) {
|
||||||
if ($prepend) {
|
if ($prepend) {
|
||||||
$this->fallbackDirsPsr0 = array_merge(
|
$this->fallbackDirsPsr0 = array_merge(
|
||||||
(array) $paths,
|
$paths,
|
||||||
$this->fallbackDirsPsr0
|
$this->fallbackDirsPsr0
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$this->fallbackDirsPsr0 = array_merge(
|
$this->fallbackDirsPsr0 = array_merge(
|
||||||
$this->fallbackDirsPsr0,
|
$this->fallbackDirsPsr0,
|
||||||
(array) $paths
|
$paths
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,19 +198,19 @@ class ClassLoader
|
|||||||
|
|
||||||
$first = $prefix[0];
|
$first = $prefix[0];
|
||||||
if (!isset($this->prefixesPsr0[$first][$prefix])) {
|
if (!isset($this->prefixesPsr0[$first][$prefix])) {
|
||||||
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
|
$this->prefixesPsr0[$first][$prefix] = $paths;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ($prepend) {
|
if ($prepend) {
|
||||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||||
(array) $paths,
|
$paths,
|
||||||
$this->prefixesPsr0[$first][$prefix]
|
$this->prefixesPsr0[$first][$prefix]
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||||
$this->prefixesPsr0[$first][$prefix],
|
$this->prefixesPsr0[$first][$prefix],
|
||||||
(array) $paths
|
$paths
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -147,25 +219,28 @@ class ClassLoader
|
|||||||
* Registers a set of PSR-4 directories for a given namespace, either
|
* Registers a set of PSR-4 directories for a given namespace, either
|
||||||
* appending or prepending to the ones previously set for this namespace.
|
* appending or prepending to the ones previously set for this namespace.
|
||||||
*
|
*
|
||||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||||
* @param array|string $paths The PSR-4 base directories
|
* @param list<string>|string $paths The PSR-4 base directories
|
||||||
* @param bool $prepend Whether to prepend the directories
|
* @param bool $prepend Whether to prepend the directories
|
||||||
*
|
*
|
||||||
* @throws \InvalidArgumentException
|
* @throws \InvalidArgumentException
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function addPsr4($prefix, $paths, $prepend = false)
|
public function addPsr4($prefix, $paths, $prepend = false)
|
||||||
{
|
{
|
||||||
|
$paths = (array) $paths;
|
||||||
if (!$prefix) {
|
if (!$prefix) {
|
||||||
// Register directories for the root namespace.
|
// Register directories for the root namespace.
|
||||||
if ($prepend) {
|
if ($prepend) {
|
||||||
$this->fallbackDirsPsr4 = array_merge(
|
$this->fallbackDirsPsr4 = array_merge(
|
||||||
(array) $paths,
|
$paths,
|
||||||
$this->fallbackDirsPsr4
|
$this->fallbackDirsPsr4
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$this->fallbackDirsPsr4 = array_merge(
|
$this->fallbackDirsPsr4 = array_merge(
|
||||||
$this->fallbackDirsPsr4,
|
$this->fallbackDirsPsr4,
|
||||||
(array) $paths
|
$paths
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
|
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
|
||||||
@@ -175,18 +250,18 @@ class ClassLoader
|
|||||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||||
}
|
}
|
||||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
$this->prefixDirsPsr4[$prefix] = $paths;
|
||||||
} elseif ($prepend) {
|
} elseif ($prepend) {
|
||||||
// Prepend directories for an already registered namespace.
|
// Prepend directories for an already registered namespace.
|
||||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||||
(array) $paths,
|
$paths,
|
||||||
$this->prefixDirsPsr4[$prefix]
|
$this->prefixDirsPsr4[$prefix]
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
// Append directories for an already registered namespace.
|
// Append directories for an already registered namespace.
|
||||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||||
$this->prefixDirsPsr4[$prefix],
|
$this->prefixDirsPsr4[$prefix],
|
||||||
(array) $paths
|
$paths
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -195,8 +270,10 @@ class ClassLoader
|
|||||||
* Registers a set of PSR-0 directories for a given prefix,
|
* Registers a set of PSR-0 directories for a given prefix,
|
||||||
* replacing any others previously set for this prefix.
|
* replacing any others previously set for this prefix.
|
||||||
*
|
*
|
||||||
* @param string $prefix The prefix
|
* @param string $prefix The prefix
|
||||||
* @param array|string $paths The PSR-0 base directories
|
* @param list<string>|string $paths The PSR-0 base directories
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function set($prefix, $paths)
|
public function set($prefix, $paths)
|
||||||
{
|
{
|
||||||
@@ -211,10 +288,12 @@ class ClassLoader
|
|||||||
* Registers a set of PSR-4 directories for a given namespace,
|
* Registers a set of PSR-4 directories for a given namespace,
|
||||||
* replacing any others previously set for this namespace.
|
* replacing any others previously set for this namespace.
|
||||||
*
|
*
|
||||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||||
* @param array|string $paths The PSR-4 base directories
|
* @param list<string>|string $paths The PSR-4 base directories
|
||||||
*
|
*
|
||||||
* @throws \InvalidArgumentException
|
* @throws \InvalidArgumentException
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function setPsr4($prefix, $paths)
|
public function setPsr4($prefix, $paths)
|
||||||
{
|
{
|
||||||
@@ -234,6 +313,8 @@ class ClassLoader
|
|||||||
* Turns on searching the include path for class files.
|
* Turns on searching the include path for class files.
|
||||||
*
|
*
|
||||||
* @param bool $useIncludePath
|
* @param bool $useIncludePath
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function setUseIncludePath($useIncludePath)
|
public function setUseIncludePath($useIncludePath)
|
||||||
{
|
{
|
||||||
@@ -256,6 +337,8 @@ class ClassLoader
|
|||||||
* that have not been registered with the class map.
|
* that have not been registered with the class map.
|
||||||
*
|
*
|
||||||
* @param bool $classMapAuthoritative
|
* @param bool $classMapAuthoritative
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function setClassMapAuthoritative($classMapAuthoritative)
|
public function setClassMapAuthoritative($classMapAuthoritative)
|
||||||
{
|
{
|
||||||
@@ -276,6 +359,8 @@ class ClassLoader
|
|||||||
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
||||||
*
|
*
|
||||||
* @param string|null $apcuPrefix
|
* @param string|null $apcuPrefix
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function setApcuPrefix($apcuPrefix)
|
public function setApcuPrefix($apcuPrefix)
|
||||||
{
|
{
|
||||||
@@ -296,33 +381,55 @@ class ClassLoader
|
|||||||
* Registers this instance as an autoloader.
|
* Registers this instance as an autoloader.
|
||||||
*
|
*
|
||||||
* @param bool $prepend Whether to prepend the autoloader or not
|
* @param bool $prepend Whether to prepend the autoloader or not
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function register($prepend = false)
|
public function register($prepend = false)
|
||||||
{
|
{
|
||||||
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
||||||
|
|
||||||
|
if (null === $this->vendorDir) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($prepend) {
|
||||||
|
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
|
||||||
|
} else {
|
||||||
|
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||||
|
self::$registeredLoaders[$this->vendorDir] = $this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unregisters this instance as an autoloader.
|
* Unregisters this instance as an autoloader.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function unregister()
|
public function unregister()
|
||||||
{
|
{
|
||||||
spl_autoload_unregister(array($this, 'loadClass'));
|
spl_autoload_unregister(array($this, 'loadClass'));
|
||||||
|
|
||||||
|
if (null !== $this->vendorDir) {
|
||||||
|
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads the given class or interface.
|
* Loads the given class or interface.
|
||||||
*
|
*
|
||||||
* @param string $class The name of the class
|
* @param string $class The name of the class
|
||||||
* @return bool|null True if loaded, null otherwise
|
* @return true|null True if loaded, null otherwise
|
||||||
*/
|
*/
|
||||||
public function loadClass($class)
|
public function loadClass($class)
|
||||||
{
|
{
|
||||||
if ($file = $this->findFile($class)) {
|
if ($file = $this->findFile($class)) {
|
||||||
includeFile($file);
|
$includeFile = self::$includeFile;
|
||||||
|
$includeFile($file);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -367,6 +474,21 @@ class ClassLoader
|
|||||||
return $file;
|
return $file;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the currently registered loaders keyed by their corresponding vendor directories.
|
||||||
|
*
|
||||||
|
* @return array<string, self>
|
||||||
|
*/
|
||||||
|
public static function getRegisteredLoaders()
|
||||||
|
{
|
||||||
|
return self::$registeredLoaders;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $class
|
||||||
|
* @param string $ext
|
||||||
|
* @return string|false
|
||||||
|
*/
|
||||||
private function findFileWithExtension($class, $ext)
|
private function findFileWithExtension($class, $ext)
|
||||||
{
|
{
|
||||||
// PSR-4 lookup
|
// PSR-4 lookup
|
||||||
@@ -432,14 +554,26 @@ class ClassLoader
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Scope isolated include.
|
* @return void
|
||||||
*
|
*/
|
||||||
* Prevents access to $this/self from included files.
|
private static function initializeIncludeClosure()
|
||||||
*/
|
{
|
||||||
function includeFile($file)
|
if (self::$includeFile !== null) {
|
||||||
{
|
return;
|
||||||
include $file;
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scope isolated include.
|
||||||
|
*
|
||||||
|
* Prevents access to $this/self from included files.
|
||||||
|
*
|
||||||
|
* @param string $file
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
self::$includeFile = \Closure::bind(static function($file) {
|
||||||
|
include $file;
|
||||||
|
}, null, null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
671
vendor/composer/InstalledVersions.php
vendored
671
vendor/composer/InstalledVersions.php
vendored
@@ -1,346 +1,359 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of Composer.
|
||||||
|
*
|
||||||
|
* (c) Nils Adermann <naderman@naderman.de>
|
||||||
|
* Jordi Boggiano <j.boggiano@seld.be>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
namespace Composer;
|
namespace Composer;
|
||||||
|
|
||||||
|
use Composer\Autoload\ClassLoader;
|
||||||
use Composer\Semver\VersionParser;
|
use Composer\Semver\VersionParser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is copied in every Composer installed project and available to all
|
||||||
|
*
|
||||||
|
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||||
|
*
|
||||||
|
* To require its presence, you can require `composer-runtime-api ^2.0`
|
||||||
|
*
|
||||||
|
* @final
|
||||||
|
*/
|
||||||
class InstalledVersions
|
class InstalledVersions
|
||||||
{
|
{
|
||||||
private static $installed = array (
|
/**
|
||||||
'root' =>
|
* @var mixed[]|null
|
||||||
array (
|
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
|
||||||
'pretty_version' => '1.0.0+no-version-set',
|
*/
|
||||||
'version' => '1.0.0.0',
|
private static $installed;
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'reference' => NULL,
|
|
||||||
'name' => '__root__',
|
|
||||||
),
|
|
||||||
'versions' =>
|
|
||||||
array (
|
|
||||||
'__root__' =>
|
|
||||||
array (
|
|
||||||
'pretty_version' => '1.0.0+no-version-set',
|
|
||||||
'version' => '1.0.0.0',
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'reference' => NULL,
|
|
||||||
),
|
|
||||||
'chillerlan/php-qrcode' =>
|
|
||||||
array (
|
|
||||||
'pretty_version' => '5.0.1',
|
|
||||||
'version' => '5.0.1.0',
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'reference' => 'e81ed39ca3c94357aa021c7525fa9ffb451018d1',
|
|
||||||
),
|
|
||||||
'chillerlan/php-settings-container' =>
|
|
||||||
array (
|
|
||||||
'pretty_version' => '2.1.5',
|
|
||||||
'version' => '2.1.5.0',
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'reference' => 'f705310389264c3578fdd9ffb15aa2cd6d91772e',
|
|
||||||
),
|
|
||||||
'guzzlehttp/guzzle' =>
|
|
||||||
array (
|
|
||||||
'pretty_version' => '7.8.1',
|
|
||||||
'version' => '7.8.1.0',
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'reference' => '41042bc7ab002487b876a0683fc8dce04ddce104',
|
|
||||||
),
|
|
||||||
'guzzlehttp/promises' =>
|
|
||||||
array (
|
|
||||||
'pretty_version' => '2.0.2',
|
|
||||||
'version' => '2.0.2.0',
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'reference' => 'bbff78d96034045e58e13dedd6ad91b5d1253223',
|
|
||||||
),
|
|
||||||
'guzzlehttp/psr7' =>
|
|
||||||
array (
|
|
||||||
'pretty_version' => '2.6.2',
|
|
||||||
'version' => '2.6.2.0',
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'reference' => '45b30f99ac27b5ca93cb4831afe16285f57b8221',
|
|
||||||
),
|
|
||||||
'psr/http-client' =>
|
|
||||||
array (
|
|
||||||
'pretty_version' => '1.0.3',
|
|
||||||
'version' => '1.0.3.0',
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'reference' => 'bb5906edc1c324c9a05aa0873d40117941e5fa90',
|
|
||||||
),
|
|
||||||
'psr/http-client-implementation' =>
|
|
||||||
array (
|
|
||||||
'provided' =>
|
|
||||||
array (
|
|
||||||
0 => '1.0',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'psr/http-factory' =>
|
|
||||||
array (
|
|
||||||
'pretty_version' => '1.0.2',
|
|
||||||
'version' => '1.0.2.0',
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'reference' => 'e616d01114759c4c489f93b099585439f795fe35',
|
|
||||||
),
|
|
||||||
'psr/http-factory-implementation' =>
|
|
||||||
array (
|
|
||||||
'provided' =>
|
|
||||||
array (
|
|
||||||
0 => '1.0',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'psr/http-message' =>
|
|
||||||
array (
|
|
||||||
'pretty_version' => '2.0',
|
|
||||||
'version' => '2.0.0.0',
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'reference' => '402d35bcb92c70c026d1a6a9883f06b2ead23d71',
|
|
||||||
),
|
|
||||||
'psr/http-message-implementation' =>
|
|
||||||
array (
|
|
||||||
'provided' =>
|
|
||||||
array (
|
|
||||||
0 => '1.0',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'ralouphie/getallheaders' =>
|
|
||||||
array (
|
|
||||||
'pretty_version' => '3.0.3',
|
|
||||||
'version' => '3.0.3.0',
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'reference' => '120b605dfeb996808c31b6477290a714d356e822',
|
|
||||||
),
|
|
||||||
'symfony/deprecation-contracts' =>
|
|
||||||
array (
|
|
||||||
'pretty_version' => 'v2.5.2',
|
|
||||||
'version' => '2.5.2.0',
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66',
|
|
||||||
),
|
|
||||||
'twbs/bootstrap' =>
|
|
||||||
array (
|
|
||||||
'pretty_version' => 'v4.6.2',
|
|
||||||
'version' => '4.6.2.0',
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'reference' => 'e5643aaa89eb67327a5b4abe7db976f0ea276b70',
|
|
||||||
),
|
|
||||||
'twitter/bootstrap' =>
|
|
||||||
array (
|
|
||||||
'replaced' =>
|
|
||||||
array (
|
|
||||||
0 => 'v4.6.2',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bool|null
|
||||||
|
*/
|
||||||
|
private static $canGetVendors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array[]
|
||||||
|
* @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||||
|
*/
|
||||||
|
private static $installedByVendor = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||||
|
*
|
||||||
|
* @return string[]
|
||||||
|
* @psalm-return list<string>
|
||||||
|
*/
|
||||||
|
public static function getInstalledPackages()
|
||||||
|
{
|
||||||
|
$packages = array();
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
$packages[] = array_keys($installed['versions']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (1 === \count($packages)) {
|
||||||
|
return $packages[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a list of all package names with a specific type e.g. 'library'
|
||||||
|
*
|
||||||
|
* @param string $type
|
||||||
|
* @return string[]
|
||||||
|
* @psalm-return list<string>
|
||||||
|
*/
|
||||||
|
public static function getInstalledPackagesByType($type)
|
||||||
|
{
|
||||||
|
$packagesByType = array();
|
||||||
|
|
||||||
public static function getInstalledPackages()
|
foreach (self::getInstalled() as $installed) {
|
||||||
{
|
foreach ($installed['versions'] as $name => $package) {
|
||||||
return array_keys(self::$installed['versions']);
|
if (isset($package['type']) && $package['type'] === $type) {
|
||||||
}
|
$packagesByType[] = $name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $packagesByType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether the given package is installed
|
||||||
public static function isInstalled($packageName)
|
*
|
||||||
{
|
* This also returns true if the package name is provided or replaced by another package
|
||||||
return isset(self::$installed['versions'][$packageName]);
|
*
|
||||||
}
|
* @param string $packageName
|
||||||
|
* @param bool $includeDevRequirements
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||||
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
if (isset($installed['versions'][$packageName])) {
|
||||||
|
return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
/**
|
||||||
{
|
* Checks whether the given package satisfies a version constraint
|
||||||
$constraint = $parser->parseConstraints($constraint);
|
*
|
||||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||||
|
*
|
||||||
return $provided->matches($constraint);
|
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||||
}
|
*
|
||||||
|
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||||
|
* @param string $packageName
|
||||||
|
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||||
|
{
|
||||||
|
$constraint = $parser->parseConstraints((string) $constraint);
|
||||||
|
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||||
|
|
||||||
public static function getVersionRanges($packageName)
|
return $provided->matches($constraint);
|
||||||
{
|
}
|
||||||
if (!isset(self::$installed['versions'][$packageName])) {
|
|
||||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
/**
|
||||||
}
|
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||||
|
*
|
||||||
$ranges = array();
|
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||||
if (isset(self::$installed['versions'][$packageName]['pretty_version'])) {
|
* whether a given version of a package is installed, and not just whether it exists
|
||||||
$ranges[] = self::$installed['versions'][$packageName]['pretty_version'];
|
*
|
||||||
}
|
* @param string $packageName
|
||||||
if (array_key_exists('aliases', self::$installed['versions'][$packageName])) {
|
* @return string Version constraint usable with composer/semver
|
||||||
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']);
|
*/
|
||||||
}
|
public static function getVersionRanges($packageName)
|
||||||
if (array_key_exists('replaced', self::$installed['versions'][$packageName])) {
|
{
|
||||||
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']);
|
foreach (self::getInstalled() as $installed) {
|
||||||
}
|
if (!isset($installed['versions'][$packageName])) {
|
||||||
if (array_key_exists('provided', self::$installed['versions'][$packageName])) {
|
continue;
|
||||||
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']);
|
}
|
||||||
}
|
|
||||||
|
$ranges = array();
|
||||||
return implode(' || ', $ranges);
|
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||||
}
|
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||||
|
}
|
||||||
|
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||||
|
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||||
|
}
|
||||||
|
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||||
public static function getVersion($packageName)
|
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||||
{
|
}
|
||||||
if (!isset(self::$installed['versions'][$packageName])) {
|
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isset(self::$installed['versions'][$packageName]['version'])) {
|
return implode(' || ', $ranges);
|
||||||
return null;
|
}
|
||||||
}
|
|
||||||
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||||
return self::$installed['versions'][$packageName]['version'];
|
}
|
||||||
}
|
|
||||||
|
/**
|
||||||
|
* @param string $packageName
|
||||||
|
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||||
|
*/
|
||||||
|
public static function getVersion($packageName)
|
||||||
public static function getPrettyVersion($packageName)
|
{
|
||||||
{
|
foreach (self::getInstalled() as $installed) {
|
||||||
if (!isset(self::$installed['versions'][$packageName])) {
|
if (!isset($installed['versions'][$packageName])) {
|
||||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) {
|
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return self::$installed['versions'][$packageName]['pretty_version'];
|
return $installed['versions'][$packageName]['version'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
public static function getReference($packageName)
|
* @param string $packageName
|
||||||
{
|
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||||
if (!isset(self::$installed['versions'][$packageName])) {
|
*/
|
||||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
public static function getPrettyVersion($packageName)
|
||||||
}
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
if (!isset(self::$installed['versions'][$packageName]['reference'])) {
|
if (!isset($installed['versions'][$packageName])) {
|
||||||
return null;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
return self::$installed['versions'][$packageName]['reference'];
|
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||||
}
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $installed['versions'][$packageName]['pretty_version'];
|
||||||
|
}
|
||||||
|
|
||||||
public static function getRootPackage()
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||||
{
|
}
|
||||||
return self::$installed['root'];
|
|
||||||
}
|
/**
|
||||||
|
* @param string $packageName
|
||||||
|
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||||
|
*/
|
||||||
|
public static function getReference($packageName)
|
||||||
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
if (!isset($installed['versions'][$packageName])) {
|
||||||
public static function getRawData()
|
continue;
|
||||||
{
|
}
|
||||||
return self::$installed;
|
|
||||||
}
|
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $installed['versions'][$packageName]['reference'];
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $packageName
|
||||||
|
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||||
|
*/
|
||||||
|
public static function getInstallPath($packageName)
|
||||||
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
if (!isset($installed['versions'][$packageName])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
public static function reload($data)
|
|
||||||
{
|
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||||
self::$installed = $data;
|
}
|
||||||
}
|
|
||||||
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
* @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
|
||||||
|
*/
|
||||||
|
public static function getRootPackage()
|
||||||
|
{
|
||||||
|
$installed = self::getInstalled();
|
||||||
|
|
||||||
|
return $installed[0]['root'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the raw installed.php data for custom implementations
|
||||||
|
*
|
||||||
|
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||||
|
* @return array[]
|
||||||
|
* @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
|
||||||
|
*/
|
||||||
|
public static function getRawData()
|
||||||
|
{
|
||||||
|
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||||
|
|
||||||
|
if (null === self::$installed) {
|
||||||
|
// only require the installed.php file if this file is loaded from its dumped location,
|
||||||
|
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||||
|
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||||
|
self::$installed = include __DIR__ . '/installed.php';
|
||||||
|
} else {
|
||||||
|
self::$installed = array();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::$installed;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||||
|
*
|
||||||
|
* @return array[]
|
||||||
|
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||||
|
*/
|
||||||
|
public static function getAllRawData()
|
||||||
|
{
|
||||||
|
return self::getInstalled();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lets you reload the static array from another file
|
||||||
|
*
|
||||||
|
* This is only useful for complex integrations in which a project needs to use
|
||||||
|
* this class but then also needs to execute another project's autoloader in process,
|
||||||
|
* and wants to ensure both projects have access to their version of installed.php.
|
||||||
|
*
|
||||||
|
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||||
|
* the data it needs from this class, then call reload() with
|
||||||
|
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||||
|
* the project in which it runs can then also use this class safely, without
|
||||||
|
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||||
|
*
|
||||||
|
* @param array[] $data A vendor/composer/installed.php data set
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
|
||||||
|
*/
|
||||||
|
public static function reload($data)
|
||||||
|
{
|
||||||
|
self::$installed = $data;
|
||||||
|
self::$installedByVendor = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array[]
|
||||||
|
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||||
|
*/
|
||||||
|
private static function getInstalled()
|
||||||
|
{
|
||||||
|
if (null === self::$canGetVendors) {
|
||||||
|
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||||
|
}
|
||||||
|
|
||||||
|
$installed = array();
|
||||||
|
|
||||||
|
if (self::$canGetVendors) {
|
||||||
|
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||||
|
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||||
|
$installed[] = self::$installedByVendor[$vendorDir];
|
||||||
|
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||||
|
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
|
||||||
|
$required = require $vendorDir.'/composer/installed.php';
|
||||||
|
$installed[] = self::$installedByVendor[$vendorDir] = $required;
|
||||||
|
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||||
|
self::$installed = $installed[count($installed) - 1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null === self::$installed) {
|
||||||
|
// only require the installed.php file if this file is loaded from its dumped location,
|
||||||
|
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||||
|
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||||
|
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
|
||||||
|
$required = require __DIR__ . '/installed.php';
|
||||||
|
self::$installed = $required;
|
||||||
|
} else {
|
||||||
|
self::$installed = array();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (self::$installed !== array()) {
|
||||||
|
$installed[] = self::$installed;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $installed;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
941
vendor/composer/autoload_classmap.php
vendored
941
vendor/composer/autoload_classmap.php
vendored
@@ -2,9 +2,948 @@
|
|||||||
|
|
||||||
// autoload_classmap.php @generated by Composer
|
// autoload_classmap.php @generated by Composer
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
$vendorDir = dirname(__DIR__);
|
||||||
$baseDir = dirname($vendorDir);
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
|
'Com\\Tecnick\\Barcode\\Barcode' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Barcode.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Exception' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Exception.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Model' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Model.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Convert' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Convert.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\Codabar' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/Codabar.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\CodeNineThree' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/CodeNineThree.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\CodeOneOne' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/CodeOneOne.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\CodeOneTwoEight' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/CodeOneTwoEight.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\CodeOneTwoEight\\CodeOneTwoEightA' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/CodeOneTwoEight/CodeOneTwoEightA.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\CodeOneTwoEight\\CodeOneTwoEightB' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/CodeOneTwoEight/CodeOneTwoEightB.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\CodeOneTwoEight\\CodeOneTwoEightC' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/CodeOneTwoEight/CodeOneTwoEightC.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\CodeOneTwoEight\\Process' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/CodeOneTwoEight/Process.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\CodeThreeNine' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/CodeThreeNine.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\CodeThreeNineCheck' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/CodeThreeNineCheck.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\CodeThreeNineExt' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/CodeThreeNineExt.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\CodeThreeNineExtCheck' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/CodeThreeNineExtCheck.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\EanEight' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/EanEight.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\EanFive' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/EanFive.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\EanOneThree' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/EanOneThree.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\EanTwo' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/EanTwo.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\Imb' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/Imb.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\ImbPre' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/ImbPre.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\InterleavedTwoOfFive' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/InterleavedTwoOfFive.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\InterleavedTwoOfFiveCheck' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/InterleavedTwoOfFiveCheck.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\KlantIndex' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/KlantIndex.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\Msi' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/Msi.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\MsiCheck' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/MsiCheck.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\Pharma' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/Pharma.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\PharmaTwoTracks' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/PharmaTwoTracks.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\Planet' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/Planet.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\Postnet' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/Postnet.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\Raw' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/Raw.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\RoyalMailFourCc' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/RoyalMailFourCc.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\StandardTwoOfFive' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/StandardTwoOfFive.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\StandardTwoOfFiveCheck' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/StandardTwoOfFiveCheck.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\UpcA' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/UpcA.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Linear\\UpcE' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Linear/UpcE.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Raw' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Raw.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Aztec' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Aztec.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Aztec\\Bitstream' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Aztec/Bitstream.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Aztec\\Codeword' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Aztec/Codeword.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Aztec\\Data' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Aztec/Data.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Aztec\\Encode' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Aztec/Encode.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Aztec\\ErrorCorrection' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Aztec/ErrorCorrection.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Aztec\\Layers' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Aztec/Layers.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Datamatrix' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Datamatrix.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Datamatrix\\Data' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Datamatrix/Data.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Datamatrix\\Encode' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Datamatrix/Encode.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Datamatrix\\EncodeTxt' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Datamatrix/EncodeTxt.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Datamatrix\\ErrorCorrection' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Datamatrix/ErrorCorrection.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Datamatrix\\Modes' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Datamatrix/Modes.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Datamatrix\\Placement' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Datamatrix/Placement.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Datamatrix\\Steps' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Datamatrix/Steps.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\PdfFourOneSeven' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/PdfFourOneSeven.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\PdfFourOneSeven\\Compaction' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/PdfFourOneSeven/Compaction.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\PdfFourOneSeven\\Data' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/PdfFourOneSeven/Data.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\PdfFourOneSeven\\Sequence' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/PdfFourOneSeven/Sequence.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\QrCode' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/QrCode.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\QrCode\\ByteStream' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/QrCode/ByteStream.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\QrCode\\Data' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/QrCode/Data.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\QrCode\\Encode' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/QrCode/Encode.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\QrCode\\Encoder' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/QrCode/Encoder.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\QrCode\\EncodingMode' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/QrCode/EncodingMode.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\QrCode\\Estimate' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/QrCode/Estimate.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\QrCode\\Init' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/QrCode/Init.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\QrCode\\InputItem' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/QrCode/InputItem.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\QrCode\\Mask' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/QrCode/Mask.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\QrCode\\MaskNum' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/QrCode/MaskNum.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\QrCode\\Spec' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/QrCode/Spec.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\QrCode\\SpecRs' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/QrCode/SpecRs.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\QrCode\\Split' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/QrCode/Split.php',
|
||||||
|
'Com\\Tecnick\\Barcode\\Type\\Square\\Raw' => $vendorDir . '/tecnickcom/tc-lib-barcode/src/Type/Square/Raw.php',
|
||||||
|
'Com\\Tecnick\\Color\\Css' => $vendorDir . '/tecnickcom/tc-lib-color/src/Css.php',
|
||||||
|
'Com\\Tecnick\\Color\\Exception' => $vendorDir . '/tecnickcom/tc-lib-color/src/Exception.php',
|
||||||
|
'Com\\Tecnick\\Color\\Model' => $vendorDir . '/tecnickcom/tc-lib-color/src/Model.php',
|
||||||
|
'Com\\Tecnick\\Color\\Model\\Cmyk' => $vendorDir . '/tecnickcom/tc-lib-color/src/Model/Cmyk.php',
|
||||||
|
'Com\\Tecnick\\Color\\Model\\Gray' => $vendorDir . '/tecnickcom/tc-lib-color/src/Model/Gray.php',
|
||||||
|
'Com\\Tecnick\\Color\\Model\\Hsl' => $vendorDir . '/tecnickcom/tc-lib-color/src/Model/Hsl.php',
|
||||||
|
'Com\\Tecnick\\Color\\Model\\Rgb' => $vendorDir . '/tecnickcom/tc-lib-color/src/Model/Rgb.php',
|
||||||
|
'Com\\Tecnick\\Color\\Model\\Template' => $vendorDir . '/tecnickcom/tc-lib-color/src/Model/Template.php',
|
||||||
|
'Com\\Tecnick\\Color\\Pdf' => $vendorDir . '/tecnickcom/tc-lib-color/src/Pdf.php',
|
||||||
|
'Com\\Tecnick\\Color\\Spot' => $vendorDir . '/tecnickcom/tc-lib-color/src/Spot.php',
|
||||||
|
'Com\\Tecnick\\Color\\Web' => $vendorDir . '/tecnickcom/tc-lib-color/src/Web.php',
|
||||||
|
'Com\\Tecnick\\File\\Byte' => $vendorDir . '/tecnickcom/tc-lib-file/src/Byte.php',
|
||||||
|
'Com\\Tecnick\\File\\Cache' => $vendorDir . '/tecnickcom/tc-lib-file/src/Cache.php',
|
||||||
|
'Com\\Tecnick\\File\\Dir' => $vendorDir . '/tecnickcom/tc-lib-file/src/Dir.php',
|
||||||
|
'Com\\Tecnick\\File\\Exception' => $vendorDir . '/tecnickcom/tc-lib-file/src/Exception.php',
|
||||||
|
'Com\\Tecnick\\File\\File' => $vendorDir . '/tecnickcom/tc-lib-file/src/File.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Base' => $vendorDir . '/tecnickcom/tc-lib-pdf/src/Base.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\CSS' => $vendorDir . '/tecnickcom/tc-lib-pdf/src/CSS.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Cell' => $vendorDir . '/tecnickcom/tc-lib-pdf/src/Cell.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\ClassObjects' => $vendorDir . '/tecnickcom/tc-lib-pdf/src/ClassObjects.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Encrypt\\Compute' => $vendorDir . '/tecnickcom/tc-lib-pdf-encrypt/src/Compute.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Encrypt\\Data' => $vendorDir . '/tecnickcom/tc-lib-pdf-encrypt/src/Data.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Encrypt\\Encrypt' => $vendorDir . '/tecnickcom/tc-lib-pdf-encrypt/src/Encrypt.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Encrypt\\Exception' => $vendorDir . '/tecnickcom/tc-lib-pdf-encrypt/src/Exception.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Encrypt\\Output' => $vendorDir . '/tecnickcom/tc-lib-pdf-encrypt/src/Output.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Encrypt\\Type\\AES' => $vendorDir . '/tecnickcom/tc-lib-pdf-encrypt/src/Type/AES.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Encrypt\\Type\\AESSixteen' => $vendorDir . '/tecnickcom/tc-lib-pdf-encrypt/src/Type/AESSixteen.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Encrypt\\Type\\AESThirtytwo' => $vendorDir . '/tecnickcom/tc-lib-pdf-encrypt/src/Type/AESThirtytwo.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Encrypt\\Type\\AESnopad' => $vendorDir . '/tecnickcom/tc-lib-pdf-encrypt/src/Type/AESnopad.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Encrypt\\Type\\MDFiveSixteen' => $vendorDir . '/tecnickcom/tc-lib-pdf-encrypt/src/Type/MDFiveSixteen.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Encrypt\\Type\\RCFour' => $vendorDir . '/tecnickcom/tc-lib-pdf-encrypt/src/Type/RCFour.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Encrypt\\Type\\RCFourFive' => $vendorDir . '/tecnickcom/tc-lib-pdf-encrypt/src/Type/RCFourFive.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Encrypt\\Type\\RCFourSixteen' => $vendorDir . '/tecnickcom/tc-lib-pdf-encrypt/src/Type/RCFourSixteen.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Encrypt\\Type\\Seed' => $vendorDir . '/tecnickcom/tc-lib-pdf-encrypt/src/Type/Seed.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Exception' => $vendorDir . '/tecnickcom/tc-lib-pdf/src/Exception.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\Buffer' => $vendorDir . '/tecnickcom/tc-lib-pdf-font/src/Buffer.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\Core' => $vendorDir . '/tecnickcom/tc-lib-pdf-font/src/Core.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\Exception' => $vendorDir . '/tecnickcom/tc-lib-pdf-font/src/Exception.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\Font' => $vendorDir . '/tecnickcom/tc-lib-pdf-font/src/Font.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\Import' => $vendorDir . '/tecnickcom/tc-lib-pdf-font/src/Import.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\Import\\Core' => $vendorDir . '/tecnickcom/tc-lib-pdf-font/src/Import/Core.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\Import\\TrueType' => $vendorDir . '/tecnickcom/tc-lib-pdf-font/src/Import/TrueType.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\Import\\TypeOne' => $vendorDir . '/tecnickcom/tc-lib-pdf-font/src/Import/TypeOne.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\Load' => $vendorDir . '/tecnickcom/tc-lib-pdf-font/src/Load.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\OutFont' => $vendorDir . '/tecnickcom/tc-lib-pdf-font/src/OutFont.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\OutUtil' => $vendorDir . '/tecnickcom/tc-lib-pdf-font/src/OutUtil.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\Output' => $vendorDir . '/tecnickcom/tc-lib-pdf-font/src/Output.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\Stack' => $vendorDir . '/tecnickcom/tc-lib-pdf-font/src/Stack.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\Subset' => $vendorDir . '/tecnickcom/tc-lib-pdf-font/src/Subset.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\UniToCid' => $vendorDir . '/tecnickcom/tc-lib-pdf-font/src/UniToCid.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Graph\\Base' => $vendorDir . '/tecnickcom/tc-lib-pdf-graph/src/Base.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Graph\\Draw' => $vendorDir . '/tecnickcom/tc-lib-pdf-graph/src/Draw.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Graph\\Exception' => $vendorDir . '/tecnickcom/tc-lib-pdf-graph/src/Exception.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Graph\\Gradient' => $vendorDir . '/tecnickcom/tc-lib-pdf-graph/src/Gradient.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Graph\\Raw' => $vendorDir . '/tecnickcom/tc-lib-pdf-graph/src/Raw.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Graph\\Style' => $vendorDir . '/tecnickcom/tc-lib-pdf-graph/src/Style.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Graph\\Transform' => $vendorDir . '/tecnickcom/tc-lib-pdf-graph/src/Transform.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\HTML' => $vendorDir . '/tecnickcom/tc-lib-pdf/src/HTML.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Image\\Exception' => $vendorDir . '/tecnickcom/tc-lib-pdf-image/src/Exception.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Image\\Import' => $vendorDir . '/tecnickcom/tc-lib-pdf-image/src/Import.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Image\\Import\\ImageImportInterface' => $vendorDir . '/tecnickcom/tc-lib-pdf-image/src/Import/ImageImportInterface.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Image\\Import\\Jpeg' => $vendorDir . '/tecnickcom/tc-lib-pdf-image/src/Import/Jpeg.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Image\\Import\\Png' => $vendorDir . '/tecnickcom/tc-lib-pdf-image/src/Import/Png.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Image\\Output' => $vendorDir . '/tecnickcom/tc-lib-pdf-image/src/Output.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\JavaScript' => $vendorDir . '/tecnickcom/tc-lib-pdf/src/JavaScript.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\MetaInfo' => $vendorDir . '/tecnickcom/tc-lib-pdf/src/MetaInfo.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Output' => $vendorDir . '/tecnickcom/tc-lib-pdf/src/Output.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Page\\Box' => $vendorDir . '/tecnickcom/tc-lib-pdf-page/src/Box.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Page\\Exception' => $vendorDir . '/tecnickcom/tc-lib-pdf-page/src/Exception.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Page\\Format' => $vendorDir . '/tecnickcom/tc-lib-pdf-page/src/Format.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Page\\Mode' => $vendorDir . '/tecnickcom/tc-lib-pdf-page/src/Mode.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Page\\Page' => $vendorDir . '/tecnickcom/tc-lib-pdf-page/src/Page.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Page\\Region' => $vendorDir . '/tecnickcom/tc-lib-pdf-page/src/Region.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Page\\Settings' => $vendorDir . '/tecnickcom/tc-lib-pdf-page/src/Settings.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\SVG' => $vendorDir . '/tecnickcom/tc-lib-pdf/src/SVG.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Tcpdf' => $vendorDir . '/tecnickcom/tc-lib-pdf/src/Tcpdf.php',
|
||||||
|
'Com\\Tecnick\\Pdf\\Text' => $vendorDir . '/tecnickcom/tc-lib-pdf/src/Text.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Bidi' => $vendorDir . '/tecnickcom/tc-lib-unicode/src/Bidi.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Bidi\\Shaping' => $vendorDir . '/tecnickcom/tc-lib-unicode/src/Bidi/Shaping.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Bidi\\Shaping\\Arabic' => $vendorDir . '/tecnickcom/tc-lib-unicode/src/Bidi/Shaping/Arabic.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Bidi\\StepBase' => $vendorDir . '/tecnickcom/tc-lib-unicode/src/Bidi/StepBase.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Bidi\\StepI' => $vendorDir . '/tecnickcom/tc-lib-unicode/src/Bidi/StepI.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Bidi\\StepL' => $vendorDir . '/tecnickcom/tc-lib-unicode/src/Bidi/StepL.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Bidi\\StepN' => $vendorDir . '/tecnickcom/tc-lib-unicode/src/Bidi/StepN.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Bidi\\StepP' => $vendorDir . '/tecnickcom/tc-lib-unicode/src/Bidi/StepP.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Bidi\\StepW' => $vendorDir . '/tecnickcom/tc-lib-unicode/src/Bidi/StepW.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Bidi\\StepX' => $vendorDir . '/tecnickcom/tc-lib-unicode/src/Bidi/StepX.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Bidi\\StepXten' => $vendorDir . '/tecnickcom/tc-lib-unicode/src/Bidi/StepXten.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Convert' => $vendorDir . '/tecnickcom/tc-lib-unicode/src/Convert.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Convert\\Encoding' => $vendorDir . '/tecnickcom/tc-lib-unicode/src/Convert/Encoding.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Data\\Arabic' => $vendorDir . '/tecnickcom/tc-lib-unicode-data/src/Arabic.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Data\\Bracket' => $vendorDir . '/tecnickcom/tc-lib-unicode-data/src/Bracket.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Data\\Constant' => $vendorDir . '/tecnickcom/tc-lib-unicode-data/src/Constant.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Data\\Encoding' => $vendorDir . '/tecnickcom/tc-lib-unicode-data/src/Encoding.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Data\\Identity' => $vendorDir . '/tecnickcom/tc-lib-unicode-data/src/Identity.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Data\\Latin' => $vendorDir . '/tecnickcom/tc-lib-unicode-data/src/Latin.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Data\\Mirror' => $vendorDir . '/tecnickcom/tc-lib-unicode-data/src/Mirror.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Data\\Pattern' => $vendorDir . '/tecnickcom/tc-lib-unicode-data/src/Pattern.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Data\\Type' => $vendorDir . '/tecnickcom/tc-lib-unicode-data/src/Type.php',
|
||||||
|
'Com\\Tecnick\\Unicode\\Exception' => $vendorDir . '/tecnickcom/tc-lib-unicode/src/Exception.php',
|
||||||
|
'Complex\\Complex' => $vendorDir . '/markbaker/complex/classes/src/Complex.php',
|
||||||
|
'Complex\\Exception' => $vendorDir . '/markbaker/complex/classes/src/Exception.php',
|
||||||
|
'Complex\\Functions' => $vendorDir . '/markbaker/complex/classes/src/Functions.php',
|
||||||
|
'Complex\\Operations' => $vendorDir . '/markbaker/complex/classes/src/Operations.php',
|
||||||
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
||||||
|
'Composer\\Pcre\\MatchAllResult' => $vendorDir . '/composer/pcre/src/MatchAllResult.php',
|
||||||
|
'Composer\\Pcre\\MatchAllStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchAllStrictGroupsResult.php',
|
||||||
|
'Composer\\Pcre\\MatchAllWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchAllWithOffsetsResult.php',
|
||||||
|
'Composer\\Pcre\\MatchResult' => $vendorDir . '/composer/pcre/src/MatchResult.php',
|
||||||
|
'Composer\\Pcre\\MatchStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchStrictGroupsResult.php',
|
||||||
|
'Composer\\Pcre\\MatchWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchWithOffsetsResult.php',
|
||||||
|
'Composer\\Pcre\\PHPStan\\InvalidRegexPatternRule' => $vendorDir . '/composer/pcre/src/PHPStan/InvalidRegexPatternRule.php',
|
||||||
|
'Composer\\Pcre\\PHPStan\\PregMatchFlags' => $vendorDir . '/composer/pcre/src/PHPStan/PregMatchFlags.php',
|
||||||
|
'Composer\\Pcre\\PHPStan\\PregMatchParameterOutTypeExtension' => $vendorDir . '/composer/pcre/src/PHPStan/PregMatchParameterOutTypeExtension.php',
|
||||||
|
'Composer\\Pcre\\PHPStan\\PregMatchTypeSpecifyingExtension' => $vendorDir . '/composer/pcre/src/PHPStan/PregMatchTypeSpecifyingExtension.php',
|
||||||
|
'Composer\\Pcre\\PHPStan\\PregReplaceCallbackClosureTypeExtension' => $vendorDir . '/composer/pcre/src/PHPStan/PregReplaceCallbackClosureTypeExtension.php',
|
||||||
|
'Composer\\Pcre\\PHPStan\\UnsafeStrictGroupsCallRule' => $vendorDir . '/composer/pcre/src/PHPStan/UnsafeStrictGroupsCallRule.php',
|
||||||
|
'Composer\\Pcre\\PcreException' => $vendorDir . '/composer/pcre/src/PcreException.php',
|
||||||
|
'Composer\\Pcre\\Preg' => $vendorDir . '/composer/pcre/src/Preg.php',
|
||||||
|
'Composer\\Pcre\\Regex' => $vendorDir . '/composer/pcre/src/Regex.php',
|
||||||
|
'Composer\\Pcre\\ReplaceResult' => $vendorDir . '/composer/pcre/src/ReplaceResult.php',
|
||||||
|
'Composer\\Pcre\\UnexpectedNullMatchException' => $vendorDir . '/composer/pcre/src/UnexpectedNullMatchException.php',
|
||||||
|
'Datamatrix' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/datamatrix.php',
|
||||||
|
'GuzzleHttp\\BodySummarizer' => $vendorDir . '/guzzlehttp/guzzle/src/BodySummarizer.php',
|
||||||
|
'GuzzleHttp\\BodySummarizerInterface' => $vendorDir . '/guzzlehttp/guzzle/src/BodySummarizerInterface.php',
|
||||||
|
'GuzzleHttp\\Client' => $vendorDir . '/guzzlehttp/guzzle/src/Client.php',
|
||||||
|
'GuzzleHttp\\ClientInterface' => $vendorDir . '/guzzlehttp/guzzle/src/ClientInterface.php',
|
||||||
|
'GuzzleHttp\\ClientTrait' => $vendorDir . '/guzzlehttp/guzzle/src/ClientTrait.php',
|
||||||
|
'GuzzleHttp\\Cookie\\CookieJar' => $vendorDir . '/guzzlehttp/guzzle/src/Cookie/CookieJar.php',
|
||||||
|
'GuzzleHttp\\Cookie\\CookieJarInterface' => $vendorDir . '/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php',
|
||||||
|
'GuzzleHttp\\Cookie\\FileCookieJar' => $vendorDir . '/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php',
|
||||||
|
'GuzzleHttp\\Cookie\\SessionCookieJar' => $vendorDir . '/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php',
|
||||||
|
'GuzzleHttp\\Cookie\\SetCookie' => $vendorDir . '/guzzlehttp/guzzle/src/Cookie/SetCookie.php',
|
||||||
|
'GuzzleHttp\\Exception\\BadResponseException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/BadResponseException.php',
|
||||||
|
'GuzzleHttp\\Exception\\ClientException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/ClientException.php',
|
||||||
|
'GuzzleHttp\\Exception\\ConnectException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/ConnectException.php',
|
||||||
|
'GuzzleHttp\\Exception\\GuzzleException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/GuzzleException.php',
|
||||||
|
'GuzzleHttp\\Exception\\InvalidArgumentException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php',
|
||||||
|
'GuzzleHttp\\Exception\\RequestException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/RequestException.php',
|
||||||
|
'GuzzleHttp\\Exception\\ServerException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/ServerException.php',
|
||||||
|
'GuzzleHttp\\Exception\\TooManyRedirectsException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php',
|
||||||
|
'GuzzleHttp\\Exception\\TransferException' => $vendorDir . '/guzzlehttp/guzzle/src/Exception/TransferException.php',
|
||||||
|
'GuzzleHttp\\HandlerStack' => $vendorDir . '/guzzlehttp/guzzle/src/HandlerStack.php',
|
||||||
|
'GuzzleHttp\\Handler\\CurlFactory' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/CurlFactory.php',
|
||||||
|
'GuzzleHttp\\Handler\\CurlFactoryInterface' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php',
|
||||||
|
'GuzzleHttp\\Handler\\CurlHandler' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/CurlHandler.php',
|
||||||
|
'GuzzleHttp\\Handler\\CurlMultiHandler' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php',
|
||||||
|
'GuzzleHttp\\Handler\\EasyHandle' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/EasyHandle.php',
|
||||||
|
'GuzzleHttp\\Handler\\HeaderProcessor' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/HeaderProcessor.php',
|
||||||
|
'GuzzleHttp\\Handler\\MockHandler' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/MockHandler.php',
|
||||||
|
'GuzzleHttp\\Handler\\Proxy' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/Proxy.php',
|
||||||
|
'GuzzleHttp\\Handler\\StreamHandler' => $vendorDir . '/guzzlehttp/guzzle/src/Handler/StreamHandler.php',
|
||||||
|
'GuzzleHttp\\MessageFormatter' => $vendorDir . '/guzzlehttp/guzzle/src/MessageFormatter.php',
|
||||||
|
'GuzzleHttp\\MessageFormatterInterface' => $vendorDir . '/guzzlehttp/guzzle/src/MessageFormatterInterface.php',
|
||||||
|
'GuzzleHttp\\Middleware' => $vendorDir . '/guzzlehttp/guzzle/src/Middleware.php',
|
||||||
|
'GuzzleHttp\\Pool' => $vendorDir . '/guzzlehttp/guzzle/src/Pool.php',
|
||||||
|
'GuzzleHttp\\PrepareBodyMiddleware' => $vendorDir . '/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php',
|
||||||
|
'GuzzleHttp\\Promise\\AggregateException' => $vendorDir . '/guzzlehttp/promises/src/AggregateException.php',
|
||||||
|
'GuzzleHttp\\Promise\\CancellationException' => $vendorDir . '/guzzlehttp/promises/src/CancellationException.php',
|
||||||
|
'GuzzleHttp\\Promise\\Coroutine' => $vendorDir . '/guzzlehttp/promises/src/Coroutine.php',
|
||||||
|
'GuzzleHttp\\Promise\\Create' => $vendorDir . '/guzzlehttp/promises/src/Create.php',
|
||||||
|
'GuzzleHttp\\Promise\\Each' => $vendorDir . '/guzzlehttp/promises/src/Each.php',
|
||||||
|
'GuzzleHttp\\Promise\\EachPromise' => $vendorDir . '/guzzlehttp/promises/src/EachPromise.php',
|
||||||
|
'GuzzleHttp\\Promise\\FulfilledPromise' => $vendorDir . '/guzzlehttp/promises/src/FulfilledPromise.php',
|
||||||
|
'GuzzleHttp\\Promise\\Is' => $vendorDir . '/guzzlehttp/promises/src/Is.php',
|
||||||
|
'GuzzleHttp\\Promise\\Promise' => $vendorDir . '/guzzlehttp/promises/src/Promise.php',
|
||||||
|
'GuzzleHttp\\Promise\\PromiseInterface' => $vendorDir . '/guzzlehttp/promises/src/PromiseInterface.php',
|
||||||
|
'GuzzleHttp\\Promise\\PromisorInterface' => $vendorDir . '/guzzlehttp/promises/src/PromisorInterface.php',
|
||||||
|
'GuzzleHttp\\Promise\\RejectedPromise' => $vendorDir . '/guzzlehttp/promises/src/RejectedPromise.php',
|
||||||
|
'GuzzleHttp\\Promise\\RejectionException' => $vendorDir . '/guzzlehttp/promises/src/RejectionException.php',
|
||||||
|
'GuzzleHttp\\Promise\\TaskQueue' => $vendorDir . '/guzzlehttp/promises/src/TaskQueue.php',
|
||||||
|
'GuzzleHttp\\Promise\\TaskQueueInterface' => $vendorDir . '/guzzlehttp/promises/src/TaskQueueInterface.php',
|
||||||
|
'GuzzleHttp\\Promise\\Utils' => $vendorDir . '/guzzlehttp/promises/src/Utils.php',
|
||||||
|
'GuzzleHttp\\Psr7\\AppendStream' => $vendorDir . '/guzzlehttp/psr7/src/AppendStream.php',
|
||||||
|
'GuzzleHttp\\Psr7\\BufferStream' => $vendorDir . '/guzzlehttp/psr7/src/BufferStream.php',
|
||||||
|
'GuzzleHttp\\Psr7\\CachingStream' => $vendorDir . '/guzzlehttp/psr7/src/CachingStream.php',
|
||||||
|
'GuzzleHttp\\Psr7\\DroppingStream' => $vendorDir . '/guzzlehttp/psr7/src/DroppingStream.php',
|
||||||
|
'GuzzleHttp\\Psr7\\Exception\\MalformedUriException' => $vendorDir . '/guzzlehttp/psr7/src/Exception/MalformedUriException.php',
|
||||||
|
'GuzzleHttp\\Psr7\\FnStream' => $vendorDir . '/guzzlehttp/psr7/src/FnStream.php',
|
||||||
|
'GuzzleHttp\\Psr7\\Header' => $vendorDir . '/guzzlehttp/psr7/src/Header.php',
|
||||||
|
'GuzzleHttp\\Psr7\\HttpFactory' => $vendorDir . '/guzzlehttp/psr7/src/HttpFactory.php',
|
||||||
|
'GuzzleHttp\\Psr7\\InflateStream' => $vendorDir . '/guzzlehttp/psr7/src/InflateStream.php',
|
||||||
|
'GuzzleHttp\\Psr7\\LazyOpenStream' => $vendorDir . '/guzzlehttp/psr7/src/LazyOpenStream.php',
|
||||||
|
'GuzzleHttp\\Psr7\\LimitStream' => $vendorDir . '/guzzlehttp/psr7/src/LimitStream.php',
|
||||||
|
'GuzzleHttp\\Psr7\\Message' => $vendorDir . '/guzzlehttp/psr7/src/Message.php',
|
||||||
|
'GuzzleHttp\\Psr7\\MessageTrait' => $vendorDir . '/guzzlehttp/psr7/src/MessageTrait.php',
|
||||||
|
'GuzzleHttp\\Psr7\\MimeType' => $vendorDir . '/guzzlehttp/psr7/src/MimeType.php',
|
||||||
|
'GuzzleHttp\\Psr7\\MultipartStream' => $vendorDir . '/guzzlehttp/psr7/src/MultipartStream.php',
|
||||||
|
'GuzzleHttp\\Psr7\\NoSeekStream' => $vendorDir . '/guzzlehttp/psr7/src/NoSeekStream.php',
|
||||||
|
'GuzzleHttp\\Psr7\\PumpStream' => $vendorDir . '/guzzlehttp/psr7/src/PumpStream.php',
|
||||||
|
'GuzzleHttp\\Psr7\\Query' => $vendorDir . '/guzzlehttp/psr7/src/Query.php',
|
||||||
|
'GuzzleHttp\\Psr7\\Request' => $vendorDir . '/guzzlehttp/psr7/src/Request.php',
|
||||||
|
'GuzzleHttp\\Psr7\\Response' => $vendorDir . '/guzzlehttp/psr7/src/Response.php',
|
||||||
|
'GuzzleHttp\\Psr7\\Rfc7230' => $vendorDir . '/guzzlehttp/psr7/src/Rfc7230.php',
|
||||||
|
'GuzzleHttp\\Psr7\\ServerRequest' => $vendorDir . '/guzzlehttp/psr7/src/ServerRequest.php',
|
||||||
|
'GuzzleHttp\\Psr7\\Stream' => $vendorDir . '/guzzlehttp/psr7/src/Stream.php',
|
||||||
|
'GuzzleHttp\\Psr7\\StreamDecoratorTrait' => $vendorDir . '/guzzlehttp/psr7/src/StreamDecoratorTrait.php',
|
||||||
|
'GuzzleHttp\\Psr7\\StreamWrapper' => $vendorDir . '/guzzlehttp/psr7/src/StreamWrapper.php',
|
||||||
|
'GuzzleHttp\\Psr7\\UploadedFile' => $vendorDir . '/guzzlehttp/psr7/src/UploadedFile.php',
|
||||||
|
'GuzzleHttp\\Psr7\\Uri' => $vendorDir . '/guzzlehttp/psr7/src/Uri.php',
|
||||||
|
'GuzzleHttp\\Psr7\\UriComparator' => $vendorDir . '/guzzlehttp/psr7/src/UriComparator.php',
|
||||||
|
'GuzzleHttp\\Psr7\\UriNormalizer' => $vendorDir . '/guzzlehttp/psr7/src/UriNormalizer.php',
|
||||||
|
'GuzzleHttp\\Psr7\\UriResolver' => $vendorDir . '/guzzlehttp/psr7/src/UriResolver.php',
|
||||||
|
'GuzzleHttp\\Psr7\\Utils' => $vendorDir . '/guzzlehttp/psr7/src/Utils.php',
|
||||||
|
'GuzzleHttp\\RedirectMiddleware' => $vendorDir . '/guzzlehttp/guzzle/src/RedirectMiddleware.php',
|
||||||
|
'GuzzleHttp\\RequestOptions' => $vendorDir . '/guzzlehttp/guzzle/src/RequestOptions.php',
|
||||||
|
'GuzzleHttp\\RetryMiddleware' => $vendorDir . '/guzzlehttp/guzzle/src/RetryMiddleware.php',
|
||||||
|
'GuzzleHttp\\TransferStats' => $vendorDir . '/guzzlehttp/guzzle/src/TransferStats.php',
|
||||||
|
'GuzzleHttp\\Utils' => $vendorDir . '/guzzlehttp/guzzle/src/Utils.php',
|
||||||
|
'Matrix\\Builder' => $vendorDir . '/markbaker/matrix/classes/src/Builder.php',
|
||||||
|
'Matrix\\Decomposition\\Decomposition' => $vendorDir . '/markbaker/matrix/classes/src/Decomposition/Decomposition.php',
|
||||||
|
'Matrix\\Decomposition\\LU' => $vendorDir . '/markbaker/matrix/classes/src/Decomposition/LU.php',
|
||||||
|
'Matrix\\Decomposition\\QR' => $vendorDir . '/markbaker/matrix/classes/src/Decomposition/QR.php',
|
||||||
|
'Matrix\\Div0Exception' => $vendorDir . '/markbaker/matrix/classes/src/Div0Exception.php',
|
||||||
|
'Matrix\\Exception' => $vendorDir . '/markbaker/matrix/classes/src/Exception.php',
|
||||||
|
'Matrix\\Functions' => $vendorDir . '/markbaker/matrix/classes/src/Functions.php',
|
||||||
|
'Matrix\\Matrix' => $vendorDir . '/markbaker/matrix/classes/src/Matrix.php',
|
||||||
|
'Matrix\\Operations' => $vendorDir . '/markbaker/matrix/classes/src/Operations.php',
|
||||||
|
'Matrix\\Operators\\Addition' => $vendorDir . '/markbaker/matrix/classes/src/Operators/Addition.php',
|
||||||
|
'Matrix\\Operators\\DirectSum' => $vendorDir . '/markbaker/matrix/classes/src/Operators/DirectSum.php',
|
||||||
|
'Matrix\\Operators\\Division' => $vendorDir . '/markbaker/matrix/classes/src/Operators/Division.php',
|
||||||
|
'Matrix\\Operators\\Multiplication' => $vendorDir . '/markbaker/matrix/classes/src/Operators/Multiplication.php',
|
||||||
|
'Matrix\\Operators\\Operator' => $vendorDir . '/markbaker/matrix/classes/src/Operators/Operator.php',
|
||||||
|
'Matrix\\Operators\\Subtraction' => $vendorDir . '/markbaker/matrix/classes/src/Operators/Subtraction.php',
|
||||||
|
'PDF417' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/pdf417.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\ArrayEnabled' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/ArrayEnabled.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\BinaryComparison' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/BinaryComparison.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Calculation' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Calculation.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\CalculationBase' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/CalculationBase.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\CalculationLocale' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/CalculationLocale.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Category' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Category.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Database\\DAverage' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Database/DAverage.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Database\\DCount' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Database/DCount.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Database\\DCountA' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Database/DCountA.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Database\\DGet' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Database/DGet.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Database\\DMax' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Database/DMax.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Database\\DMin' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Database/DMin.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Database\\DProduct' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Database/DProduct.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Database\\DStDev' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Database/DStDev.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Database\\DStDevP' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Database/DStDevP.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Database\\DSum' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Database/DSum.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Database\\DVar' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Database/DVar.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Database\\DVarP' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Database/DVarP.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Database\\DatabaseAbstract' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Database/DatabaseAbstract.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\Constants' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Constants.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\Current' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Current.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\Date' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Date.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\DateParts' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/DateParts.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\DateValue' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/DateValue.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\Days' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Days.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\Days360' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Days360.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\Difference' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Difference.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\Helpers' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Helpers.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\Month' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Month.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\NetworkDays' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/NetworkDays.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\Time' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Time.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\TimeParts' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/TimeParts.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\TimeValue' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/TimeValue.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\Week' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Week.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\WorkDay' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/WorkDay.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\DateTimeExcel\\YearFrac' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/YearFrac.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engine\\ArrayArgumentHelper' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/ArrayArgumentHelper.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engine\\ArrayArgumentProcessor' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/ArrayArgumentProcessor.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engine\\BranchPruner' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/BranchPruner.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engine\\CyclicReferenceStack' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/CyclicReferenceStack.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engine\\FormattedNumber' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/FormattedNumber.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engine\\Logger' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/Logger.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engine\\Operands\\Operand' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/Operands/Operand.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engine\\Operands\\StructuredReference' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/Operands/StructuredReference.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\BesselI' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/BesselI.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\BesselJ' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/BesselJ.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\BesselK' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/BesselK.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\BesselY' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/BesselY.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\BitWise' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/BitWise.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\Compare' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/Compare.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\Complex' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/Complex.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\ComplexFunctions' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ComplexFunctions.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\ComplexOperations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ComplexOperations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\Constants' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/Constants.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\ConvertBase' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ConvertBase.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\ConvertBinary' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ConvertBinary.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\ConvertDecimal' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ConvertDecimal.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\ConvertHex' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ConvertHex.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\ConvertOctal' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ConvertOctal.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\ConvertUOM' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ConvertUOM.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\EngineeringValidations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/EngineeringValidations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\Erf' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/Erf.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering\\ErfC' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ErfC.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Exception' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Exception.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\ExceptionHandler' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/ExceptionHandler.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\Amortization' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/Amortization.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\CashFlow\\CashFlowValidations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/CashFlow/CashFlowValidations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\CashFlow\\Constant\\Periodic' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/CashFlow/Constant/Periodic.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\CashFlow\\Constant\\Periodic\\Cumulative' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/CashFlow/Constant/Periodic/Cumulative.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\CashFlow\\Constant\\Periodic\\Interest' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/CashFlow/Constant/Periodic/Interest.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\CashFlow\\Constant\\Periodic\\InterestAndPrincipal' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/CashFlow/Constant/Periodic/InterestAndPrincipal.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\CashFlow\\Constant\\Periodic\\Payments' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/CashFlow/Constant/Periodic/Payments.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\CashFlow\\Single' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/CashFlow/Single.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\CashFlow\\Variable\\NonPeriodic' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/CashFlow/Variable/NonPeriodic.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\CashFlow\\Variable\\Periodic' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/CashFlow/Variable/Periodic.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\Constants' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/Constants.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\Coupons' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/Coupons.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\Depreciation' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/Depreciation.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\Dollar' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/Dollar.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\FinancialValidations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/FinancialValidations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\Helpers' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/Helpers.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\InterestRate' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/InterestRate.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\Securities\\AccruedInterest' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/Securities/AccruedInterest.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\Securities\\Price' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/Securities/Price.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\Securities\\Rates' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/Securities/Rates.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\Securities\\SecurityValidations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/Securities/SecurityValidations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\Securities\\Yields' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/Securities/Yields.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Financial\\TreasuryBill' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial/TreasuryBill.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\FormulaParser' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/FormulaParser.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\FormulaToken' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/FormulaToken.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\FunctionArray' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/FunctionArray.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Functions' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Functions.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Information\\ErrorValue' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Information/ErrorValue.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Information\\ExcelError' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Information/ExcelError.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Information\\Value' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Information/Value.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Internal\\ExcelArrayPseudoFunctions' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Internal/ExcelArrayPseudoFunctions.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Internal\\MakeMatrix' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Internal/MakeMatrix.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Internal\\WildcardMatch' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Internal/WildcardMatch.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Logical\\Boolean' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Logical/Boolean.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Logical\\Conditional' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Logical/Conditional.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Logical\\Operations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Logical/Operations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\Address' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/Address.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\ChooseRowsEtc' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/ChooseRowsEtc.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\ExcelMatch' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/ExcelMatch.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\Filter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/Filter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\Formula' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/Formula.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\HLookup' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/HLookup.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\Helpers' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/Helpers.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\Hstack' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/Hstack.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\Hyperlink' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/Hyperlink.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\Indirect' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/Indirect.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\Lookup' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/Lookup.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\LookupBase' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/LookupBase.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\LookupRefValidations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/LookupRefValidations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\Matrix' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/Matrix.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\Offset' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/Offset.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\RowColumnInformation' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/RowColumnInformation.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\Selection' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/Selection.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\Sort' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/Sort.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\TorowTocol' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/TorowTocol.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\Unique' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/Unique.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\VLookup' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/VLookup.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef\\Vstack' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/Vstack.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Absolute' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Absolute.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Angle' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Angle.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Arabic' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Arabic.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Base' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Base.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Ceiling' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Ceiling.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Combinations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Combinations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Exp' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Exp.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Factorial' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Factorial.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Floor' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Floor.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Gcd' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Gcd.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Helpers' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Helpers.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\IntClass' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/IntClass.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Lcm' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Lcm.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Logarithms' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Logarithms.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\MatrixFunctions' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/MatrixFunctions.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Operations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Operations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Random' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Random.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Roman' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Roman.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Round' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Round.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\SeriesSum' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/SeriesSum.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Sign' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Sign.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Sqrt' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Sqrt.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Subtotal' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Subtotal.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Sum' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Sum.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\SumSquares' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/SumSquares.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Trig\\Cosecant' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Trig/Cosecant.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Trig\\Cosine' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Trig/Cosine.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Trig\\Cotangent' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Trig/Cotangent.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Trig\\Secant' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Trig/Secant.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Trig\\Sine' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Trig/Sine.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Trig\\Tangent' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Trig/Tangent.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig\\Trunc' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Trunc.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\AggregateBase' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/AggregateBase.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Averages' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Averages.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Averages\\Mean' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Averages/Mean.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Conditional' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Conditional.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Confidence' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Confidence.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Counts' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Counts.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Deviations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Deviations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\Beta' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/Beta.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\Binomial' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/Binomial.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\ChiSquared' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/ChiSquared.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\DistributionValidations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/DistributionValidations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\Exponential' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/Exponential.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\F' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/F.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\Fisher' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/Fisher.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\Gamma' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/Gamma.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\GammaBase' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/GammaBase.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\HyperGeometric' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/HyperGeometric.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\LogNormal' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/LogNormal.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\NewtonRaphson' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/NewtonRaphson.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\Normal' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/Normal.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\Poisson' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/Poisson.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\StandardNormal' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/StandardNormal.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\StudentT' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/StudentT.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\Weibull' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/Weibull.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\MaxMinBase' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/MaxMinBase.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Maximum' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Maximum.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Minimum' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Minimum.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Percentiles' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Percentiles.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Permutations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Permutations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Size' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Size.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\StandardDeviations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/StandardDeviations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Standardize' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Standardize.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\StatisticalValidations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/StatisticalValidations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Trends' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Trends.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\VarianceBase' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/VarianceBase.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Variances' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Variances.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\TextData\\CaseConvert' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/CaseConvert.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\TextData\\CharacterConvert' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/CharacterConvert.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\TextData\\Concatenate' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Concatenate.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\TextData\\Extract' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Extract.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\TextData\\Format' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Format.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\TextData\\Helpers' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Helpers.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\TextData\\Replace' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Replace.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\TextData\\Search' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Search.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\TextData\\Text' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Text.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\TextData\\Trim' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Trim.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Token\\Stack' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Token/Stack.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Calculation\\Web\\Service' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Web/Service.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\CellReferenceHelper' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/CellReferenceHelper.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\AddressHelper' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/AddressHelper.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\AddressRange' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/AddressRange.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\AdvancedValueBinder' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\Cell' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Cell.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\CellAddress' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/CellAddress.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\CellRange' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/CellRange.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\ColumnRange' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/ColumnRange.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\Coordinate' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Coordinate.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\DataType' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DataType.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\DataValidation' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DataValidation.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\DataValidator' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DataValidator.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\DefaultValueBinder' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DefaultValueBinder.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\Hyperlink' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Hyperlink.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\IValueBinder' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/IValueBinder.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\IgnoredErrors' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/IgnoredErrors.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\RowRange' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/RowRange.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Cell\\StringValueBinder' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/StringValueBinder.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\Axis' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Axis.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\AxisText' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/AxisText.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\Chart' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Chart.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\ChartColor' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/ChartColor.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/DataSeries.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\DataSeriesValues' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/DataSeriesValues.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\Exception' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Exception.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\GridLines' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/GridLines.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\Layout' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Layout.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\Legend' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Legend.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\PlotArea' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/PlotArea.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\Properties' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Properties.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\Renderer\\IRenderer' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/IRenderer.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\Renderer\\JpGraph' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/JpGraph.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\Renderer\\JpGraphRendererBase' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/JpGraphRendererBase.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\Renderer\\MtJpGraphRenderer' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/MtJpGraphRenderer.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\Title' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Title.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Chart\\TrendLine' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/TrendLine.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Collection\\Cells' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Collection/Cells.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Collection\\CellsFactory' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Collection/CellsFactory.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Collection\\Memory\\SimpleCache1' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Collection/Memory/SimpleCache1.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Collection\\Memory\\SimpleCache3' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Collection/Memory/SimpleCache3.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Comment' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Comment.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\DefinedName' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/DefinedName.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Document\\Properties' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Document/Properties.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Document\\Security' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Document/Security.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Exception' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Exception.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\HashTable' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/HashTable.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Helper\\Dimension' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Dimension.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Helper\\Downloader' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Downloader.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Helper\\Handler' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Handler.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Helper\\Html' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Html.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Helper\\Sample' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Sample.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Helper\\Size' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Size.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Helper\\TextGrid' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/TextGrid.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\IComparable' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/IComparable.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\IOFactory' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/IOFactory.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\NamedFormula' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/NamedFormula.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\NamedRange' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/NamedRange.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\BaseReader' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/BaseReader.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Csv' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Csv.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Csv\\Delimiter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Csv/Delimiter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\DefaultReadFilter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/DefaultReadFilter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Exception' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Exception.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Gnumeric' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Gnumeric.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Gnumeric\\PageSetup' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Gnumeric/PageSetup.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Gnumeric\\Properties' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Gnumeric/Properties.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Gnumeric\\Styles' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Gnumeric/Styles.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Html' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Html.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\IReadFilter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/IReadFilter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\IReader' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/IReader.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Ods' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Ods\\AutoFilter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods/AutoFilter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Ods\\BaseLoader' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods/BaseLoader.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Ods\\DefinedNames' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods/DefinedNames.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Ods\\FormulaTranslator' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods/FormulaTranslator.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Ods\\PageSettings' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods/PageSettings.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Ods\\Properties' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods/Properties.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Security\\XmlScanner' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Security/XmlScanner.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Slk' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Slk.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\XlsBase' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/XlsBase.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\Biff5' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/Biff5.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\Biff8' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/Biff8.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\Color' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/Color.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\Color\\BIFF5' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/Color/BIFF5.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\Color\\BIFF8' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/Color/BIFF8.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\Color\\BuiltIn' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/Color/BuiltIn.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\ConditionalFormatting' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/ConditionalFormatting.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\DataValidationHelper' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/DataValidationHelper.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\ErrorCode' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/ErrorCode.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\Escher' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/Escher.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\ListFunctions' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/ListFunctions.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\LoadSpreadsheet' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/LoadSpreadsheet.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\MD5' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/MD5.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\Mappings' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/Mappings.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\RC4' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/RC4.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\Style\\Border' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/Style/Border.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\Style\\CellAlignment' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/Style/CellAlignment.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\Style\\CellFont' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/Style/CellFont.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\Style\\FillPattern' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls/Style/FillPattern.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\AutoFilter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/AutoFilter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\BaseParserClass' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/BaseParserClass.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\Chart' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Chart.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\ColumnAndRowAttributes' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/ColumnAndRowAttributes.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\ConditionalStyles' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/ConditionalStyles.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\DataValidations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/DataValidations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\Hyperlinks' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Hyperlinks.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\Namespaces' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Namespaces.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\PageSetup' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/PageSetup.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\Properties' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Properties.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\SharedFormula' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/SharedFormula.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\SheetViewOptions' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/SheetViewOptions.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\SheetViews' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/SheetViews.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\Styles' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Styles.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\TableReader' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/TableReader.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\Theme' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Theme.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\WorkbookView' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/WorkbookView.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xml' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xml\\DataValidations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/DataValidations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xml\\PageSettings' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/PageSettings.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xml\\Properties' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Properties.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xml\\Style' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xml\\Style\\Alignment' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style/Alignment.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xml\\Style\\Border' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style/Border.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xml\\Style\\Fill' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style/Fill.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xml\\Style\\Font' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style/Font.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xml\\Style\\NumberFormat' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style/NumberFormat.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Reader\\Xml\\Style\\StyleBase' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style/StyleBase.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\ReferenceHelper' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/ReferenceHelper.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\RichText\\ITextElement' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/RichText/ITextElement.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\RichText\\RichText' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/RichText/RichText.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\RichText\\Run' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/RichText/Run.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\RichText\\TextElement' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/RichText/TextElement.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Settings' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Settings.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\CodePage' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/CodePage.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Date' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Date.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Drawing' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Drawing.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Escher' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Escher.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DgContainer' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Escher/DgContainer.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DgContainer\\SpgrContainer' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DgContainer\\SpgrContainer\\SpContainer' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DggContainer' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Escher/DggContainer.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DggContainer\\BstoreContainer' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DggContainer\\BstoreContainer\\BSE' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DggContainer\\BstoreContainer\\BSE\\Blip' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\File' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/File.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Font' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Font.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\IntOrFloat' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/IntOrFloat.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\OLE' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLE.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\OLERead' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLERead.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\OLE\\ChainedBlockStream' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\OLE\\PPS' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLE/PPS.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\OLE\\PPS\\File' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLE/PPS/File.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\OLE\\PPS\\Root' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\PasswordHasher' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/PasswordHasher.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\StringHelper' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/StringHelper.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\TimeZone' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/TimeZone.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\BestFit' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/BestFit.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\ExponentialBestFit' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/ExponentialBestFit.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\LinearBestFit' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/LinearBestFit.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\LogarithmicBestFit' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/LogarithmicBestFit.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\PolynomialBestFit' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/PolynomialBestFit.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\PowerBestFit' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/PowerBestFit.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\Trend' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/Trend.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\XMLWriter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/XMLWriter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Shared\\Xls' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Xls.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Spreadsheet' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Spreadsheet.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\Alignment' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Alignment.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\Border' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Border.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\Borders' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Borders.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\Color' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Color.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\Conditional' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Conditional.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\CellMatcher' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/CellMatcher.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\CellStyleAssessor' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/CellStyleAssessor.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\ConditionalColorScale' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/ConditionalColorScale.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\ConditionalDataBar' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/ConditionalDataBar.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\ConditionalDataBarExtension' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/ConditionalDataBarExtension.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\ConditionalFormatValueObject' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/ConditionalFormatValueObject.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\ConditionalFormattingRuleExtension' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/ConditionalFormattingRuleExtension.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\ConditionalIconSet' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/ConditionalIconSet.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\IconSetValues' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/IconSetValues.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\StyleMerger' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/StyleMerger.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\Wizard' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/Wizard.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\Wizard\\Blanks' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/Wizard/Blanks.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\Wizard\\CellValue' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/Wizard/CellValue.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\Wizard\\DateValue' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/Wizard/DateValue.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\Wizard\\Duplicates' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/Wizard/Duplicates.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\Wizard\\Errors' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/Wizard/Errors.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\Wizard\\Expression' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/Wizard/Expression.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\Wizard\\TextValue' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/Wizard/TextValue.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\Wizard\\WizardAbstract' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/Wizard/WizardAbstract.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\ConditionalFormatting\\Wizard\\WizardInterface' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/ConditionalFormatting/Wizard/WizardInterface.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\Fill' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Fill.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\Font' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Font.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\BaseFormatter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/BaseFormatter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\DateFormatter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/DateFormatter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Formatter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Formatter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\FractionFormatter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/FractionFormatter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\NumberFormatter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/NumberFormatter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\PercentageFormatter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/PercentageFormatter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Wizard\\Accounting' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Accounting.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Wizard\\Currency' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Currency.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Wizard\\CurrencyBase' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/CurrencyBase.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Wizard\\CurrencyNegative' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/CurrencyNegative.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Wizard\\Date' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Date.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Wizard\\DateTime' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/DateTime.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Wizard\\DateTimeWizard' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/DateTimeWizard.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Wizard\\Duration' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Duration.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Wizard\\Locale' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Locale.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Wizard\\Number' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Number.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Wizard\\NumberBase' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/NumberBase.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Wizard\\Percentage' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Percentage.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Wizard\\Scientific' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Scientific.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Wizard\\Time' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Time.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat\\Wizard\\Wizard' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Wizard.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\Protection' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Protection.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\RgbTint' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/RgbTint.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\Style' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Style.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Style\\Supervisor' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Supervisor.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Theme' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Theme.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\AutoFilter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/AutoFilter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\AutoFilter\\Column' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/AutoFilter/Column.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\AutoFilter\\Column\\Rule' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\AutoFit' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/AutoFit.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\BaseDrawing' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/BaseDrawing.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\CellIterator' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/CellIterator.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\Column' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Column.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\ColumnCellIterator' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/ColumnCellIterator.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\ColumnDimension' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/ColumnDimension.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\ColumnIterator' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/ColumnIterator.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\Dimension' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Dimension.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\Drawing' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Drawing.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\Drawing\\Shadow' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Drawing/Shadow.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\HeaderFooter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/HeaderFooter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\HeaderFooterDrawing' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/HeaderFooterDrawing.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\Iterator' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Iterator.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\MemoryDrawing' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/MemoryDrawing.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\PageBreak' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageBreak.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\PageMargins' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageMargins.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\PageSetup' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageSetup.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\Pane' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Pane.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\ProtectedRange' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/ProtectedRange.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\Protection' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Protection.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\Row' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Row.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\RowCellIterator' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/RowCellIterator.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\RowDimension' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/RowDimension.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\RowIterator' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/RowIterator.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\SheetView' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/SheetView.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\Table' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\Table\\Column' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table/Column.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\Table\\TableDxfsStyle' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table/TableDxfsStyle.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\Table\\TableStyle' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table/TableStyle.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\Validations' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Validations.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Worksheet\\Worksheet' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Worksheet.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\BaseWriter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/BaseWriter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Csv' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Csv.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Exception' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Exception.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Html' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Html.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\IWriter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/IWriter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Ods' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\AutoFilters' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/AutoFilters.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Cell\\Comment' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Cell/Comment.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Cell\\Style' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Cell/Style.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Content' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Content.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Formula' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Formula.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Meta' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Meta.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\MetaInf' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/MetaInf.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Mimetype' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Mimetype.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\NamedExpressions' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/NamedExpressions.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Settings' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Settings.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Styles' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Styles.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Thumbnails' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Thumbnails.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\WriterPart' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/WriterPart.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Pdf' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Pdf.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Pdf\\Dompdf' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Pdf/Dompdf.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Pdf\\Mpdf' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Pdf/Mpdf.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Pdf\\Tcpdf' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Pdf/Tcpdf.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Pdf\\TcpdfNoDie' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Pdf/TcpdfNoDie.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xls' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\BIFFwriter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/BIFFwriter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\CellDataValidation' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/CellDataValidation.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\ConditionalHelper' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/ConditionalHelper.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\ErrorCode' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/ErrorCode.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\Escher' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Escher.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\Font' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Font.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\Parser' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Parser.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\Style\\CellAlignment' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Style/CellAlignment.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\Style\\CellBorder' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Style/CellBorder.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\Style\\CellFill' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Style/CellFill.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\Workbook' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Workbook.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\Worksheet' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Worksheet.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\Xf' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Xf.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\AutoFilter' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/AutoFilter.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Chart' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Chart.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Comments' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Comments.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\ContentTypes' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/ContentTypes.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\DefinedNames' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/DefinedNames.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\DocProps' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/DocProps.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Drawing' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Drawing.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\FunctionPrefix' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/FunctionPrefix.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Metadata' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Metadata.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Rels' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Rels.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\RelsRibbon' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/RelsRibbon.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\RelsVBA' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/RelsVBA.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\StringTable' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/StringTable.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Style' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Style.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Table' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Table.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Theme' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Theme.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Workbook' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Workbook.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Worksheet' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\WriterPart' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/WriterPart.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\ZipStream0' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/ZipStream0.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\ZipStream2' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/ZipStream2.php',
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\Writer\\ZipStream3' => $vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/ZipStream3.php',
|
||||||
|
'Psr\\Http\\Client\\ClientExceptionInterface' => $vendorDir . '/psr/http-client/src/ClientExceptionInterface.php',
|
||||||
|
'Psr\\Http\\Client\\ClientInterface' => $vendorDir . '/psr/http-client/src/ClientInterface.php',
|
||||||
|
'Psr\\Http\\Client\\NetworkExceptionInterface' => $vendorDir . '/psr/http-client/src/NetworkExceptionInterface.php',
|
||||||
|
'Psr\\Http\\Client\\RequestExceptionInterface' => $vendorDir . '/psr/http-client/src/RequestExceptionInterface.php',
|
||||||
|
'Psr\\Http\\Message\\MessageInterface' => $vendorDir . '/psr/http-message/src/MessageInterface.php',
|
||||||
|
'Psr\\Http\\Message\\RequestFactoryInterface' => $vendorDir . '/psr/http-factory/src/RequestFactoryInterface.php',
|
||||||
|
'Psr\\Http\\Message\\RequestInterface' => $vendorDir . '/psr/http-message/src/RequestInterface.php',
|
||||||
|
'Psr\\Http\\Message\\ResponseFactoryInterface' => $vendorDir . '/psr/http-factory/src/ResponseFactoryInterface.php',
|
||||||
|
'Psr\\Http\\Message\\ResponseInterface' => $vendorDir . '/psr/http-message/src/ResponseInterface.php',
|
||||||
|
'Psr\\Http\\Message\\ServerRequestFactoryInterface' => $vendorDir . '/psr/http-factory/src/ServerRequestFactoryInterface.php',
|
||||||
|
'Psr\\Http\\Message\\ServerRequestInterface' => $vendorDir . '/psr/http-message/src/ServerRequestInterface.php',
|
||||||
|
'Psr\\Http\\Message\\StreamFactoryInterface' => $vendorDir . '/psr/http-factory/src/StreamFactoryInterface.php',
|
||||||
|
'Psr\\Http\\Message\\StreamInterface' => $vendorDir . '/psr/http-message/src/StreamInterface.php',
|
||||||
|
'Psr\\Http\\Message\\UploadedFileFactoryInterface' => $vendorDir . '/psr/http-factory/src/UploadedFileFactoryInterface.php',
|
||||||
|
'Psr\\Http\\Message\\UploadedFileInterface' => $vendorDir . '/psr/http-message/src/UploadedFileInterface.php',
|
||||||
|
'Psr\\Http\\Message\\UriFactoryInterface' => $vendorDir . '/psr/http-factory/src/UriFactoryInterface.php',
|
||||||
|
'Psr\\Http\\Message\\UriInterface' => $vendorDir . '/psr/http-message/src/UriInterface.php',
|
||||||
|
'Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php',
|
||||||
|
'Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php',
|
||||||
|
'Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php',
|
||||||
|
'QRcode' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/qrcode.php',
|
||||||
|
'TCPDF' => $vendorDir . '/tecnickcom/tcpdf/tcpdf.php',
|
||||||
|
'TCPDF2DBarcode' => $vendorDir . '/tecnickcom/tcpdf/tcpdf_barcodes_2d.php',
|
||||||
|
'TCPDFBarcode' => $vendorDir . '/tecnickcom/tcpdf/tcpdf_barcodes_1d.php',
|
||||||
|
'TCPDF_COLORS' => $vendorDir . '/tecnickcom/tcpdf/include/tcpdf_colors.php',
|
||||||
|
'TCPDF_FILTERS' => $vendorDir . '/tecnickcom/tcpdf/include/tcpdf_filters.php',
|
||||||
|
'TCPDF_FONTS' => $vendorDir . '/tecnickcom/tcpdf/include/tcpdf_fonts.php',
|
||||||
|
'TCPDF_FONT_DATA' => $vendorDir . '/tecnickcom/tcpdf/include/tcpdf_font_data.php',
|
||||||
|
'TCPDF_IMAGES' => $vendorDir . '/tecnickcom/tcpdf/include/tcpdf_images.php',
|
||||||
|
'TCPDF_STATIC' => $vendorDir . '/tecnickcom/tcpdf/include/tcpdf_static.php',
|
||||||
|
'ZipStream\\CentralDirectoryFileHeader' => $vendorDir . '/maennchen/zipstream-php/src/CentralDirectoryFileHeader.php',
|
||||||
|
'ZipStream\\CompressionMethod' => $vendorDir . '/maennchen/zipstream-php/src/CompressionMethod.php',
|
||||||
|
'ZipStream\\DataDescriptor' => $vendorDir . '/maennchen/zipstream-php/src/DataDescriptor.php',
|
||||||
|
'ZipStream\\EndOfCentralDirectory' => $vendorDir . '/maennchen/zipstream-php/src/EndOfCentralDirectory.php',
|
||||||
|
'ZipStream\\Exception' => $vendorDir . '/maennchen/zipstream-php/src/Exception.php',
|
||||||
|
'ZipStream\\Exception\\DosTimeOverflowException' => $vendorDir . '/maennchen/zipstream-php/src/Exception/DosTimeOverflowException.php',
|
||||||
|
'ZipStream\\Exception\\FileNotFoundException' => $vendorDir . '/maennchen/zipstream-php/src/Exception/FileNotFoundException.php',
|
||||||
|
'ZipStream\\Exception\\FileNotReadableException' => $vendorDir . '/maennchen/zipstream-php/src/Exception/FileNotReadableException.php',
|
||||||
|
'ZipStream\\Exception\\FileSizeIncorrectException' => $vendorDir . '/maennchen/zipstream-php/src/Exception/FileSizeIncorrectException.php',
|
||||||
|
'ZipStream\\Exception\\OverflowException' => $vendorDir . '/maennchen/zipstream-php/src/Exception/OverflowException.php',
|
||||||
|
'ZipStream\\Exception\\ResourceActionException' => $vendorDir . '/maennchen/zipstream-php/src/Exception/ResourceActionException.php',
|
||||||
|
'ZipStream\\Exception\\SimulationFileUnknownException' => $vendorDir . '/maennchen/zipstream-php/src/Exception/SimulationFileUnknownException.php',
|
||||||
|
'ZipStream\\Exception\\StreamNotReadableException' => $vendorDir . '/maennchen/zipstream-php/src/Exception/StreamNotReadableException.php',
|
||||||
|
'ZipStream\\Exception\\StreamNotSeekableException' => $vendorDir . '/maennchen/zipstream-php/src/Exception/StreamNotSeekableException.php',
|
||||||
|
'ZipStream\\File' => $vendorDir . '/maennchen/zipstream-php/src/File.php',
|
||||||
|
'ZipStream\\GeneralPurposeBitFlag' => $vendorDir . '/maennchen/zipstream-php/src/GeneralPurposeBitFlag.php',
|
||||||
|
'ZipStream\\LocalFileHeader' => $vendorDir . '/maennchen/zipstream-php/src/LocalFileHeader.php',
|
||||||
|
'ZipStream\\OperationMode' => $vendorDir . '/maennchen/zipstream-php/src/OperationMode.php',
|
||||||
|
'ZipStream\\PackField' => $vendorDir . '/maennchen/zipstream-php/src/PackField.php',
|
||||||
|
'ZipStream\\Time' => $vendorDir . '/maennchen/zipstream-php/src/Time.php',
|
||||||
|
'ZipStream\\Version' => $vendorDir . '/maennchen/zipstream-php/src/Version.php',
|
||||||
|
'ZipStream\\Zip64\\DataDescriptor' => $vendorDir . '/maennchen/zipstream-php/src/Zip64/DataDescriptor.php',
|
||||||
|
'ZipStream\\Zip64\\EndOfCentralDirectory' => $vendorDir . '/maennchen/zipstream-php/src/Zip64/EndOfCentralDirectory.php',
|
||||||
|
'ZipStream\\Zip64\\EndOfCentralDirectoryLocator' => $vendorDir . '/maennchen/zipstream-php/src/Zip64/EndOfCentralDirectoryLocator.php',
|
||||||
|
'ZipStream\\Zip64\\ExtendedInformationExtraField' => $vendorDir . '/maennchen/zipstream-php/src/Zip64/ExtendedInformationExtraField.php',
|
||||||
|
'ZipStream\\ZipStream' => $vendorDir . '/maennchen/zipstream-php/src/ZipStream.php',
|
||||||
|
'ZipStream\\Zs\\ExtendedInformationExtraField' => $vendorDir . '/maennchen/zipstream-php/src/Zs/ExtendedInformationExtraField.php',
|
||||||
|
'chillerlan\\QRCode\\Common\\BitBuffer' => $vendorDir . '/chillerlan/php-qrcode/src/Common/BitBuffer.php',
|
||||||
|
'chillerlan\\QRCode\\Common\\ECICharset' => $vendorDir . '/chillerlan/php-qrcode/src/Common/ECICharset.php',
|
||||||
|
'chillerlan\\QRCode\\Common\\EccLevel' => $vendorDir . '/chillerlan/php-qrcode/src/Common/EccLevel.php',
|
||||||
|
'chillerlan\\QRCode\\Common\\GDLuminanceSource' => $vendorDir . '/chillerlan/php-qrcode/src/Common/GDLuminanceSource.php',
|
||||||
|
'chillerlan\\QRCode\\Common\\GF256' => $vendorDir . '/chillerlan/php-qrcode/src/Common/GF256.php',
|
||||||
|
'chillerlan\\QRCode\\Common\\GenericGFPoly' => $vendorDir . '/chillerlan/php-qrcode/src/Common/GenericGFPoly.php',
|
||||||
|
'chillerlan\\QRCode\\Common\\IMagickLuminanceSource' => $vendorDir . '/chillerlan/php-qrcode/src/Common/IMagickLuminanceSource.php',
|
||||||
|
'chillerlan\\QRCode\\Common\\LuminanceSourceAbstract' => $vendorDir . '/chillerlan/php-qrcode/src/Common/LuminanceSourceAbstract.php',
|
||||||
|
'chillerlan\\QRCode\\Common\\LuminanceSourceInterface' => $vendorDir . '/chillerlan/php-qrcode/src/Common/LuminanceSourceInterface.php',
|
||||||
|
'chillerlan\\QRCode\\Common\\MaskPattern' => $vendorDir . '/chillerlan/php-qrcode/src/Common/MaskPattern.php',
|
||||||
|
'chillerlan\\QRCode\\Common\\Mode' => $vendorDir . '/chillerlan/php-qrcode/src/Common/Mode.php',
|
||||||
|
'chillerlan\\QRCode\\Common\\Version' => $vendorDir . '/chillerlan/php-qrcode/src/Common/Version.php',
|
||||||
|
'chillerlan\\QRCode\\Data\\AlphaNum' => $vendorDir . '/chillerlan/php-qrcode/src/Data/AlphaNum.php',
|
||||||
|
'chillerlan\\QRCode\\Data\\Byte' => $vendorDir . '/chillerlan/php-qrcode/src/Data/Byte.php',
|
||||||
|
'chillerlan\\QRCode\\Data\\ECI' => $vendorDir . '/chillerlan/php-qrcode/src/Data/ECI.php',
|
||||||
|
'chillerlan\\QRCode\\Data\\Hanzi' => $vendorDir . '/chillerlan/php-qrcode/src/Data/Hanzi.php',
|
||||||
|
'chillerlan\\QRCode\\Data\\Kanji' => $vendorDir . '/chillerlan/php-qrcode/src/Data/Kanji.php',
|
||||||
|
'chillerlan\\QRCode\\Data\\Number' => $vendorDir . '/chillerlan/php-qrcode/src/Data/Number.php',
|
||||||
|
'chillerlan\\QRCode\\Data\\QRCodeDataException' => $vendorDir . '/chillerlan/php-qrcode/src/Data/QRCodeDataException.php',
|
||||||
|
'chillerlan\\QRCode\\Data\\QRData' => $vendorDir . '/chillerlan/php-qrcode/src/Data/QRData.php',
|
||||||
|
'chillerlan\\QRCode\\Data\\QRDataModeAbstract' => $vendorDir . '/chillerlan/php-qrcode/src/Data/QRDataModeAbstract.php',
|
||||||
|
'chillerlan\\QRCode\\Data\\QRDataModeInterface' => $vendorDir . '/chillerlan/php-qrcode/src/Data/QRDataModeInterface.php',
|
||||||
|
'chillerlan\\QRCode\\Data\\QRMatrix' => $vendorDir . '/chillerlan/php-qrcode/src/Data/QRMatrix.php',
|
||||||
|
'chillerlan\\QRCode\\Data\\ReedSolomonEncoder' => $vendorDir . '/chillerlan/php-qrcode/src/Data/ReedSolomonEncoder.php',
|
||||||
|
'chillerlan\\QRCode\\Decoder\\Binarizer' => $vendorDir . '/chillerlan/php-qrcode/src/Decoder/Binarizer.php',
|
||||||
|
'chillerlan\\QRCode\\Decoder\\BitMatrix' => $vendorDir . '/chillerlan/php-qrcode/src/Decoder/BitMatrix.php',
|
||||||
|
'chillerlan\\QRCode\\Decoder\\Decoder' => $vendorDir . '/chillerlan/php-qrcode/src/Decoder/Decoder.php',
|
||||||
|
'chillerlan\\QRCode\\Decoder\\DecoderResult' => $vendorDir . '/chillerlan/php-qrcode/src/Decoder/DecoderResult.php',
|
||||||
|
'chillerlan\\QRCode\\Decoder\\QRCodeDecoderException' => $vendorDir . '/chillerlan/php-qrcode/src/Decoder/QRCodeDecoderException.php',
|
||||||
|
'chillerlan\\QRCode\\Decoder\\ReedSolomonDecoder' => $vendorDir . '/chillerlan/php-qrcode/src/Decoder/ReedSolomonDecoder.php',
|
||||||
|
'chillerlan\\QRCode\\Detector\\AlignmentPattern' => $vendorDir . '/chillerlan/php-qrcode/src/Detector/AlignmentPattern.php',
|
||||||
|
'chillerlan\\QRCode\\Detector\\AlignmentPatternFinder' => $vendorDir . '/chillerlan/php-qrcode/src/Detector/AlignmentPatternFinder.php',
|
||||||
|
'chillerlan\\QRCode\\Detector\\Detector' => $vendorDir . '/chillerlan/php-qrcode/src/Detector/Detector.php',
|
||||||
|
'chillerlan\\QRCode\\Detector\\FinderPattern' => $vendorDir . '/chillerlan/php-qrcode/src/Detector/FinderPattern.php',
|
||||||
|
'chillerlan\\QRCode\\Detector\\FinderPatternFinder' => $vendorDir . '/chillerlan/php-qrcode/src/Detector/FinderPatternFinder.php',
|
||||||
|
'chillerlan\\QRCode\\Detector\\GridSampler' => $vendorDir . '/chillerlan/php-qrcode/src/Detector/GridSampler.php',
|
||||||
|
'chillerlan\\QRCode\\Detector\\PerspectiveTransform' => $vendorDir . '/chillerlan/php-qrcode/src/Detector/PerspectiveTransform.php',
|
||||||
|
'chillerlan\\QRCode\\Detector\\QRCodeDetectorException' => $vendorDir . '/chillerlan/php-qrcode/src/Detector/QRCodeDetectorException.php',
|
||||||
|
'chillerlan\\QRCode\\Detector\\ResultPoint' => $vendorDir . '/chillerlan/php-qrcode/src/Detector/ResultPoint.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRCodeOutputException' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRCodeOutputException.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QREps' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QREps.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRFpdf' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRFpdf.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRGdImage' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRGdImage.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRGdImageBMP' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRGdImageBMP.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRGdImageGIF' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRGdImageGIF.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRGdImageJPEG' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRGdImageJPEG.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRGdImagePNG' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRGdImagePNG.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRGdImageWEBP' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRGdImageWEBP.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRImage' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRImage.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRImagick' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRImagick.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRMarkup' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRMarkup.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRMarkupHTML' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRMarkupHTML.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRMarkupSVG' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRMarkupSVG.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QROutputAbstract' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QROutputAbstract.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QROutputInterface' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QROutputInterface.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRString' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRString.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRStringJSON' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRStringJSON.php',
|
||||||
|
'chillerlan\\QRCode\\Output\\QRStringText' => $vendorDir . '/chillerlan/php-qrcode/src/Output/QRStringText.php',
|
||||||
|
'chillerlan\\QRCode\\QRCode' => $vendorDir . '/chillerlan/php-qrcode/src/QRCode.php',
|
||||||
|
'chillerlan\\QRCode\\QRCodeException' => $vendorDir . '/chillerlan/php-qrcode/src/QRCodeException.php',
|
||||||
|
'chillerlan\\QRCode\\QROptions' => $vendorDir . '/chillerlan/php-qrcode/src/QROptions.php',
|
||||||
|
'chillerlan\\QRCode\\QROptionsTrait' => $vendorDir . '/chillerlan/php-qrcode/src/QROptionsTrait.php',
|
||||||
|
'chillerlan\\Settings\\SettingsContainerAbstract' => $vendorDir . '/chillerlan/php-settings-container/src/SettingsContainerAbstract.php',
|
||||||
|
'chillerlan\\Settings\\SettingsContainerInterface' => $vendorDir . '/chillerlan/php-settings-container/src/SettingsContainerInterface.php',
|
||||||
);
|
);
|
||||||
|
|||||||
2
vendor/composer/autoload_files.php
vendored
2
vendor/composer/autoload_files.php
vendored
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
// autoload_files.php @generated by Composer
|
// autoload_files.php @generated by Composer
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
$vendorDir = dirname(__DIR__);
|
||||||
$baseDir = dirname($vendorDir);
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
|
|||||||
2
vendor/composer/autoload_namespaces.php
vendored
2
vendor/composer/autoload_namespaces.php
vendored
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
// autoload_namespaces.php @generated by Composer
|
// autoload_namespaces.php @generated by Composer
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
$vendorDir = dirname(__DIR__);
|
||||||
$baseDir = dirname($vendorDir);
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
|
|||||||
19
vendor/composer/autoload_psr4.php
vendored
19
vendor/composer/autoload_psr4.php
vendored
@@ -2,15 +2,32 @@
|
|||||||
|
|
||||||
// autoload_psr4.php @generated by Composer
|
// autoload_psr4.php @generated by Composer
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
$vendorDir = dirname(__DIR__);
|
||||||
$baseDir = dirname($vendorDir);
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
'chillerlan\\Settings\\' => array($vendorDir . '/chillerlan/php-settings-container/src'),
|
'chillerlan\\Settings\\' => array($vendorDir . '/chillerlan/php-settings-container/src'),
|
||||||
'chillerlan\\QRCode\\' => array($vendorDir . '/chillerlan/php-qrcode/src'),
|
'chillerlan\\QRCode\\' => array($vendorDir . '/chillerlan/php-qrcode/src'),
|
||||||
|
'ZipStream\\' => array($vendorDir . '/maennchen/zipstream-php/src'),
|
||||||
|
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
|
||||||
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'),
|
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'),
|
||||||
'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'),
|
'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'),
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\' => array($vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet'),
|
||||||
|
'Matrix\\' => array($vendorDir . '/markbaker/matrix/classes/src'),
|
||||||
'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'),
|
'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'),
|
||||||
'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'),
|
'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'),
|
||||||
'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
|
'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
|
||||||
|
'Composer\\Pcre\\' => array($vendorDir . '/composer/pcre/src'),
|
||||||
|
'Complex\\' => array($vendorDir . '/markbaker/complex/classes/src'),
|
||||||
|
'Com\\Tecnick\\Unicode\\Data\\' => array($vendorDir . '/tecnickcom/tc-lib-unicode-data/src'),
|
||||||
|
'Com\\Tecnick\\Unicode\\' => array($vendorDir . '/tecnickcom/tc-lib-unicode/src'),
|
||||||
|
'Com\\Tecnick\\Pdf\\Page\\' => array($vendorDir . '/tecnickcom/tc-lib-pdf-page/src'),
|
||||||
|
'Com\\Tecnick\\Pdf\\Image\\' => array($vendorDir . '/tecnickcom/tc-lib-pdf-image/src'),
|
||||||
|
'Com\\Tecnick\\Pdf\\Graph\\' => array($vendorDir . '/tecnickcom/tc-lib-pdf-graph/src'),
|
||||||
|
'Com\\Tecnick\\Pdf\\Font\\' => array($vendorDir . '/tecnickcom/tc-lib-pdf-font/src'),
|
||||||
|
'Com\\Tecnick\\Pdf\\Encrypt\\' => array($vendorDir . '/tecnickcom/tc-lib-pdf-encrypt/src'),
|
||||||
|
'Com\\Tecnick\\Pdf\\' => array($vendorDir . '/tecnickcom/tc-lib-pdf/src'),
|
||||||
|
'Com\\Tecnick\\File\\' => array($vendorDir . '/tecnickcom/tc-lib-file/src'),
|
||||||
|
'Com\\Tecnick\\Color\\' => array($vendorDir . '/tecnickcom/tc-lib-color/src'),
|
||||||
|
'Com\\Tecnick\\Barcode\\' => array($vendorDir . '/tecnickcom/tc-lib-barcode/src'),
|
||||||
);
|
);
|
||||||
|
|||||||
51
vendor/composer/autoload_real.php
vendored
51
vendor/composer/autoload_real.php
vendored
@@ -25,51 +25,26 @@ class ComposerAutoloaderInitab00f29709bdbfe3a1abd7d2d66d569c
|
|||||||
require __DIR__ . '/platform_check.php';
|
require __DIR__ . '/platform_check.php';
|
||||||
|
|
||||||
spl_autoload_register(array('ComposerAutoloaderInitab00f29709bdbfe3a1abd7d2d66d569c', 'loadClassLoader'), true, true);
|
spl_autoload_register(array('ComposerAutoloaderInitab00f29709bdbfe3a1abd7d2d66d569c', 'loadClassLoader'), true, true);
|
||||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
||||||
spl_autoload_unregister(array('ComposerAutoloaderInitab00f29709bdbfe3a1abd7d2d66d569c', 'loadClassLoader'));
|
spl_autoload_unregister(array('ComposerAutoloaderInitab00f29709bdbfe3a1abd7d2d66d569c', 'loadClassLoader'));
|
||||||
|
|
||||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
require __DIR__ . '/autoload_static.php';
|
||||||
if ($useStaticLoader) {
|
call_user_func(\Composer\Autoload\ComposerStaticInitab00f29709bdbfe3a1abd7d2d66d569c::getInitializer($loader));
|
||||||
require __DIR__ . '/autoload_static.php';
|
|
||||||
|
|
||||||
call_user_func(\Composer\Autoload\ComposerStaticInitab00f29709bdbfe3a1abd7d2d66d569c::getInitializer($loader));
|
|
||||||
} else {
|
|
||||||
$map = require __DIR__ . '/autoload_namespaces.php';
|
|
||||||
foreach ($map as $namespace => $path) {
|
|
||||||
$loader->set($namespace, $path);
|
|
||||||
}
|
|
||||||
|
|
||||||
$map = require __DIR__ . '/autoload_psr4.php';
|
|
||||||
foreach ($map as $namespace => $path) {
|
|
||||||
$loader->setPsr4($namespace, $path);
|
|
||||||
}
|
|
||||||
|
|
||||||
$classMap = require __DIR__ . '/autoload_classmap.php';
|
|
||||||
if ($classMap) {
|
|
||||||
$loader->addClassMap($classMap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$loader->register(true);
|
$loader->register(true);
|
||||||
|
|
||||||
if ($useStaticLoader) {
|
$filesToLoad = \Composer\Autoload\ComposerStaticInitab00f29709bdbfe3a1abd7d2d66d569c::$files;
|
||||||
$includeFiles = Composer\Autoload\ComposerStaticInitab00f29709bdbfe3a1abd7d2d66d569c::$files;
|
$requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
|
||||||
} else {
|
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||||
}
|
|
||||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
require $file;
|
||||||
composerRequireab00f29709bdbfe3a1abd7d2d66d569c($fileIdentifier, $file);
|
}
|
||||||
|
}, null, null);
|
||||||
|
foreach ($filesToLoad as $fileIdentifier => $file) {
|
||||||
|
$requireFile($fileIdentifier, $file);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $loader;
|
return $loader;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function composerRequireab00f29709bdbfe3a1abd7d2d66d569c($fileIdentifier, $file)
|
|
||||||
{
|
|
||||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
|
||||||
require $file;
|
|
||||||
|
|
||||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
1033
vendor/composer/autoload_static.php
vendored
1033
vendor/composer/autoload_static.php
vendored
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user