示例#1
0
<?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();
示例#2
0
 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);
 }
示例#4
0
 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;
 }