<?php date_default_timezone_set('Europe/Kiev'); require_once __DIR__ . '/../vendor/autoload.php'; $appConf = (require_once __DIR__ . '/../etc/app-conf.php'); Engine::init($appConf['dbConfig']['main']); AppFactory::create($appConf)->add(new \Slim\Middleware\SessionCookie(['expires' => '1 day'])); AppFactory::$slimInstance->run();
public static function setUpBeforeClass() { if (!isset(self::$app)) { self::$app = AppFactory::create(); } if (!Schema::hasTable('users')) { Schema::create('users', function ($table) { $table->increments('id'); $table->string('name'); }); } DB::insert('insert into users (name) values (?)', array('Test User')); if (!Schema::hasTable('posts')) { Schema::create('posts', function ($table) { $table->increments('id'); $table->string('title'); $table->integer('created_by_id')->unsigned()->nullable(); $table->integer('updated_by_id')->unsigned()->nullable(); $table->integer('deleted_by_id')->unsigned()->nullable(); $table->timestamps(); $table->datetime('deleted_at')->nullable(); $table->foreign('created_by_id')->references('id')->on('users'); $table->foreign('updated_by_id')->references('id')->on('users'); $table->foreign('deleted_by_id')->references('id')->on('users'); }); } }
public function getSlimInstance() { $conf = (include __DIR__ . '/../etc/app-conf.php'); return \AppFactory::create($conf); }
public static function create($config) { // Create monolog logger and store logger in container as singleton // (Singleton resources retrieve the same log resource definition each time) // Prepare app $app = new \Slim\Slim($config['slimOptions']); $app->config = $config; $app->container->singleton('log', function () use($app) { $log = new \Monolog\Logger($app->config['loggerOptions']['name']); $log->pushHandler(new \Monolog\Handler\StreamHandler($app->config['loggerOptions']['filepath'], \Monolog\Logger::DEBUG)); return $log; }); $app->get('/:path*', function () use($app) { $dirJs = '../public/static/js/min'; $dirCss = '../public/static/css/min'; $cssFile = ''; $jsFile = ''; if (is_dir($dirJs)) { $dirHandler = opendir($dirJs); while (false !== ($file = readdir($dirHandler))) { if ($file !== '.' && $file !== '..') { $jsFile = $file; } } closedir($dirHandler); } if (is_dir($dirCss)) { $dirHandler = opendir($dirCss); while (false !== ($file = readdir($dirHandler))) { if ($file !== '.' && $file !== '..') { $cssFile = $file; } } closedir($dirHandler); } if (defined('MODE') && MODE == 'DEV') { $link = 'head-include-full-links.html.twig'; $script = 'head-include-full-scripts.html.twig'; } else { $link = 'head-include-min-link.html.twig'; $script = 'head-include-min-script.html.twig'; } $app->render('main.html', ['link' => $link, 'script' => $script, 'cssFile' => $cssFile, 'jsFile' => $jsFile]); }); /* * API routes */ $app->group('/api/v1', function () use($app) { $indexActions = new \Controller\Index($app); $app->get('/', [$indexActions, 'index'])->name('index'); $upload = new \Controller\Upload($app); $app->post('/upload', [$upload, 'index'])->name('post_upload'); $app->group('/movies', function () use($app) { $movies = new \Controller\Movies($app); $app->post('/', [$movies, 'create'])->name('movies_postcreate'); $app->get('(/(:type(/(:value))))', [$movies, 'index'])->name('movies_show'); $app->post('/:id', [$movies, 'update'])->name('movies_putupdate'); $app->delete('/:id', [$movies, 'delete'])->name('movies_delete'); }); }); /* * temporary interface for views; to be deleted */ $app->get('/', function () use($app) { $query = \Engine\MovieQuery::create()->find(); $movies = $query->toArray(); $app->render('/index.php', ['movies' => $movies]); })->name('ui_delete'); //txt uploads $app->get('/upload', function () use($app) { $app->render('/upload.php', ['result_message' => '']); })->name('get_upload'); //movies creation $app->get('/create', function () use($app) { $app->render('/create.php', ['message' => '']); })->name('movies_getcreate'); $app->get('/update/:id', function ($id) use($app) { $movie = \Engine\MovieQuery::create()->findPK($id); $actors = $movie->getActors(); $movie = $movie->toArray(); $movie['Actors'] = $actors->toArray(); $app->render('/update.php', ['movie' => $movie]); })->name('movies_getupdate'); $app->add(new \Slim\Middleware\CSRFProtection()); return self::$slimInstance = $app; }