/** * REST actions * * This function contains the REST actions with the assignments to * the functions. */ public function __construct() { // runs the CConfig $com = new CConfig(DBSetting::getPrefix() . ',course,link', dirname(__FILE__)); // runs the DBSetting if ($com->used()) { return; } $this->_conf = $com; // initialize slim $this->_app = new \Slim\Slim(array('debug' => true)); $this->_app->response->headers->set('Content-Type', 'application/json'); // POST AddCourse $this->_app->post('(/:pre)/course', array($this, 'addCourse')); // POST DeleteCourse $this->_app->delete('(/:pre)/course/:courseid', array($this, 'deleteCourse')); // PUT EditSetting $this->_app->put('(/:pre)/' . $this->getPrefix() . '/setting/:setid', array($this, 'editSetting')); // DELETE DeleteSetting $this->_app->delete('(/:pre)/' . $this->getPrefix() . '/setting/:setid', array($this, 'deleteSetting')); // POST AddSetting $this->_app->post('(/:pre)/' . $this->getPrefix() . '/course/:courseid', array($this, 'addSetting')); // GET GetExistsCourseSettings $this->_app->get('(/:pre)/link/exists/course/:courseid', array($this, 'getExistsCourseSettings')); // GET GetCourseSettings $this->_app->get('(/:pre)/' . $this->getPrefix() . '/course/:courseid', array($this, 'getCourseSettings')); // GET GetSetting $this->_app->get('(/:pre)/' . $this->getPrefix() . '/setting/:setid', array($this, 'getSetting')); // GET GetSettingByName $this->_app->get('(/:pre)/' . $this->getPrefix() . '/course/:courseid/name/:setname', array($this, 'getSettingByName')); // run Slim $this->_app->run(); }
/** * REST actions * * This function contains the REST actions with the assignments to * the functions. */ public function __construct() { // runs the CConfig $com = new CConfig(LExtension::getPrefix() . ',course', dirname(__FILE__)); // runs the LExtension if ($com->used()) { return; } $conf = $com->loadConfig(); // initialize slim $this->app = new \Slim\Slim(array('debug' => true)); $this->app->response->headers->set('Content-Type', 'application/json'); // initialize component $this->_conf = $conf; $this->_extension = CConfig::getLinks($conf->getLinks(), "extension"); //POST AddCourseExtension $this->app->post('/link/course/:courseid/extension/:name', array($this, 'addCourseExtension')); //DELETE DeleteCourseExtension $this->app->delete('/link/course/:courseid/extension/:name', array($this, 'deleteCourseExtension')); //DELETE DeleteCourse $this->app->delete('/course/:courseid/', array($this, 'deleteCourse')); //GET GetExtensionInstalled $this->app->get('/link/exists/course/:courseid/extension/:name', array($this, 'getExtensionInstalled')); //GET GetInstalledExtensions $this->app->get('/link/course/:courseid/extension', array($this, 'getInstalledExtensions')); //GET GetExtensions $this->app->get('/link/extension(/)', array($this, 'getExtensions')); //GET GetExtensionExists $this->app->get('/link/exists/extension/:name', array($this, 'getExtensionExists')); //GET GetExtension $this->app->get('/link/extension/:name', array($this, 'getExtension')); //run Slim $this->app->run(); }
/** * REST actions * * This function contains the REST actions with the assignments to * the functions. */ public function __construct() { // runs the CConfig $com = new CConfig(DBAttachment2::getPrefix() . ',course,link', dirname(__FILE__)); // runs the DBAttachment2 if ($com->used()) { return; } $this->_conf = $com; // initialize slim $this->_app = new \Slim\Slim(array('debug' => true)); $this->_app->response->headers->set('Content-Type', 'application/json'); // POST AddCourse $this->_app->post('(/:pre)/course(/)', array($this, 'addCourse')); // POST DeleteCourse $this->_app->delete('(/:pre)/course/:courseid(/)', array($this, 'deleteCourse')); // PUT EditAttachment $this->_app->put('(/:pre)/' . $this->getPrefix() . '(/attachment)/:aid(/)', array($this, 'editAttachment')); // DELETE DeleteAttachment $this->_app->delete('(/:pre)/' . $this->getPrefix() . '(/attachment)/:aid(/)', array($this, 'deleteAttachment')); // POST AddAttachment $this->_app->post('(/:pre)/' . $this->getPrefix(), array($this, 'addAttachment')); // GET GetExistsCourseAttachments $this->_app->get('(/:pre)/link/exists/course/:courseid(/)', array($this, 'getExistsCourseAttachments')); // GET GetAttachment $this->_app->get('(/:pre)/' . $this->getPrefix() . '(/attachment)/:aid(/)', array($this, 'getAttachment')); // GET GetExerciseAttachments $this->_app->get('(/:pre)/' . $this->getPrefix() . '/exercise/:eid(/)', array($this, 'getExerciseAttachments')); // GET GetSheetAttachments $this->_app->get('(/:pre)/' . $this->getPrefix() . '/exercisesheet/:esid(/)', array($this, 'getSheetAttachments')); // GET GetCourseAttachments $this->_app->get('(/:pre)/' . $this->getPrefix() . '/course/:courseid(/)', array($this, 'getCourseAttachments')); // run Slim $this->_app->run(); }
/** * REST actions * * This function contains the REST actions with the assignments to * the functions. */ public function __construct() { // runs the CConfig $com = new CConfig(LFormProcessor::getPrefix() . ',course,link', dirname(__FILE__)); // runs the LFormProcessor if ($com->used()) { return; } $conf = $com->loadConfig(); // initialize slim $this->app = new \Slim\Slim(array('debug' => true)); $this->app->response->headers->set('Content-Type', 'application/json'); // initialize component $this->_conf = $conf; $this->_formDb = CConfig::getLinks($conf->getLinks(), "formDb"); $this->_pdf = CConfig::getLinks($conf->getLinks(), "pdf"); $this->_postProcess = CConfig::getLinks($conf->getLinks(), "postProcess"); $this->_deleteProcess = CConfig::getLinks($conf->getLinks(), "deleteProcess"); $this->_getProcess = CConfig::getLinks($conf->getLinks(), "getProcess"); // POST PostProcess $this->app->map('/' . $this->getPrefix() . '(/)', array($this, 'postProcess'))->via('POST'); // POST AddCourse $this->app->post('/course(/)', array($this, 'addCourse')); // POST DeleteCourse $this->app->delete('/course/:courseid(/)', array($this, 'deleteCourse')); // GET GetExistsCourse $this->app->get('/link/exists/course/:courseid(/)', array($this, 'getExistsCourse')); // run Slim $this->app->run(); }
/** * REST actions * * This function contains the REST actions with the assignments to * the functions. * * @param Component $conf component data */ public function __construct() { // runs the CConfig $com = new CConfig(LCourse::getPrefix(), dirname(__FILE__)); // runs the LCourse if ($com->used()) { return; } $conf = $com->loadConfig(); // initialize slim $this->app = new \Slim\Slim(array('debug' => true)); $this->app->response->headers->set('Content-Type', 'application/json'); // initialize component $this->_conf = $conf; $this->query = CConfig::getLink($conf->getLinks(), "controller"); $this->_deleteCourse = CConfig::getLinks($conf->getLinks(), "deleteCourse"); $this->_postCourse = CConfig::getLinks($conf->getLinks(), "postCourse"); // initialize lURL $this->lURL = $this->query->getAddress(); //POST AddCourse $this->app->post('/' . $this->getPrefix() . '(/)', array($this, 'AddCourse')); //PUT EditCourse $this->app->put('/' . $this->getPrefix() . '/course/:courseid(/)', array($this, 'editCourse')); //DELETE DeleteCourse $this->app->delete('/' . $this->getPrefix() . '/course/:courseid(/)', array($this, 'deleteCourse')); //POST AddCourseMember $this->app->post('/' . $this->getPrefix() . '/course/:courseid/user/:userid/status/:status(/)', array($this, 'addCourseMember')); //GET GetCourseMember $this->app->get('/' . $this->getPrefix() . '/course/:courseid/user(/)', array($this, 'getCourseMember')); //GET GetCourses $this->app->get('/' . $this->getPrefix() . '/user/:userid(/)', array($this, 'getCourses')); //run Slim $this->app->run(); }
/** * REST actions * * This function contains the REST actions with the assignments to * the functions. */ public function __construct() { // runs the CConfig $com = new CConfig(LProcessor::getPrefix() . ',submission,course,link', dirname(__FILE__)); // runs the LProcessor if ($com->used()) { return; } $conf = $com->loadConfig(); // initialize slim $this->app = new \Slim\Slim(); $this->app->response->headers->set('Content-Type', 'application/json'); // initialize component $this->_conf = $conf; $this->_submission = CConfig::getLinks($conf->getLinks(), "submission"); $this->_marking = CConfig::getLinks($conf->getLinks(), "marking"); $this->_processorDb = CConfig::getLinks($conf->getLinks(), "processorDb"); $this->_attachment = CConfig::getLinks($conf->getLinks(), "attachment"); $this->_workFiles = CConfig::getLinks($conf->getLinks(), "workFiles"); $this->_file = CConfig::getLinks($conf->getLinks(), "file"); $this->_createCourse = CConfig::getLinks($conf->getLinks(), "postCourse"); $this->_getExerciseExerciseFileType = CConfig::getLinks($conf->getLinks(), "getExerciseExerciseFileType"); // POST PostSubmission $this->app->map('/submission(/)', array($this, 'postSubmission'))->via('POST'); // POST AddProcess $this->app->map('/' . $this->getPrefix() . '(/)', array($this, 'addProcess'))->via('POST'); // POST AddCourse $this->app->post('/course(/)', array($this, 'addCourse')); // POST DeleteCourse $this->app->delete('/course/:courseid(/)', array($this, 'deleteCourse')); // GET GetExistsCourse $this->app->get('/link/exists/course/:courseid(/)', array($this, 'getExistsCourse')); // run Slim $this->app->run(); }
/** * the component constructor */ public function __construct() { // runs the CConfig $com = new CConfig(CControl::getPrefix() . ',link,definition', dirname(__FILE__)); // runs the DBSubmission if ($com->used()) { return; } // initialize slim $this->_app = new \Slim\Slim(); $this->_app->response->headers->set('Content-Type', 'application/json'); // POST AddPlatform $this->_app->post('/platform', array($this, 'addPlatform')); // DELETE DeletePlatform $this->_app->delete('/platform', array($this, 'deletePlatform')); // GET GetExistsPlatform $this->_app->get('/link/exists/platform', array($this, 'getExistsPlatform')); // GET GetTableReferences $this->_app->get('/tableReferences', array($this, 'getTableReferences')); // PUT EditLink $this->_app->put('/link/:linkid(/)', array($this, 'editLink')); // DELETE DeleteLink $this->_app->delete('/link/:linkid(/)', array($this, 'deleteLink')); // POST SetLink $this->_app->post('/link(/)', array($this, 'setLink')); // GET GetLink $this->_app->get('/link/:linkid(/)', array($this, 'getLink')); // PUT EditComponent $this->_app->put('/component/:componentid(/)', array($this, 'editComponent')); // DELETE DeleteComponent $this->_app->delete('/component/:componentid(/)', array($this, 'deleteComponent')); // POST SetComponent $this->_app->post('/component(/)', array($this, 'setComponent')); // GET GetComponent $this->_app->get('/component/:componentid(/)', array($this, 'getComponent')); // GET GetComponentDefinitions $this->_app->get('/definition(/)', array($this, 'getComponentDefinitions')); // GET SendComponentDefinitions $this->_app->get('(/definition)/send(/)', array($this, 'sendComponentDefinitions')); // GET GetComponentDefinition $this->_app->get('/definition/:componentid(/)', array($this, 'getComponentDefinition')); // run Slim $this->_app->run(); }
/** * REST actions * * This function contains the REST actions with the assignments to * the functions. */ public function __construct() { // runs the CConfig $com = new CConfig('transaction,course,link', dirname(__FILE__)); // runs the DBTransaction if ($com->used()) { return; } $this->_conf = $com; // initialize slim $this->_app = new \Slim\Slim(array('debug' => true)); $this->_app->response->headers->set('Content-Type', 'application/json'); // POST AddCourse $this->_app->post('(/:name)/course', array($this, 'addCourse')); // POST DeleteCourse $this->_app->delete('(/:name)/course/:courseid', array($this, 'deleteCourse')); // GET GetExistsCourseTransactions $this->_app->get('(/:name)/link/exists/course/:courseid', array($this, 'getExistsCourseTransactions')); // DELETE DeleteTransaction $this->_app->delete('(/:name)/transaction/authentication/:auid/transaction/:tid', array($this, 'deleteTransaction')); // DELETE DeleteTransactionShort $this->_app->delete('(/:name)/transaction/transaction/:tid', array($this, 'deleteTransactionShort')); // POST AddTransaction $this->_app->post('(/:name)/transaction/course/:courseid', array($this, 'addTransaction')); // POST AddSheetTransaction $this->_app->post('(/:name)/transaction/exercisesheet/:esid', array($this, 'addSheetTransaction')); // POST AddExerciseTransaction $this->_app->post('(/:name)/transaction/exercise/:eid', array($this, 'addExerciseTransaction')); // GET GetTransaction $this->_app->get('(/:name)/transaction/authentication/:auid/transaction/:tid', array($this, 'getTransaction')); // GET GetTransactionShort $this->_app->get('(/:name)/transaction/transaction/:tid', array($this, 'getTransactionShort')); // GET GetAmountOfExpiredTransactions $this->_app->get('(/:name)/clean/clean/course/:courseid', array($this, 'getAmountOfExpiredTransactions')); // DELETE CleanTransactions $this->_app->delete('(/:name)/clean/clean/course/:courseid', array($this, 'cleanTransactions')); // run Slim $this->_app->run(); }
/** * REST actions * * This function contains the REST actions with the assignments to * the functions. */ public function __construct() { // runs the CConfig $com = new CConfig(DBForm::getPrefix() . ',course,link', dirname(__FILE__)); // runs the DBForm if ($com->used()) { return; } $conf = $com->loadConfig(); // initialize component $this->_conf = $conf; $this->query = array(CConfig::getLink($conf->getLinks(), 'out')); // initialize slim $this->_app = new \Slim\Slim(); $this->_app->response->headers->set('Content-Type', 'application/json'); // POST AddCourse $this->_app->post('/course(/)', array($this, 'addCourse')); // POST DeleteCourse $this->_app->delete('/course/:courseid(/)', array($this, 'deleteCourse')); // PUT EditForm $this->_app->put('/' . $this->getPrefix() . '(/form)/:formid(/)', array($this, 'editForm')); // DELETE DeleteForm $this->_app->delete('/' . $this->getPrefix() . '(/form)/:formid(/)', array($this, 'deleteForm')); // POST AddForm $this->_app->post('/' . $this->getPrefix() . '(/)', array($this, 'addForm')); // GET GetForm $this->_app->get('/' . $this->getPrefix() . '(/form)/:formid(/)', array($this, 'getForm')); // GET GetCourseForms $this->_app->get('/' . $this->getPrefix() . '/course/:courseid(/)', array($this, 'getCourseForms')); // GET GetExistsCourseForms $this->_app->get('/link/exists/course/:courseid(/)', array($this, 'getExistsCourseForms')); // GET GetSheetForms $this->_app->get('/' . $this->getPrefix() . '/exercisesheet/:esid(/)', array($this, 'getSheetForms')); // GET GetExerciseForms $this->_app->get('/' . $this->getPrefix() . '/exercise/:eid(/)', array($this, 'getExerciseForms')); // run Slim $this->_app->run(); }
/** * REST actions * * This function contains the REST actions with the assignments to * the functions. */ public function __construct() { // runs the CConfig $com = new CConfig(DBChoice::getPrefix() . ',course,link', dirname(__FILE__)); // runs the DBChoice if ($com->used()) { return; } // initialize component $this->_conf = $com; // initialize slim $this->_app = new \Slim\Slim(array('debug' => true)); $this->_app->response->headers->set('Content-Type', 'application/json'); // POST AddCourse $this->_app->post('(/:preChoice(/:preForm(/:preExercise)))/course', array($this, 'addCourse')); // DELETE DeleteCourse $this->_app->delete('(/:preChoice(/:preForm(/:preExercise)))/course(/course)/:courseid', array($this, 'deleteCourse')); // PUT EditChoice $this->_app->put('(/:preChoice(/:preForm(/:preExercise)))/' . $this->getPrefix() . '(/choice)/:choiceid(/)', array($this, 'editChoice')); // DELETE DeleteChoice $this->_app->delete('(/:preChoice(/:preForm(/:preExercise)))/' . $this->getPrefix() . '(/choice)/:choiceid(/)', array($this, 'deleteChoice')); // POST AddChoice $this->_app->post('(/:preChoice(/:preForm(/:preExercise)))/' . $this->getPrefix() . '(/)', array($this, 'addChoice')); // GET GetChoice $this->_app->get('(/:preChoice(/:preForm(/:preExercise)))/' . $this->getPrefix() . '(/choice)/:choiceid(/)', array($this, 'getChoice')); // GET GetCourseChoices $this->_app->get('(/:preChoice(/:preForm(/:preExercise)))/' . $this->getPrefix() . '/course/:courseid(/)', array($this, 'getCourseChoices')); // GET GetExistsCourseChoices $this->_app->get('(/:preChoice(/:preForm(/:preExercise)))/link/exists/course/:courseid(/)', array($this, 'getExistsCourseChoices')); // GET GetSheetChoices $this->_app->get('(/:preChoice(/:preForm(/:preExercise)))/' . $this->getPrefix() . '/exercisesheet/:esid(/)', array($this, 'getSheetChoices')); // GET GetExerciseChoices $this->_app->get('(/:preChoice(/:preForm(/:preExercise)))/' . $this->getPrefix() . '/exercise/:eid(/)', array($this, 'getExerciseChoices')); // GET GetFormChoices $this->_app->get('(/:preChoice(/:preForm(/:preExercise)))/' . $this->getPrefix() . '/form/:formid(/)', array($this, 'getFormChoices')); // run Slim $this->_app->run(); }
/** * REST actions * * This function contains the REST actions with the assignments to * the functions. * * @param Component $conf component data */ public function __construct() { // runs the CConfig $com = new CConfig(DBAttachment::getPrefix(), dirname(__FILE__)); // runs the DBAttachment if ($com->used()) { return; } $conf = $com->loadConfig(); // initialize component $this->_conf = $conf; $this->query = array(CConfig::getLink($conf->getLinks(), 'out')); $this->query2 = array(CConfig::getLink($conf->getLinks(), 'out2')); // initialize slim $this->_app = new \Slim\Slim(); $this->_app->response->setStatus(409); $this->_app->response->headers->set('Content-Type', 'application/json'); // POST AddPlatform $this->_app->post('/platform', array($this, 'addPlatform')); // DELETE DeletePlatform $this->_app->delete('/platform', array($this, 'deletePlatform')); // GET GetExistsPlatform $this->_app->get('/link/exists/platform', array($this, 'getExistsPlatform')); // PUT EditAttachment $this->_app->put('/' . $this->getPrefix() . '(/attachment)/:aid(/)', array($this, 'editAttachment')); // DELETE DeleteAttachment $this->_app->delete('/' . $this->getPrefix() . '(/attachment)/:aid(/)', array($this, 'deleteAttachment')); // DELETE DeleteExerciseAttachments $this->_app->delete('/' . $this->getPrefix() . '/exercise/:eid(/)', array($this, 'deleteExerciseAttachment')); // DELETE DeleteExerciseFileAttachment $this->_app->delete('/' . $this->getPrefix() . '/exercise/:eid/file/:fileid(/)', array($this, 'deleteExerciseFileAttachment')); // POST AddAttachment $this->_app->post('/' . $this->getPrefix() . '(/)', array($this, 'addAttachment')); // GET GetAttachment $this->_app->get('/' . $this->getPrefix() . '(/attachment)/:aid(/)', array($this, 'getAttachment')); // GET GetAllAttachments $this->_app->get('/' . $this->getPrefix() . '(/attachment)(/)', array($this, 'getAllAttachments')); // GET GetExerciseAttachments $this->_app->get('/' . $this->getPrefix() . '/exercise/:eid(/)', array($this, 'getExerciseAttachments')); // GET GetSheetAttachments $this->_app->get('/' . $this->getPrefix() . '/exercisesheet/:esid(/)', array($this, 'getSheetAttachments')); // run Slim $this->_app->run(); }
/** * REST actions * * This function contains the REST actions with the assignments to * the functions. */ public function __construct() { // runs the CConfig $com = new CConfig(LOOP::getPrefix() . ',course,link', dirname(__FILE__)); // runs the LOOP if ($com->used()) { return; } $conf = $com->loadConfig(); // lädt die Daten der CConfig.json // initialize slim $this->app = new \Slim\Slim(array('debug' => true)); $this->app->response->headers->set('Content-Type', 'application/json'); // initialize component // hier werden die Verknüpfungen aus der CConfig.json ausgelesen (entsprechend ihrem Namen) $this->_conf = $conf; $this->_pdf = CConfig::getLinks($conf->getLinks(), "pdf"); // wird nicht genutzt, theoretisch koennten hier PDFs erzeugt werden // für POST /course zum eintragen als Verarbeitung (wird dann in CreateSheet aufgelistet) $this->_postProcess = CConfig::getLinks($conf->getLinks(), "postProcess"); $this->_deleteProcess = CConfig::getLinks($conf->getLinks(), "deleteProcess"); // für DELETE /course/xyz $this->_getProcess = CConfig::getLinks($conf->getLinks(), "getProcess"); // GET /link/exists/course/:courseid // POST PostProcess $this->app->map('/' . $this->getPrefix() . '(/)', array($this, 'postProcess'))->via('POST'); // POST AddCourse // fügt die Komponente der Veranstaltung hinzu (Daten kommen im Anfragekörper) $this->app->post('/course(/)', array($this, 'addCourse')); // DELETE DeleteCourse // entfernt die Komponente aus der Veranstaltung $this->app->delete('/course/:courseid(/)', array($this, 'deleteCourse')); // GET GetExistsCourse // zum Prüfen, ob diese Kompoenten korrekt installiert wurde (existiert Tabelleneintrag, konf-Dateien etc.) $this->app->get('/link/exists/course/:courseid(/)', array($this, 'getExistsCourse')); // run Slim $this->app->run(); }
<?php require 'Slim/Slim.php'; $app = new Slim(); $app->get('/wines', 'getWines'); $app->get('/wines/:id', 'getWine'); $app->get('/wines/search/:query', 'findByName'); $app->post('/wines', 'addWine'); $app->put('/wines/:id', 'updateWine'); $app->delete('/wines/:id', 'deleteWine'); $app->run(); function getWines() { $sql = "select * FROM wine ORDER BY name"; try { $db = getConnection(); $stmt = $db->query($sql); $wines = $stmt->fetchAll(PDO::FETCH_OBJ); $db = null; // echo '{"wine": ' . json_encode($wines) . '}'; echo json_encode($wines); } catch (PDOException $e) { echo '{"error":{"text":' . $e->getMessage() . '}}'; } } function getWine($id) { $sql = "SELECT * FROM wine WHERE id=:id"; try { $db = getConnection(); $stmt = $db->prepare($sql);
<?php require dirname(__FILE__) . '/../Slim/Slim.php'; $app = new Slim(); $app->get("/", "getStores"); $app->get("/:id", "getStore"); $app->get("/search/:query", "findByName"); $app->post("/", "addStore"); $app->put("/:id", "updateStore"); $app->delete("/:id", "deleteStore"); $app->run(); function getStores() { $sql = "select * FROM store ORDER BY name"; try { $db = getConnection(); $stmt = $db->query($sql); $stores = $stmt->fetchAll(PDO::FETCH_OBJ); $db = null; // echo '{"wine": ' . json_encode($wines) . '}'; echo json_encode($stores); } catch (PDOException $e) { echo '{"error":{"text":' . $e->getMessage() . '}}'; } } function getStore($id) { $sql = "SELECT * FROM store WHERE id=:id"; try { $db = getConnection(); $stmt = $db->prepare($sql);
/** * Test Slim sets DELETE route * * Pre-conditions: * You have initialized a Slim app with a DELETE route. * * Post-conditions: * The DELETE route is returned and its pattern and * callable are set correctly. */ public function testSlimDeleteRoute(){ Slim::init(); $callable = function () { echo "foo"; }; $route = Slim::delete('/foo/bar', $callable); $this->assertEquals('/foo/bar', $route->getPattern()); $this->assertSame($callable, $route->getCallable()); }
//Sample PUT route for PHP >=5.3 Slim::put('/put', function () { echo '<p>Here are the details about your PUT request:</p>'; print_r(Slim::request()); }); //Sample PUT route for PHP <5.3 /* Slim::put('/put', 'put_example'); function put_example() { echo '<br/><br/>Here are the details about your PUT request:<br/><br/>'; print_r(Slim::request()); } */ //Sample DELETE route for PHP >=5.3 Slim::delete('/delete', function () { echo '<p>Here are the details about your DELETE request:</p>'; print_r(Slim::request()); }); //Sample DELETE route for PHP <5.3 /* Slim::delete('/delete', 'delete_example'); function delete_example() { echo '<br/><br/>Here are the details about your DELETE request:<br/><br/>'; print_r(Slim::request()); } */ /*** NAMED ROUTES *****/ Slim::get('/hello/:name', function ($name) { echo "<p>Hello, {$name}!</p>"; echo "<p>This route using name \"Bob\" instead of \"{$name}\" would be: " . Slim::urlFor('hello', array('name' => 'Bob')) . '</p>'; })->name('hello')->conditions(array('name' => '\\w+')); /*** RUN SLIM ***/
echo json_encode(array("status" => false, "message" => "Book ID {$id} does not exist")); } }); $app->post("/book", function () use($app, $db) { $app->response()->header("Content-Type", "application/json"); $book = $app->request()->post(); $result = $db->books->insert($book); echo json_encode(array("id" => $result["id"])); }); $app->put("/book/:id", function ($id) use($app, $db) { $app->response()->header("Content-Type", "application/json"); $book = $db->books()->where("id", $id); if ($book->fetch()) { $post = $app->request()->put(); $result = $book->update($post); echo json_encode(array("status" => (bool) $result, "message" => "Book updated successfully")); } else { echo json_encode(array("status" => false, "message" => "Book id {$id} does not exist")); } }); $app->delete("/book/:id", function ($id) use($app, $db) { $app->response()->header("Content-Type", "application/json"); $book = $db->books()->where("id", $id); if ($book->fetch()) { $result = $book->delete(); echo json_encode(array("status" => true, "message" => "Book deleted successfully")); } else { echo json_encode(array("status" => false, "message" => "Book id {$id} does not exist")); } }); $app->run();
$controller = new HelpController(); $controller->show(); }); $app->get('/search', function () { UserHelper::requireProfile(); $controller = new SearchController(); $controller->index(); }); $app->post('/inbox', function () { fAuthorization::requireLoggedIn(); $controller = new MailController(); $controller->create(); }); $app->delete('/inbox/:id', function ($id) { fAuthorization::requireLoggedIn(); $controller = new MailController(); $controller->delete($id); }); $app->post('/msgs', function () { fAuthorization::requireLoggedIn(); $controller = new MsgController(); $controller->create(); }); $app->post('/search', function () { fAuthorization::requireLoggedIn(); $controller = new SearchController(); $controller->show(); }); $app->delete('/msgs/:id', function ($id) { fAuthorization::requireLoggedIn(); $controller = new MsgController();
<h2>Slim Framework Extras</h2> <p> Custom View classes for Smarty, Twig, Mustache, and other template frameworks are available online in a separate repository. </p> <p><a href="https://github.com/codeguy/Slim-Extras" target="_blank">Browse the Extras Repository</a></p> </section> </body> </html> EOT; echo $template; }); //POST route $app->post('/post', function () { echo 'This is a POST route'; }); //PUT route $app->put('/put', function () { echo 'This is a PUT route'; }); //DELETE route $app->delete('/delete', function () { echo 'This is a DELETE route'; }); /** * Step 4: Run the Slim application * * This method should be called last. This is responsible for executing * the Slim application using the settings and routes defined above. */ $app->run();
<?php require "includes/index.php"; require_once "Slim/Slim.php"; $data = new Slim(); $data->get('/books/search', function () use($data) { $query = $data->request()->params('name'); findByName($query); }); $data->get('/books', 'getBooks'); $data->get('/books/:id', 'getBook'); //$data->get('/books/search:query', 'findByName'); $data->post('/books', 'addBook'); $data->put('/books/:id', 'updateBook'); $data->delete('/books/:id', 'deleteBook'); $data->run(); function getBooks() { $sql = "select * FROM books ORDER BY id DESC"; try { $db = getConnection(); $stmt = $db->query($sql); $books = $stmt->fetchAll(PDO::FETCH_OBJ); $db = null; echo json_encode($books); } catch (PDOException $e) { echo '{"error":{"text":' . $e->getMessage() . '}}'; } } function getBook($id) {
<?php require 'Slim/Slim.php'; $app = new Slim(); $app->get('/beers', 'getBeers'); $app->get('/beers/:id', 'getBeer'); $app->get('/beers/search/:query', 'findByName'); $app->post('/beers', 'addBeer'); $app->put('/beers/:id', 'updateBeer'); $app->delete('/beers/:id', 'deleteBeer'); $app->run(); function getBeers() { $sql = "select * FROM wine ORDER BY name"; try { $db = getConnection(); $stmt = $db->query($sql); $beers = $stmt->fetchAll(PDO::FETCH_OBJ); $db = null; // echo '{"wine": ' . json_encode($beers) . '}'; echo json_encode($beers); } catch (PDOException $e) { echo '{"error":{"text":' . $e->getMessage() . '}}'; } } function getBeer($id) { $sql = "SELECT * FROM wine WHERE id=:id"; try { $db = getConnection(); $stmt = $db->prepare($sql);
} // Access-Control headers are received during OPTIONS requests if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) { header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE"); } if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) { header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}"); } exit(0); } include 'Slim/Slim.php'; $app = new Slim(); $app->post('/login', 'userLogin'); $app->post('/join', 'userJoin'); $app->delete('/user', 'deleteUser'); $app->put('/user', 'updateUser'); $app->get('/user', 'getUser'); $app->get('/user/:id', 'getUser'); //INCOMPLETE: //$app->post('/users/search', 'findByParameter'); $app->run(); function userLogin() { $request = Slim::getInstance()->request(); $user = json_decode($request->getBody()); //Get Salt $sql = "SELECT\n\n salt\n\n FROM users WHERE username=:username LIMIT 1"; try { $db = getConnection(); $stmt = $db->prepare($sql);
ActiveRecord\Config::initialize(function ($cfg) { $cfg->set_connections(array('development' => 'mysql://root:@localhost/todos')); }); $app = new Slim(); function reqBody() { global $app; return json_decode($app->request()->getBody(), true); } $app->get('/json', function () { echo json_encode(array_map(function ($todo) { return $todo->attributes(); }, Todo::all())); }); $app->post('/json', function () { $todo = new Todo(reqBody()); $todo->save(); }); $app->get('/json/:id', function ($id) { echo Todo::find($id)->to_json(); }); $app->put('/json/:id', function ($id) { Todo::find($id)->update_attributes(reqBody()); }); $app->delete('/json/:id', function ($id) { Todo::find($id)->delete(); }); $app->get('/', function () { echo file_get_contents('index.html'); }); $app->run();
<?php require 'Slim/Slim.php'; require '../site/functions.php'; $app = new Slim(); $app->get('/accomplishment/:id', 'GetAccomplishment'); $app->get('/allaccomplishment/:id', 'GetAllAccomplishments'); $app->get('/accomplishment/search/:query', 'FinaByAccomplishment'); $app->post('/accomplishment', 'InsertAccomplishment'); $app->put('/accomplishment/:id', 'UpdateAccomplishment'); $app->delete('/accomplishment/:id', 'DeleteAccomplishment'); $app->get('/accomplishment/title/:keyword', 'getTitlesFromCache'); $app->get('/accomplishment/alltitle', 'getAllTitles'); $app->run(); // Generate Guid function NewGuid() { $s = strtoupper(md5(uniqid(rand(), true))); $guidText = substr($s, 0, 8) . substr($s, 8, 4) . substr($s, 12, 4) . substr($s, 16, 4) . substr($s, 20); return $guidText; } // End Generate Guid function getWines() { $sql = "select * FROM wine ORDER BY name"; try { $db = getConnection(); $stmt = $db->query($sql); $wines = $stmt->fetchAll(PDO::FETCH_OBJ); $db = null; echo '{"wine": ' . json_encode($wines) . '}';
$user->getById($id); }); $app->get('/users/:id/friends', function ($id) use($user) { $user->getFriends($id); }); $app->get('/users/:id/score', function ($id) use($user) { $user->getScore($id); }); $app->get('/users/:id/rewards', function ($id) use($user) { $user->getRewards($id); }); $app->get('/users/search/:name', function ($name) use($user) { $user->getByName($name); }); $app->delete('/users/:id', function ($id) use($user) { $user->delete($id); }); $app->post('/users', function () use($user, $app) { $request = $app->request(); $body = $request->getBody(); $vo = json_decode($body); $user->insert($vo); }); $app->put('/users/:id', function ($id) use($user, $app) { $request = $app->request(); $body = $request->getBody(); $vo = json_decode($body); $vo->facebook_user_id = $id; $user->update($vo); }); $app->put('/users/:id/score', function ($id) use($user, $app) {
<?php require 'Slim/Slim.php'; require 'conexion.php'; $app = new Slim(); $app->get('/medicos', 'obtenerMedicos'); $app->get('/medicos/:id', 'obtenerMedico'); $app->post('/agregar_medico', 'agregarMedico'); $app->put('/medicos/:id', 'editarMedico'); $app->delete('/medicos/:id', 'eliminarMedico'); $app->get('/especialidades', 'obtenerEspecialidades'); $app->get('/especialidades/:id', 'obtenerEspecialidad'); $app->post('/agregar_especialidad', 'agregarEspecialidad'); $app->put('/especialidades/:id', 'editarEspecialidad'); $app->delete('/especialidades/:id', 'eliminarEspecialidad'); $app->get('/medicosespecialidades/:id', 'obtenerMedicoEspecialidades'); $app->post('/agregar_medicoespecialidad/:id', 'agregarMedicoEspecialidad'); $app->run(); function obtenerMedicos() { $sql = "select idMedico,CONCAT(Nombre,' ',Apellido) Nombre FROM medico where Estado=1 ORDER BY Nombre"; try { $db = getConnection(); $stmt = $db->query($sql); $wines = $stmt->fetchAll(PDO::FETCH_OBJ); $db = null; echo json_encode($wines); } catch (PDOException $e) { echo '{"error":{"text":' . $e->getMessage() . '}}'; } }
<?php set_include_path(implode(PATH_SEPARATOR, array(realpath(dirname(__FILE__) . '/library'), get_include_path()))); require_once 'Slim/Slim.php'; require_once 'controller/ProdutosController.php'; $app = new Slim(); $pcontroller = new ProdutosController(); $app->get('/produtos', function () use($pcontroller) { echo json_encode($pcontroller->listarProdutos()); }); $app->post('/produtos', function () use($pcontroller, $app) { $produto = json_decode(file_get_contents("php://input")); echo json_encode($pcontroller->salvarProduto($produto)); }); $app->put('/produtos', function () use($pcontroller, $app) { $produto = $app->request()->put(); unset($produto['$$hashKey']); echo json_encode($pcontroller->atualizarProduto($produto)); }); $app->delete('/produtos/:id', function ($id) use($pcontroller) { echo $pcontroller->removerProduto($id); }); $app->run();
/** * Test DELETE route */ public function testDeleteRoute() { Slim_Environment::mock(array('REQUEST_METHOD' => 'DELETE', 'SCRIPT_NAME' => '/foo', 'PATH_INFO' => '/bar')); $s = new Slim(); $mw1 = function () { echo "foo"; }; $mw2 = function () { echo "bar"; }; $callable = function () { echo "xyz"; }; $route = $s->delete('/bar', $mw1, $mw2, $callable); $s->call(); $this->assertEquals('foobarxyz', $s->response()->body()); $this->assertEquals('/bar', $route->getPattern()); $this->assertSame($callable, $route->getCallable()); }
<?php require 'Slim/Slim.php'; $app = new Slim(); $app->get('/users', 'getUsers'); $app->post('/users', 'addUser'); $app->get('/users/:id', 'getUser'); $app->get('/users/search/:query', 'findByName'); $app->put('/users/:id', 'updateUser'); $app->delete('/users/:id', 'deleteUser'); $app->run(); function getConnection() { $dbhost = "127.0.0.1"; $dbuser = "******"; $dbpass = "******"; $dbname = "angular-mysql"; $dbh = new PDO("mysql:host={$dbhost};dbname={$dbname}", $dbuser, $dbpass); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); return $dbh; } function getUsers() { $sql = "select * FROM users ORDER BY id"; try { $db = getConnection(); $stmt = $db->query($sql); $users = $stmt->fetchAll(PDO::FETCH_OBJ); $db = null; echo json_encode($users); } catch (PDOException $e) {
/** * REST actions * * This function contains the REST actions with the assignments to * the functions. */ public function __construct() { // runs the CConfig $com = new CConfig(LFile::$_baseDir, dirname(__FILE__)); // runs the LFile if ($com->used()) { return; } $conf = $com->loadConfig(); $this->_conf = $conf; $this->_fs = CConfig::getLinks($this->_conf->getLinks(), 'file'); $this->_db = CConfig::getLinks($this->_conf->getLinks(), 'fileDb'); $this->_app = new \Slim\Slim(array('debug' => true)); $this->_app->response->setStatus(404); $this->_app->response->headers->set('Content-Type', 'application/json'); // POST File $this->_app->post('/' . LFile::$_baseDir . '(/)', array($this, 'postFile')); /*// POST PathFile $this->_app->post( '/' . LFile::$_baseDir . '/:path(/)', array( $this, 'postPathFile' ) );*/ // DELETE File $this->_app->delete('/' . LFile::$_baseDir . '/:fileid', array($this, 'deleteFile')); // run Slim $this->_app->run(); }