File: configLoader.php

package info (click to toggle)
simplesamlphp 1.19.7-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 42,920 kB
  • sloc: php: 202,044; javascript: 14,867; xml: 2,700; sh: 225; perl: 82; makefile: 70; python: 5
file content (45 lines) | stat: -rw-r--r-- 1,816 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php

declare(strict_types=1);

use SimpleSAML\Configuration;

/*
 * This "router" (a script that's executed for every request received by PHP's built-in web server) will look
 * for a file in the system's temporary directory, with the PID of the current process as its name, and the
 * '.lock' extension. If the file exists, it will try to include it and preload SimpleSAMLphp's configuration with
 * the $config array defined in that file.
 * This is useful to configure SimpleSAMLphp dynamically when running inside the built-in server, so that
 * we can test different configurations without the need to keep a structure of files.
 *
 * In order to use it:
 *
 * 1. Create an array with the SimpleSAMLphp configuration you would like to use.
 * 2. Start the built-in server passing "configLoader" as the first parameter to the constructor:
 *      $server = new BuiltInServer('configLoader');
 *      $addr = $server->start();
 * 3. Get the PID of the server once it has started:
 *      $pid = $server->getPid();
 * 4. Build the path to the file that this script will use:
 *      $file = sys_get_temp_dir().'/'.$pid.'.lock';
 * 5. Dump the configuration array to the file:
 *      file_put_contents("<?php\n\$config = ".var_export($config, true).";\n");
 * 6. Make a request to the server:
 *      $server->get($query, $parameters);
 * 7. Remove the temporary file when done:
 *      unlink($file);
 */

include_once(sys_get_temp_dir() . '/' . getmypid() . '.lock');

// load SimpleSAMLphp's autoloader
require_once(dirname(dirname(dirname(__FILE__))) . '/vendor/autoload.php');

// initialize configuration
if (isset($config)) {
    Configuration::loadFromArray($config, '[ARRAY]', 'simplesaml');
}

// let the script proceed
// see: http://php.net/manual/en/features.commandline.webserver.php
return false;