PrizmDoc v13.3 - Updated
PHP Integration Example
Get Started! > 4 - Integrate the Viewer with Your Application > Integrate Your Web Application with PAS > PHP Integration Example

PHP

Before you get started, it's helpful to see an application overview of the default PHP sample setup:

Figure 1: PHP Sample Setup

First Steps

Before integrating with your application environment, a helpful first step is to install one of the provided samples. With a working sample, you will have a proof-of-concept that demonstrates the functionality of the PrizmDoc Server working together with your web server. To get started with setting up a sample, refer to How to Configure php Samples.

Once installed, the sample will load in the following manner (refer to Figure 1 above):

  1. index.php is called on the web server by a request initiated by a web browser.
  2. index.php executes and bundles together various application resources like user interface templates, language files, and predefined search queries.
  3. Once index.php is loaded in to the web browser, the Viewer application files (javascript, css, and image resources) are then loaded from the web server.
  4. Upon receiving the files in the web browser, the Viewer application starts and requests a document for display from the web server. This request is routed through pas.php as are all other subsequent service requests. pas.php acts as a router between the Viewer and PrizmDoc Application Services (PAS). Note that this can be configured to work directly through IIS instead of using application logic. Refer to the Configure PrizmDoc Application Services in Your Server's Entry Point 'how-to' topic.
  5. At this stage, the Viewer is fully loaded and displaying a document. It will now respond to user interaction by processing it locally in the browser or, if not possible, by sending service requests to the PrizmDoc Application Services (PAS).

Integration

The Front End

The Viewer loads like most modern web applications: a server script is called, which then presents an HTML page to the browser. The browser loads the linked JavaScript and CSS files, which triggers the front-end web application to initiate. Because the technologies are standard web ones, you can take the js, img, and css folders provided by the sample and plug them in to your existing web platform. The sample places the JavaScript and CSS folders at the same directory level as the application launching index.php. However, the location of these resources can be changed by following the directions in Using a Custom Resource Path.

Also, for details on embedding the Viewer on existing pages, see Embedding the Viewer.

The Back End

An important point to make is that while your web application, PAS, and the PrizmDoc Server can be installed on the same machine, they do not have to be. Because the web server communicates with the other services over RESTful network calls, they can be located anywhere where they can all interact with each other over HTTP. In the sample, the PAS host URL and port are defined in the pcc.config file with several parameters prefixed with PrizmApplicationServices.

Figure 2: The pcc.config file

<?xml version="1.0" encoding="UTF-8"?>
<Config>
  <PrizmApplicationServicesScheme>http</PrizmApplicationServicesScheme>
  <PrizmApplicationServicesHost>localhost</PrizmApplicationServicesHost>
  <PrizmApplicationServicesPort>3000</PrizmApplicationServicesPort>
</Config>

In the default installation, the web tier sample is configured with the default location of the PrizmDoc Application Services (PAS). When deploying to multiple servers, you may need to change the values here to allow the web tier sample to communicate with PAS.

Another important file is pas.php. This acts as a router between the front end Viewer and PrizmDoc Application Services (PAS). So pas.php must be able to receive and respond to requests from the Viewer. The sample places pas.php in the viewer-webtier directory and informs the Viewer of its location via the imageHandlerUrl parameter in index.php:

Figure 3: Example of imageHandlerUrl in plugin options

var pluginOptions = {
  documentID: viewingSessionId,
  language : viewerCustomizations.languages['en-US'],
  annotationsMode: "LayeredAnnotations",
  documentDisplayName: originalDocumentName,
  imageHandlerUrl: "viewer-webtier/pas.php",
  immediateActionMenuMode: "hover",
  predefinedSearch: searchTerms,
  template: viewerCustomizations.template,
  redactionReasons: redactionReasons,
  signatureCategories: "Signature,Initials,Title",
  icons : viewerCustomizations.icons
};

$(document).ready(function(){
  var viewerControl = $("#viewer1").pccViewer(pluginOptions).viewerControl;
});

So, you can easily change the location of pas.php and then adjust the imageHandlerUrl parameter to match. Just be aware that pas.php works together with the rest of the files in the viewer-webtier directory. Those files will need to be moved with pas.php.