Example #1
0
 * @license   MIT Public License
 *
 * MIT LICENSE
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to
 * deal in the Software without restriction, including without limitation the
 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 * sell copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 * IN THE SOFTWARE.
 */
require_once '../vendor/autoload.php';
// Initialise the web application
$app = new \SameAsLite\WebApp(array('footerText' => 'This data is released under a CC0 License. Do with it as you will ;)', 'about' => 'This is a test about section for seme4', 'contact' => ['name' => 'Steven Martin', 'email' => '*****@*****.**', 'telephone' => '0123456789']));
// Add default options to the MySQLStore
\SameAsLite\Store\MySQLStore::setDefaultOptions(['host' => '127.0.0.1', 'port' => '3306', 'charset' => 'utf8', 'dbName' => 'testdb']);
// Add the data sets
$app->addDataset(new \SameAsLite\Store\MySQLStore('webdemo', ['username' => 'testuser', 'password' => 'testpass']), array('slug' => 'VIAF', 'shortName' => 'VIAF', 'fullName' => 'Virtual International Authority File', 'contact' => ['name' => 'Joe Bloggs', 'email' => '*****@*****.**', 'telephone' => '0123456789']));
$app->addDataset(new \SameAsLite\Store\MySQLStore('table1', ['username' => 'testuser', 'password' => 'testpass', 'dbName' => 'testdb', 'host' => '127.0.0.1', 'port' => '3306', 'charset' => 'utf8']), array('slug' => 'test', 'shortName' => 'Test Store', 'fullName' => 'Test store used for SameAs Lite development', 'description' => 'There is lots of great info in here about the things you can do. Learn about places, cheese and crips and how these all relate!', 'contact' => ['name' => 'Joe Bloggs', 'email' => '*****@*****.**', 'telephone' => '0123456789']));
$app->run();
Example #2
0
 /**
  * Construct a sameAs Lite WebApp from the given array of options
  * Does NOT run the WebApp
  *
  * @param array $config Array of config for WebApp and associcated Stores
  *
  * @return \SameAsLite\WebApp The created WebApp
  * @throws \InvalidArgumentException When the options are invalid
  */
 public static function createWebAppFromArray(array $config)
 {
     /*
     //has no effect here
     
     //error reporting - need to have this as early as possible
     $mode = (isset($config['mode']) ? $config['mode'] : 'production');
     if ($mode === 'development') {
         // Dev error reporting
         ini_set('display_errors', 1);
         // ini_set('html_errors', 0); // disable xdebug var-dump formatting
         ini_set('display_startup_errors', 1);
         error_reporting(-1); // show all errors for development
     } else {
         error_reporting(0);
     }
     */
     if (!isset($config['webapp'])) {
         throw new \InvalidArgumentException('No WebApp Config found, must be under category "[webapp]"' . ' in config.ini');
     }
     $appcfg = $config['webapp'];
     unset($config['webapp']);
     // Pass the object on to create the store
     $stores = self::createStoresFromArray($config);
     $app = new \SameAsLite\WebApp($appcfg);
     foreach ($stores as $store) {
         $name = $store->getStoreName();
         $o = array_diff_key($config[$name], array_flip($store::getAvailableOptions()));
         $app->addDataset($store, $o);
     }
     return $app;
 }
Example #3
0
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to
 * deal in the Software without restriction, including without limitation the
 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 * sell copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 * IN THE SOFTWARE.
 */
require_once '../vendor/autoload.php';
/*
 * Using SQLite is a quick way to get the service up and running and checking if everything is working
 * SQLite only takes one option (the location of the store), for quick testing pass in null or false 
 * and the Database will be created in memory
*/
// Initialise the web application
$app = new \SameAsLite\WebApp(array('footerText' => 'This data is released under a CC0 License', 'about' => 'This is a test about section for seme4', 'contact' => ['name' => 'Steven Martin', 'email' => '*****@*****.**', 'telephone' => '0123456789']));
$store = \SameAsLite\SameAsLiteFactory::createStores('example-sqlite-config.ini')[0];
// Add the data sets
$app->addDataset($store, ['slug' => 'test1', 'shortName' => 'Test 1']);
$app->addDataset(new \SameAsLite\Store\SQLiteStore('test2', ['location' => 'test.db']), ['slug' => 'test2', 'shortName' => 'Test 2']);
$app->run();