Skip to content
This repository has been archived by the owner on Apr 5, 2020. It is now read-only.

xp-framework/scriptlet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scriptlets for the XP Framework

Build Status on TravisCI XP Framework Module BSD Licence Required PHP 5.6+ Supports PHP 7.0+ Latest Stable Version

Everything that runs in the web in the XP Framework, is a scriptlet, at the beginning. Every higher-class API is derived from the simple HttpScriptlet class: RestScriptlet, WorkflowScriptlet, ...

The HttpScriptlet class

The scriptlet.HttpScriptlet class is the base class for any so-called scriptlet. A scriptlet is something that can serve HTTP requests.

The simplest form of answering an HTTP request in XP Framework goes like this:

namespace com\example\web;

class HelloScriptlet extends \scriptlet\HttpScriptlet {

  /**
   * Perform GET request
   *
   * @param  scriptlet.Request $request
   * @param  scriptlet.Response $response
   * @throws scriptlet.ScriptletException
   */
  public function doGet($request, $response) {
    $response->write(sprintf('<!DOCTYPE html>
      <html>
        <head><title>Hello World scriptlet</title></head>
        <body>
          <h1>Hello %s</h1>
        </body>
      </html>',
      htmlspecialchars($request->getParam('name', 'World'))
    ));
  }
}

This code generates a HTML page that shows a headline "Hello World" or "Hello $something" when something was given as GET-parameter "name".

Override doPost() or any of the other methods named after HTTP request types to serve these request types, as well.

Running it

Use the xp web runner to serve your scriptlet:

$ xp web com.example.web.HelloScriptlet
[xpws-dev#7312] running localhost:8080 @ /path/to/web/project - Press <Enter> to exit

Now open http://localhost:8080/ in your browser.