From 1997d2bdfccde9ef424ace1a3a9a92354c66ccd3 Mon Sep 17 00:00:00 2001 From: kstan Date: Sat, 6 Apr 2024 22:59:42 +0800 Subject: [PATCH] 2.1.3 1. support more mongodb queries beside aggregate 2. support use 'return' to obtain string value of pdf 3. some bug fix for subreport with mongodb 4. better algorithm to solve randomly can't eval data during execute expression 5. allow set current working directory 6. --- README.md | 26 +- src/Exports/Pdf_driver.php | 24 +- src/PHPJasperXML_elements.php | 5 + src/PHPJasperXML_expression.php | 52 ++-- src/PHPJasperXML_load.php | 8 +- src/PHPJasperXML_output.php | 12 +- src/datadrivers/Mongodb_driver.php | 48 +++- vendor/composer/autoload_classmap.php | 7 + vendor/composer/autoload_files.php | 5 +- vendor/composer/autoload_psr4.php | 7 +- vendor/composer/autoload_static.php | 47 +++- vendor/composer/installed.json | 348 ++++++++++++++++++++++++++ vendor/composer/installed.php | 57 ++++- 13 files changed, 585 insertions(+), 61 deletions(-) diff --git a/README.md b/README.md index 9842c000..680fd3fb 100644 --- a/README.md +++ b/README.md @@ -250,4 +250,28 @@ Style template is ignore, and not effect element at the moment. 2. Mysql 3. PDO (the rest of database) 4. Array (prepare associate array outside of lib) -5. mongodb (experimental, use mongodb-ql) \ No newline at end of file +5. mongodb (experimental, use mongodb-ql) + + +# Mongodb usage +Mongodb very different with others dbms due to mongodb using hierarchy document structure. PHPJasperXML implement +similar syntax with jaspersoft `mongodbql`. +Refer `mongodbql` [here](https://community.jaspersoft.com/knowledgebase/faq/jaspersoft-mongodb-query-language/) + +It only support 2 method of queries, `find` and `aggregate`: + +1. Find (findQuery) +* findQuery : { Details }, +* findFields : { Details }, +* sort : { Details }, +* limit : int Details, + +2. Aggregate (aggregate) + +* Unsupported function: +mapReduce +rowsToProcess +batchSize +maxTime +collation + diff --git a/src/Exports/Pdf_driver.php b/src/Exports/Pdf_driver.php index 8c1a38bf..93a5d995 100644 --- a/src/Exports/Pdf_driver.php +++ b/src/Exports/Pdf_driver.php @@ -153,15 +153,16 @@ public function PageNo():int public function export(string $filename='') { // $this->console($this->pagecolumnoccupation); - if(!empty($filename)) + if(empty($filename)) { - $this->Output($filename,'F'); + $this->Output('dummy.pdf','I'); } - else + else if($filename=='return') { - // echo 'asdad'; - $filename='sample.pdf'; - $this->Output($filename,'I'); + return $this->Output($filename,'S'); + + }else{ + $this->Output($filename,'F'); } // echo $filename; @@ -1435,6 +1436,7 @@ public function groupCount(): int protected function formatValue(mixed $value, string $pattern) : string { + // scientific $data = $value; $prepattern = $pattern; @@ -1499,17 +1501,15 @@ protected function formatValue(mixed $value, string $pattern) : string //number else if(str_contains($pattern,'#') ) { - $fmt = numfmt_create( 'en_US', \NumberFormatter::DECIMAL ); - numfmt_set_pattern($fmt,$pattern); + $fmt = numfmt_create( 'en_US',\NumberFormatter::DECIMAL ); + $issetpattern = numfmt_set_pattern($fmt,$pattern); try{ - $data = numfmt_format($fmt,$value); + $data = $fmt->format($value); } catch(Throwable $e) { return $data; - } - - + } } return $data; } diff --git a/src/PHPJasperXML_elements.php b/src/PHPJasperXML_elements.php index a76a2b4c..af49529e 100644 --- a/src/PHPJasperXML_elements.php +++ b/src/PHPJasperXML_elements.php @@ -243,6 +243,7 @@ public function draw_textField(string $uuid,array $prop) // { // $prop['hyperlinkReferenceExpression'] = $this->executeExpression($link); // } + // echo "$uuid".print_r($prop,true); $this->output->draw_textField($uuid,$prop,function(){ $this->newPage(); }); @@ -341,6 +342,8 @@ public function draw_subreport(string $uuid,array $prop) $connectionExpression = $this->executeExpression($prop['connectionExpression']); + if(empty($$connectionExpression)) $connectionExpression='REPORT_CONNECTION'; + // echo '$connectionExpression---'.$connectionExpression;die; $connection = []; if($connectionExpression=='REPORT_CONNECTION') { @@ -370,6 +373,7 @@ public function draw_subreport(string $uuid,array $prop) } + $subreport ->setParameter($paras) ->setDataSource($connection) @@ -495,6 +499,7 @@ protected function drawElement(string $uuid,array $prop,int $offsetx,int $offset $this->output->setPosition($x,$y,$prop); $methodname = 'draw_'.$prop['elementtype']; call_user_func([$this,$methodname],$uuid,$prop); + // echo $methodname."
"; } protected function addBorders(array $prop, object $obj): array diff --git a/src/PHPJasperXML_expression.php b/src/PHPJasperXML_expression.php index 49a08c2e..abc62c0f 100644 --- a/src/PHPJasperXML_expression.php +++ b/src/PHPJasperXML_expression.php @@ -21,10 +21,10 @@ protected function isDisplay(string $expression) // $this->console("expression $expression === $result"); return $result; } - protected function executeExpression(string $expression,int $addrowqty=0,string $evaluationTime=''): mixed + protected function executeExpression(string $expression,int $addrowqty=0,string $evaluationTime='',$isstring=false): mixed { // $this->console( "executeExpression: $expression"); - $value = $this->parseExpression($expression,$addrowqty,$evaluationTime); + $value = $this->parseExpression($expression,$addrowqty,$evaluationTime,true); //special result, direct return raw value if(gettype($value)=='object' || gettype($value)=='array') @@ -32,12 +32,18 @@ protected function executeExpression(string $expression,int $addrowqty=0,string return $value; } //it consist of string, use concate instead of maths operation + // if($isstring){ + + // } + // $value = str_replace('+',' . ',$value); + // + $value = str_replace(["<{{","}}>"],'"',$value); if(str_contains($value,'"') || str_contains($value,"'")) { - $value = str_replace('+',' . ',$value); + $findquotepattern = '/\+(?=(?:[^"]*"[^"]*")*[^"]*\Z)/'; + $value = preg_replace($findquotepattern, '.', $value); } - $evalstr = "return $value;"; // $this->console( $evalstr); try{ @@ -52,7 +58,7 @@ protected function executeExpression(string $expression,int $addrowqty=0,string } } - protected function parseExpression(string $expression,int $addrowqty=0,string $evaluationTime=''): mixed + protected function parseExpression(string $expression,int $addrowqty=0,string $evaluationTime='',$specialtag=false): mixed { $value = $expression; $fieldpattern = '/\$F{(.*?)}/'; @@ -64,7 +70,7 @@ protected function parseExpression(string $expression,int $addrowqty=0,string $e preg_match_all($fieldpattern, $value, $matchfield); preg_match_all($varpattern, $value, $matchvar); preg_match_all($parapattern, $value, $matchpara); - + $fieldstrings = $matchfield[0]; $fieldnames = $matchfield[1]; $parastrings = $matchpara[0]; @@ -73,18 +79,18 @@ protected function parseExpression(string $expression,int $addrowqty=0,string $e $varnames = $matchvar[1]; // $this->console($expression); foreach($fieldnames as $f => $fieldname) - { - $data = $this->getFieldValue($fieldname,$addrowqty,$evaluationTime); + { + $data = $this->getFieldValue($fieldname,$addrowqty,$evaluationTime,$specialtag); $value = str_replace($fieldstrings[$f], $data,$value); } foreach($varnames as $v => $varname) { - $data = $this->getVariableValue($varname,$evaluationTime); + $data = $this->getVariableValue($varname,$evaluationTime,$specialtag); $value = str_replace($varstrings[$v], $data,$value); } foreach($paranames as $p => $paraname) { - $data = $this->getParameterValue($paraname,$evaluationTime); + $data = $this->getParameterValue($paraname,$evaluationTime,$specialtag); if(gettype($data)=='array' || gettype($data)=='object') { return $data; @@ -100,26 +106,32 @@ protected function overrideJavaFunctions(string $expression,string $evaluationTi $expression = str_replace('new java.util.Date()','"'.date('Y-m-d H:i:s').'"',$expression); return $expression; } - protected function getFieldValue(string $name,int $addrowqty=0,string $evaluationTime='') + protected function getFieldValue(string $name,int $addrowqty=0,string $evaluationTime='',$specialtag=false) { $rowno = $this->currentRow+$addrowqty - $this->reducerowno; $datatype = $this->fields[$name]['datatype']; if(isset($this->rows[$rowno])) { $row=$this->rows[$rowno] ; - $value=$row[$name]; + if(isset($row[$name])) { + $value=$row[$name]; + } + else { + echo "field not exist :".$name."
"; + die; + } } else { $value=null; } - $value = $this->escapeIfRequire($value,$datatype); + $value = $this->escapeIfRequire($value,$datatype,$specialtag); return $value; } - protected function getParameterValue(string $key,string $evaluationTime='') + protected function getParameterValue(string $key,string $evaluationTime='',$specialtag=false) { $value=null; if(!isset($this->parameters[$key])) @@ -155,12 +167,12 @@ protected function getParameterValue(string $key,string $evaluationTime='') $value = $this->parameters[$key]['value']; } $datatype = $this->parameters[$key]['datatype']??'string'; - $value = $this->escapeIfRequire($value,$datatype); + $value = $this->escapeIfRequire($value,$datatype,$specialtag); return $value ; } - protected function getVariableValue($key,string $evaluationTime='') + protected function getVariableValue($key,string $evaluationTime='',$specialtag=false) { // echo "\n getVariableValue $key: \n"; $datatype = "number";//by default all datatype is number, unless variable class defined @@ -226,7 +238,7 @@ protected function getVariableValue($key,string $evaluationTime='') // echo "\nvar $key type = $datatype, data = $data \n"; - $result = $this->escapeIfRequire($data,$datatype); + $result = $this->escapeIfRequire($data,$datatype,$specialtag); break; } return $result ; @@ -238,8 +250,10 @@ protected function getVariableValue($key,string $evaluationTime='') * @param mixed $datatype string, number, boolean or null * @return mixed $data string or number value; */ - public function escapeIfRequire(mixed $value,mixed $datatype): mixed + public function escapeIfRequire(mixed $value,mixed $datatype,$specialtag): mixed { + $opentag = $specialtag ? '<{{' : '"'; + $closetag = $specialtag ? '}}>' : '"'; if(gettype($datatype)=='NULL') { $datatype = 'string'; @@ -265,7 +279,7 @@ public function escapeIfRequire(mixed $value,mixed $datatype): mixed } $data = addslashes($value); $data = str_replace('$','\$',$data); - $data = '"'.$data.'"'; + $data = $opentag.$data.$closetag; break; } return (string) $data; diff --git a/src/PHPJasperXML_load.php b/src/PHPJasperXML_load.php index e0ad12ca..3945d9fd 100644 --- a/src/PHPJasperXML_load.php +++ b/src/PHPJasperXML_load.php @@ -23,6 +23,12 @@ trait PHPJasperXML_load protected array $sortFields=[]; protected string $path = ''; protected array $scriptlets=[]; + + public function setPath(string $path):self{ + if(!$path)die('you shouldnt setPath with empty string'); + $this->path = $path; + return $this; + } /** * read jrxml file and load into memeory * @param string $filename @@ -32,7 +38,7 @@ public function load_xml_file(string $file ): self { $pathinfo = pathinfo($file); $this->filename = $pathinfo['basename']; - $this->path = $pathinfo['dirname']; + $this->setPath($pathinfo['dirname']); $xml = file_get_contents($file); $this->load_xml_string($xml); // print_r($this->bandelements); diff --git a/src/PHPJasperXML_output.php b/src/PHPJasperXML_output.php index 8c28df19..be2121d1 100644 --- a/src/PHPJasperXML_output.php +++ b/src/PHPJasperXML_output.php @@ -73,16 +73,14 @@ public function export(string $type,string $filename='') } // echo "export";die; - if(!empty($filename)) + if(empty($filename)) { - // $filename = '/tmp/'.str_replace('.jrxml','.pdf',$this->filename); + $this->output->export(); + - $this->output->export($filename); } - else - { - // echo 'export';die; - $this->output->export(); + else{ + return $this->output->export($filename); } } diff --git a/src/datadrivers/Mongodb_driver.php b/src/datadrivers/Mongodb_driver.php index 24bb83bb..4e4400d7 100644 --- a/src/datadrivers/Mongodb_driver.php +++ b/src/datadrivers/Mongodb_driver.php @@ -24,19 +24,47 @@ public function __construct(array $config) public function fetchData(mixed $querypara):array { $dbname = $this->dbname; + $query = \OviDigital\JsObjectToJson\JsConverter::convertToArray($querypara); - $collectionName = $query['collectionName']; - $aggregate = $query['aggregate']; - // print_r($this->conn->$collectionName); - $result = $this->conn->$dbname->$collectionName->aggregate($aggregate); - $array = json_decode(json_encode($result->toArray(),true), true); - // echo "
".print_r($array,true)."
"; $newarr=[]; - for($i=0;$iconvertObjectToArray($l); - array_push($newarr,$tmp); + + if(isset($query['collectionName'])){ + $collectionName = $query['collectionName']; + $result = []; + $projection = []; + $sort = []; + $limit = 0; + if(isset($query['findFields'])) $projection = $query['findFields']; + if(isset($query['sort'])) $sort = $query['sort']; + if(isset($query['limit'])) $limit = $query['limit']; + + + if(isset($query['findQuery'])){ + $findquery = $query['findQuery']; + $moreoptions =[]; + if($projection) $moreoptions['projection']=$projection; + if($limit) $moreoptions['limit']=$limit; + if($sort) $moreoptions['sort']=$sort; + $result = $this->conn->$dbname->$collectionName->find($findquery,$moreoptions); + }else if(isset($query['aggregate'])){ + $aggregate = $query['aggregate']; + // print_r($this->conn->$collectionName); + + $result = $this->conn->$dbname->$collectionName->aggregate($aggregate); + } + + $array = json_decode(json_encode($result->toArray(),true), true); + // echo "
".print_r($array,true)."
"; + + for($i=0;$iconvertObjectToArray($l); + array_push($newarr,$tmp); + } + + } + return $newarr; } diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index d713d790..1d7f8b33 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -6,10 +6,15 @@ $baseDir = dirname($vendorDir); return array( + 'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', + 'CURLStringFile' => $vendorDir . '/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php', 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', 'Datamatrix' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/datamatrix.php', 'PDF417' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/pdf417.php', + 'PhpToken' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php', 'QRcode' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/qrcode.php', + 'ReturnTypeWillChange' => $vendorDir . '/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php', + 'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php', 'TCPDF' => $vendorDir . '/tecnickcom/tcpdf/tcpdf.php', 'TCPDF2DBarcode' => $vendorDir . '/tecnickcom/tcpdf/tcpdf_barcodes_2d.php', 'TCPDFBarcode' => $vendorDir . '/tecnickcom/tcpdf/tcpdf_barcodes_1d.php', @@ -21,4 +26,6 @@ 'TCPDF_IMPORT' => $vendorDir . '/tecnickcom/tcpdf/tcpdf_import.php', 'TCPDF_PARSER' => $vendorDir . '/tecnickcom/tcpdf/tcpdf_parser.php', 'TCPDF_STATIC' => $vendorDir . '/tecnickcom/tcpdf/include/tcpdf_static.php', + 'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php', + 'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php', ); diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index 7e86badd..79f85017 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -6,6 +6,9 @@ $baseDir = dirname($vendorDir); return array( - '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php', '2cffec82183ee1cea088009cef9a6fc3' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php', + '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php', + 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php', + '23c18046f52bef3eea034657bafda50f' => $vendorDir . '/symfony/polyfill-php81/bootstrap.php', + '3a37ebac017bc098e9a86b35401e7a68' => $vendorDir . '/mongodb/mongodb/src/functions.php', ); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 792a5e82..8397e5ec 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -8,11 +8,16 @@ return array( 'simitsdk\\phpjasperxml\\' => array($baseDir . '/src'), 'ZipStream\\' => array($vendorDir . '/maennchen/zipstream-php/src'), + 'Symfony\\Polyfill\\Php81\\' => array($vendorDir . '/symfony/polyfill-php81'), + 'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'), 'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), - 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src', $vendorDir . '/psr/http-factory/src'), + 'Psr\\Log\\' => array($vendorDir . '/psr/log/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\\Container\\' => array($vendorDir . '/psr/container/src'), 'PhpOffice\\PhpSpreadsheet\\' => array($vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet'), + 'OviDigital\\JsObjectToJson\\' => array($vendorDir . '/ovidigital/js-object-to-json/src'), + 'MongoDB\\' => array($vendorDir . '/mongodb/mongodb/src'), 'Matrix\\' => array($vendorDir . '/markbaker/matrix/classes/src'), 'Faker\\' => array($vendorDir . '/fakerphp/faker/src/Faker'), 'Complex\\' => array($vendorDir . '/markbaker/complex/classes/src'), diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 25807574..674acce7 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -7,8 +7,11 @@ class ComposerStaticInit1ee3e3edcc9109e23c5f6c140d2c94f2 { public static $files = array ( - '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', '2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php', + '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', + 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', + '23c18046f52bef3eea034657bafda50f' => __DIR__ . '/..' . '/symfony/polyfill-php81/bootstrap.php', + '3a37ebac017bc098e9a86b35401e7a68' => __DIR__ . '/..' . '/mongodb/mongodb/src/functions.php', ); public static $prefixLengthsPsr4 = array ( @@ -20,16 +23,27 @@ class ComposerStaticInit1ee3e3edcc9109e23c5f6c140d2c94f2 array ( 'ZipStream\\' => 10, ), + 'S' => + array ( + 'Symfony\\Polyfill\\Php81\\' => 23, + 'Symfony\\Polyfill\\Php80\\' => 23, + ), 'P' => array ( 'Psr\\SimpleCache\\' => 16, + 'Psr\\Log\\' => 8, 'Psr\\Http\\Message\\' => 17, 'Psr\\Http\\Client\\' => 16, 'Psr\\Container\\' => 14, 'PhpOffice\\PhpSpreadsheet\\' => 25, ), + 'O' => + array ( + 'OviDigital\\JsObjectToJson\\' => 26, + ), 'M' => array ( + 'MongoDB\\' => 8, 'Matrix\\' => 7, ), 'F' => @@ -62,14 +76,26 @@ class ComposerStaticInit1ee3e3edcc9109e23c5f6c140d2c94f2 array ( 0 => __DIR__ . '/..' . '/maennchen/zipstream-php/src', ), + 'Symfony\\Polyfill\\Php81\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-php81', + ), + 'Symfony\\Polyfill\\Php80\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-php80', + ), 'Psr\\SimpleCache\\' => array ( 0 => __DIR__ . '/..' . '/psr/simple-cache/src', ), + 'Psr\\Log\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/log/src', + ), 'Psr\\Http\\Message\\' => array ( - 0 => __DIR__ . '/..' . '/psr/http-message/src', - 1 => __DIR__ . '/..' . '/psr/http-factory/src', + 0 => __DIR__ . '/..' . '/psr/http-factory/src', + 1 => __DIR__ . '/..' . '/psr/http-message/src', ), 'Psr\\Http\\Client\\' => array ( @@ -83,6 +109,14 @@ class ComposerStaticInit1ee3e3edcc9109e23c5f6c140d2c94f2 array ( 0 => __DIR__ . '/..' . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet', ), + 'OviDigital\\JsObjectToJson\\' => + array ( + 0 => __DIR__ . '/..' . '/ovidigital/js-object-to-json/src', + ), + 'MongoDB\\' => + array ( + 0 => __DIR__ . '/..' . '/mongodb/mongodb/src', + ), 'Matrix\\' => array ( 0 => __DIR__ . '/..' . '/markbaker/matrix/classes/src', @@ -152,10 +186,15 @@ class ComposerStaticInit1ee3e3edcc9109e23c5f6c140d2c94f2 ); public static $classMap = array ( + 'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', + 'CURLStringFile' => __DIR__ . '/..' . '/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php', 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 'Datamatrix' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/barcodes/datamatrix.php', 'PDF417' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/barcodes/pdf417.php', + 'PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php', 'QRcode' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/barcodes/qrcode.php', + 'ReturnTypeWillChange' => __DIR__ . '/..' . '/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php', + 'Stringable' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Stringable.php', 'TCPDF' => __DIR__ . '/..' . '/tecnickcom/tcpdf/tcpdf.php', 'TCPDF2DBarcode' => __DIR__ . '/..' . '/tecnickcom/tcpdf/tcpdf_barcodes_2d.php', 'TCPDFBarcode' => __DIR__ . '/..' . '/tecnickcom/tcpdf/tcpdf_barcodes_1d.php', @@ -167,6 +206,8 @@ class ComposerStaticInit1ee3e3edcc9109e23c5f6c140d2c94f2 'TCPDF_IMPORT' => __DIR__ . '/..' . '/tecnickcom/tcpdf/tcpdf_import.php', 'TCPDF_PARSER' => __DIR__ . '/..' . '/tecnickcom/tcpdf/tcpdf_parser.php', 'TCPDF_STATIC' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/tcpdf_static.php', + 'UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php', + 'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php', ); public static function getInitializer(ClassLoader $loader) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 6ccee317..8dcd00ba 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -332,6 +332,139 @@ }, "install-path": "../markbaker/matrix" }, + { + "name": "mongodb/mongodb", + "version": "1.18.0", + "version_normalized": "1.18.0.0", + "source": { + "type": "git", + "url": "https://github.com/mongodb/mongo-php-library.git", + "reference": "d421c418ef56a96f3dfa6b2828f936df6848ccf9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/d421c418ef56a96f3dfa6b2828f936df6848ccf9", + "reference": "d421c418ef56a96f3dfa6b2828f936df6848ccf9", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2.0", + "ext-hash": "*", + "ext-json": "*", + "ext-mongodb": "^1.18.0", + "php": "^7.4 || ^8.0", + "psr/log": "^1.1.4|^2|^3", + "symfony/polyfill-php80": "^1.27", + "symfony/polyfill-php81": "^1.27" + }, + "require-dev": { + "doctrine/coding-standard": "^12.0", + "rector/rector": "^0.19", + "squizlabs/php_codesniffer": "^3.7", + "symfony/phpunit-bridge": "^5.2", + "vimeo/psalm": "^5.13" + }, + "time": "2024-03-27T17:04:50+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.18.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "MongoDB\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Andreas Braun", + "email": "andreas.braun@mongodb.com" + }, + { + "name": "Jeremy Mikola", + "email": "jmikola@gmail.com" + }, + { + "name": "Jérôme Tamarelle", + "email": "jerome.tamarelle@mongodb.com" + } + ], + "description": "MongoDB driver library", + "homepage": "https://jira.mongodb.org/browse/PHPLIB", + "keywords": [ + "database", + "driver", + "mongodb", + "persistence" + ], + "support": { + "issues": "https://github.com/mongodb/mongo-php-library/issues", + "source": "https://github.com/mongodb/mongo-php-library/tree/1.18.0" + }, + "install-path": "../mongodb/mongodb" + }, + { + "name": "ovidigital/js-object-to-json", + "version": "1.1.4", + "version_normalized": "1.1.4.0", + "source": { + "type": "git", + "url": "https://github.com/ovidigital/js-object-to-json.git", + "reference": "192613f1c619635b37125c0382beb8bb14be14ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ovidigital/js-object-to-json/zipball/192613f1c619635b37125c0382beb8bb14be14ac", + "reference": "192613f1c619635b37125c0382beb8bb14be14ac", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0 || ^7.0 || ^8.0 || ^9.0" + }, + "time": "2023-12-08T18:40:18+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "OviDigital\\JsObjectToJson\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ovi Indrei", + "email": "ovidiu.indrei@gmail.com" + } + ], + "description": "PHP library to convert a JavaScript object string to JSON formatted string", + "homepage": "https://github.com/ovidigital/js-object-to-json", + "keywords": [ + "JS", + "javascript", + "json", + "object" + ], + "support": { + "issues": "https://github.com/ovidigital/js-object-to-json/issues", + "source": "https://github.com/ovidigital/js-object-to-json" + }, + "install-path": "../ovidigital/js-object-to-json" + }, { "name": "phpoffice/phpspreadsheet", "version": "1.29.0", @@ -665,6 +798,59 @@ }, "install-path": "../psr/http-message" }, + { + "name": "psr/log", + "version": "3.0.0", + "version_normalized": "3.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "time": "2021-07-14T16:46:02+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.0" + }, + "install-path": "../psr/log" + }, { "name": "psr/simple-cache", "version": "3.0.0", @@ -789,6 +975,168 @@ ], "install-path": "../symfony/deprecation-contracts" }, + { + "name": "symfony/polyfill-php80", + "version": "v1.29.0", + "version_normalized": "1.29.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "time": "2024-01-29T20:11:03+00:00", + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/polyfill-php80" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.29.0", + "version_normalized": "1.29.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d", + "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "time": "2024-01-29T20:11:03+00:00", + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/polyfill-php81" + }, { "name": "tecnickcom/tc-lib-barcode", "version": "1.18.4", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index f8a0cf52..3d24da1c 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -1,11 +1,11 @@ array( - 'pretty_version' => 'dev-master', - 'version' => 'dev-master', + 'pretty_version' => '2.1.0', + 'version' => '2.1.0.0', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '5e54c7a4402f6c8db7a20f7f3ab087c42eddebfe', + 'reference' => NULL, 'name' => 'simitsdk/phpjasperxml', 'dev' => true, ), @@ -55,6 +55,24 @@ 'reference' => '728434227fe21be27ff6d86621a1b13107a2562c', 'dev_requirement' => false, ), + 'mongodb/mongodb' => array( + 'pretty_version' => '1.18.0', + 'version' => '1.18.0.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../mongodb/mongodb', + 'aliases' => array(), + 'reference' => 'd421c418ef56a96f3dfa6b2828f936df6848ccf9', + 'dev_requirement' => false, + ), + 'ovidigital/js-object-to-json' => array( + 'pretty_version' => '1.1.4', + 'version' => '1.1.4.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../ovidigital/js-object-to-json', + 'aliases' => array(), + 'reference' => '192613f1c619635b37125c0382beb8bb14be14ac', + 'dev_requirement' => false, + ), 'phpoffice/phpspreadsheet' => array( 'pretty_version' => '1.29.0', 'version' => '1.29.0.0', @@ -100,6 +118,15 @@ 'reference' => '402d35bcb92c70c026d1a6a9883f06b2ead23d71', 'dev_requirement' => false, ), + 'psr/log' => array( + 'pretty_version' => '3.0.0', + 'version' => '3.0.0.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/log', + 'aliases' => array(), + 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', + 'dev_requirement' => false, + ), 'psr/simple-cache' => array( 'pretty_version' => '3.0.0', 'version' => '3.0.0.0', @@ -110,12 +137,12 @@ 'dev_requirement' => false, ), 'simitsdk/phpjasperxml' => array( - 'pretty_version' => 'dev-master', - 'version' => 'dev-master', + 'pretty_version' => '2.1.0', + 'version' => '2.1.0.0', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '5e54c7a4402f6c8db7a20f7f3ab087c42eddebfe', + 'reference' => NULL, 'dev_requirement' => false, ), 'symfony/deprecation-contracts' => array( @@ -127,6 +154,24 @@ 'reference' => '7c3aff79d10325257a001fcf92d991f24fc967cf', 'dev_requirement' => false, ), + 'symfony/polyfill-php80' => array( + 'pretty_version' => 'v1.29.0', + 'version' => '1.29.0.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/polyfill-php80', + 'aliases' => array(), + 'reference' => '87b68208d5c1188808dd7839ee1e6c8ec3b02f1b', + 'dev_requirement' => false, + ), + 'symfony/polyfill-php81' => array( + 'pretty_version' => 'v1.29.0', + 'version' => '1.29.0.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/polyfill-php81', + 'aliases' => array(), + 'reference' => 'c565ad1e63f30e7477fc40738343c62b40bc672d', + 'dev_requirement' => false, + ), 'tecnickcom/tc-lib-barcode' => array( 'pretty_version' => '1.18.4', 'version' => '1.18.4.0',