1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeaunamespace ComboStrap; 4*04fd306cSNickeau 5*04fd306cSNickeau/** 6*04fd306cSNickeau * First class to migrate to a combo file system implementation 7*04fd306cSNickeau * in the database 8*04fd306cSNickeau * 9*04fd306cSNickeau * The function are here to locate where the code should go. 10*04fd306cSNickeau */ 11*04fd306cSNickeauclass ComboFs 12*04fd306cSNickeau{ 13*04fd306cSNickeau 14*04fd306cSNickeau const CANONICAL = "combo-file-system"; 15*04fd306cSNickeau 16*04fd306cSNickeau /** 17*04fd306cSNickeau * @param Path $path - the path (no more markup, ultimately, it should be a CombPath) 18*04fd306cSNickeau * @return void 19*04fd306cSNickeau */ 20*04fd306cSNickeau public static function createIfNotExists(Path $path) 21*04fd306cSNickeau { 22*04fd306cSNickeau 23*04fd306cSNickeau $markup = MarkupPath::createPageFromPathObject($path); 24*04fd306cSNickeau try { 25*04fd306cSNickeau $databasePage = new DatabasePageRow(); 26*04fd306cSNickeau try { 27*04fd306cSNickeau $databasePage->getDatabaseRowFromPage($markup); 28*04fd306cSNickeau } catch (ExceptionNotExists $e) { 29*04fd306cSNickeau $pageId = PageId::generateAndStorePageId($markup); 30*04fd306cSNickeau $databasePage->upsertAttributes([PageId::getPersistentName() => $pageId]); 31*04fd306cSNickeau } 32*04fd306cSNickeau } catch (ExceptionCompile $e) { 33*04fd306cSNickeau throw new ExceptionRuntimeInternal("Unable to store the page id in the database. Message:" . $e->getMessage(), self::CANONICAL, 1, $e); 34*04fd306cSNickeau } 35*04fd306cSNickeau } 36*04fd306cSNickeau 37*04fd306cSNickeau public static function delete(Path $path) 38*04fd306cSNickeau { 39*04fd306cSNickeau $markup = MarkupPath::createPageFromPathObject($path); 40*04fd306cSNickeau try { 41*04fd306cSNickeau DatabasePageRow::getOrCreateFromPageObject($markup) 42*04fd306cSNickeau ->deleteIfExist(); 43*04fd306cSNickeau } catch (ExceptionSqliteNotAvailable $e) { 44*04fd306cSNickeau // 45*04fd306cSNickeau } 46*04fd306cSNickeau } 47*04fd306cSNickeau} 48