use fkooman\OAuth\Storage\PdoApprovalStorage; use fkooman\RemoteStorage\RemoteStorageClientStorage; use fkooman\RemoteStorage\DbTokenValidator; use fkooman\RemoteStorage\DocumentStorage; use fkooman\RemoteStorage\MetadataStorage; use fkooman\RemoteStorage\RemoteStorage; use fkooman\RemoteStorage\RemoteStorageResourceServer; use fkooman\RemoteStorage\RemoteStorageService; use fkooman\RemoteStorage\ApprovalManagementStorage; use fkooman\Rest\Plugin\Authentication\AuthenticationPlugin; use fkooman\Rest\Plugin\Authentication\Bearer\BearerAuthentication; use fkooman\Rest\Plugin\Authentication\Form\FormAuthentication; use fkooman\Tpl\Twig\TwigTemplateManager; try { $request = new Request($_SERVER); $configReader = new Reader(new YamlFile(dirname(__DIR__) . '/config/server.yaml')); $serverMode = $configReader->v('serverMode', false, 'production'); $document = new DocumentStorage($configReader->v('storageDir', false, sprintf('%s/data/storage', dirname(__DIR__)))); $dbDsn = $configReader->v('Db', 'dsn', false, sprintf('sqlite:%s/data/rs.sqlite', dirname(__DIR__))); // if we use sqlite, and database is not initialized we will initialize // all tables here. No need to manually initialize the database then! $initDb = false; if (0 === strpos($dbDsn, 'sqlite:')) { // sqlite if (!file_exists(substr($dbDsn, 7))) { // sqlite file does not exist $initDb = true; } } $db = new PDO($dbDsn, $configReader->v('Db', 'username', false), $configReader->v('Db', 'password', false)); // only enable templateCache when in production mode
use fkooman\OAuth\Storage\PdoAuthorizationCodeStorage; use fkooman\OAuth\Storage\PdoApprovalStorage; use fkooman\RemoteStorage\RemoteStorageClientStorage; use fkooman\RemoteStorage\DbTokenValidator; use fkooman\RemoteStorage\DocumentStorage; use fkooman\RemoteStorage\MetadataStorage; use fkooman\RemoteStorage\RemoteStorage; use fkooman\RemoteStorage\RemoteStorageResourceServer; use fkooman\RemoteStorage\RemoteStorageService; use fkooman\RemoteStorage\ApprovalManagementStorage; use fkooman\Rest\Plugin\Authentication\AuthenticationPlugin; use fkooman\Rest\Plugin\Authentication\Bearer\BearerAuthentication; use fkooman\Rest\Plugin\Authentication\Form\FormAuthentication; use fkooman\Tpl\Twig\TwigTemplateManager; try { $configReader = new Reader(new YamlFile(dirname(__DIR__) . '/config/server.yaml')); $serverMode = $configReader->v('serverMode', false, 'production'); $db = new PDO($configReader->v('Db', 'dsn', false, sprintf('sqlite:%s/data/rs.sqlite', dirname(__DIR__))), $configReader->v('Db', 'username', false), $configReader->v('Db', 'password', false)); $request = new Request($_SERVER); $templateManager = new TwigTemplateManager(array(dirname(__DIR__) . '/views', dirname(__DIR__) . '/config/views'), $configReader->v('templateCache', false, null)); $templateManager->setDefault(array('rootFolder' => $request->getUrl()->getRoot(), 'serverMode' => $serverMode)); $approvalStorage = new PdoApprovalStorage($db); $authorizationCodeStorage = new PdoAuthorizationCodeStorage($db); $accessTokenStorage = new PdoAccessTokenStorage($db); $md = new MetadataStorage($db); $document = new DocumentStorage($configReader->v('storageDir', false, sprintf('%s/data/storage', dirname(__DIR__)))); $remoteStorage = new RemoteStorage($md, $document); $session = new Session('php-remote-storage', array('secure' => 'development' !== $serverMode)); $userAuth = new FormAuthentication(function ($userId) use($configReader) { $userList = $configReader->v('Users'); if (null === $userList || !array_key_exists($userId, $userList)) {
public function testConfigValues() { $this->assertSame(array('foo'), Reader::configValues(array('foo', false, 'bar'))); $this->assertSame(array('foo'), Reader::configValues(array('foo'))); $this->assertSame(array('foo'), Reader::configValues(array('foo', true))); }
* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ require_once dirname(__DIR__) . '/vendor/autoload.php'; use fkooman\Config\YamlFile; use fkooman\Config\Reader; use fkooman\RemoteStorage\MetadataStorage; use fkooman\OAuth\Storage\PdoAccessTokenStorage; use fkooman\OAuth\Storage\PdoAuthorizationCodeStorage; use fkooman\OAuth\Storage\PdoApprovalStorage; try { $configReader = new Reader(new YamlFile(dirname(__DIR__) . '/config/server.yaml')); $db = new PDO($configReader->v('Db', 'dsn', false, sprintf('sqlite:%s/data/rs.sqlite', dirname(__DIR__))), $configReader->v('Db', 'username', false), $configReader->v('Db', 'password', false)); $metadataStorage = new MetadataStorage($db); $metadataStorage->initDatabase(); $approvalStorage = new PdoApprovalStorage($db); $approvalStorage->initDatabase(); $authorizationCodeStorage = new PdoAuthorizationCodeStorage($db); $authorizationCodeStorage->initDatabase(); $accessTokenStorage = new PdoAccessTokenStorage($db); $accessTokenStorage->initDatabase(); } catch (Exception $e) { echo $e->getMessage() . PHP_EOL; exit(1); }