* @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();
/** * 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; }
* 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();