our recent news. When switching to a new version of the products, we tried to keep the already written code as compatible as possible. However, for the products to work correctly, it will be necessary to make minor changes. Please read about this in the article.
To install the product in an existing project, you should copy the
or
Now you can delete the following folders with resources and scripts from previous product versions in the root directory:
In the updated product, we changed the product scripts location folder. This was necessary to implement support for the Composer package manager. Now all files are located in the
The work of the specified connection method is saved, but after loading the package using Composer, it is necessary to correct the paths to all product scripts:
In the updated product, a particular PHP class was added for its deployment, and we recommend using this method. Now, for deployment, it is enough to place a few lines of PHP code in the
You can customize the deployment process using the available class options if necessary.
This code has been replaced in the new version to match the rest of the PHP classes in the updated products. It is enough to add updated code instead of the old code, everything else should work as before:
You can change the path to the event handler file and the response timeout from the server using the available class options if necessary.
If it is necessary to pre-process the event on the JavaScript client-side, you should specify the function name for the event. All the rest will be done automatically:
This code is still fully functional, but you can do the same steps much easier with PHP code:
We have already written about this in more detail in Product Deployment
To use the product, you should download the ZIP archive of the product from the Downloads page of our website, unpack it, and copy the/PHP
folder to your Web server. This folder contains a Web project with all the necessary files and resources for the product work and examples for working with the viewer and designer.To install the product in an existing project, you should copy the
/vendor
folder from the /PHP
folder to the root directory of the project or use the Composer dependency manager by executing the following console command:composer require stimulsoft/reports-php
or
composer require stimulsoft/dashboards-php
.Now you can delete the following folders with resources and scripts from previous product versions in the root directory:
/localization
, /css
, /scripts
, /stimulsoft
. Be careful if the specified folders additionally contain your project files, then delete only the files associated with our products.Connecting Product Libraries
Previously, all PHP libraries of the product were located in the/stimulsoft
folder, and to connect them, it was enough to install the dependency for the main product file:<?php
require_once 'stimulsoft/helper.php';
?>
In the updated product, we changed the product scripts location folder. This was necessary to implement support for the Composer package manager. Now all files are located in the
/vendor
folder in the root directory of the project. To automatically connect all dependencies, you should connect the PHP class loader, which will automatically do the rest of the work: <?php
require_once 'vendor/autoload.php';
?>
Connecting scripts
Previously, to enable product scripts, it was necessary to add the entire list in the<head>
block, depending on the required components and capabilities:<head>
<script src="/scripts/stimulsoft.reports.js" type="text/javascript"></script>
<script src="/scripts/stimulsoft.dashboards.js" type="text/javascript"></script>
<script src="/scripts/stimulsoft.viewer.js" type="text/javascript"></script>
</head>
The work of the specified connection method is saved, but after loading the package using Composer, it is necessary to correct the paths to all product scripts:
<head>
<script src="/vendor/stimulsoft/reports-php/scripts/stimulsoft.reports.js" type="text/javascript"></script>
<script src="/vendor/stimulsoft/dashboards-php/scripts/stimulsoft.dashboards.js" type="text/javascript"></script>
<script src="/vendor/stimulsoft/reports-php/scripts/stimulsoft.viewer.js" type="text/javascript"></script>
</head>
In the updated product, a particular PHP class was added for its deployment, and we recommend using this method. Now, for deployment, it is enough to place a few lines of PHP code in the
<head>
block in the place where the product scripts were added:<head>
<?php
$js = new \Stimulsoft\StiJavaScript(\Stimulsoft\StiComponentType::Viewer);
$js->renderHtml();
?>
</head>
You can customize the deployment process using the available class options if necessary.
Event handler initialization
A special event handler sends data to the PHP server-side from component events. It consists of a JavaScript client-side and a PHP server-side. Previously, to initialize it on an HTML page, you had to add the following PHP code:<?php
StiHelper::init('handler.php', 30);
?>
This code has been replaced in the new version to match the rest of the PHP classes in the updated products. It is enough to add updated code instead of the old code, everything else should work as before:
<?php
$handler = new \Stimulsoft\StiHandler();
$handler->renderHtml();
?>
You can change the path to the event handler file and the response timeout from the server using the available class options if necessary.
Working with components
All code written previously for working with components should work without any problems. PHP classes have been added to the updated product to work with the main features of the components, which makes it easier to work with them using PHP code. Now, if necessary, you can replace JavaScript code with PHP code. For example, use the following code to work with the report viewer:<script type="text/javascript">
<?php
$options = new \Stimulsoft\Viewer\StiViewerOptions();
$options->appearance->fullScreenMode = true;
$options->appearance->scrollbarsMode = true;
$viewer = new \Stimulsoft\Viewer\StiViewer($options);
$report = new \Stimulsoft\Report\StiReport();
$report->loadFile('reports/SimpleList.mrt');
$viewer->report = $report;
$viewer->renderHtml('viewerContent');
?>
</script>
Working with events
In the same way as components, all of their events will work without code changes. In the updated product, we have simplified working with events. Now to work with the event on the PHP server-side, you only need to indicate that the selected event will be processed. For example, to add an SQL data retrieval event, one line of code is enough:<script type="text/javascript">
<?php
$viewer = new \Stimulsoft\Viewer\StiViewer($options);
$viewer->onBeginProcessData = true;
$viewer->renderHtml('viewerContent');
?>
</script>
If it is necessary to pre-process the event on the JavaScript client-side, you should specify the function name for the event. All the rest will be done automatically:
<script type="text/javascript">
<?php
$viewer = new \Stimulsoft\Viewer\StiViewer($options);
$viewer->onBeginProcessData = 'onBeginProcessData';
$viewer->renderHtml('viewerContent');
?>
function onBeginProcessData(args) {
}
</script>
Exporting a report
Previously, you had to write a relatively large block of JavaScript code to export a report. For example, you would add the following code to an HTML page to export a report to PDF:var report = new Stimulsoft.Report.StiReport();
report.loadFile("reports/SimpleList.mrt");
report.renderAsync(function() {
report.exportDocumentAsync(function (data) {
Stimulsoft.System.StiObject.saveAs(data, "Report.pdf", "application/pdf");
}, Stimulsoft.Report.StiExportFormat.Pdf);
});
This code is still fully functional, but you can do the same steps much easier with PHP code:
<?php
$report = new \Stimulsoft\Report\StiReport();
$report->loadFile('reports/SimpleList.mrt');
$report->render();
$report->exportDocument(\Stimulsoft\StiExportFormat::Pdf);
$report->renderHtml();
?>