Migrating to express.js project
This commit is contained in:
		
							
								
								
									
										10
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +1,7 @@ | ||||
| # ---> Composer | ||||
| composer.phar | ||||
| /vendor/ | ||||
|  | ||||
| # ---> NPM modules (mainly for Gulp.js) | ||||
| # NPM modules (mainly for Gulp.js) | ||||
| node_modules/ | ||||
|  | ||||
| # Compiled CSS and JS assets | ||||
| public/css/ | ||||
| public/js/ | ||||
|  | ||||
|   | ||||
							
								
								
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| Copyright (c) <year> <owner>  | ||||
| Copyright (c) 2022 Bit Goblin | ||||
|  | ||||
| Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: | ||||
|  | ||||
|   | ||||
| @@ -1,4 +0,0 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| # start a local instance of the app using PHP's built-in webserver | ||||
| php -S localhost:8080 -t public/ public/index.php | ||||
| @@ -1,24 +0,0 @@ | ||||
| { | ||||
|     "name": "bitgoblin/overseer", | ||||
|     "description": "Self-hosted inventory tracking web app", | ||||
|     "type": "project", | ||||
|     "license": "BSD-2-Clause", | ||||
|     "autoload": { | ||||
|         "psr-4": { | ||||
|             "BitGoblin\\Overseer\\": "src/" | ||||
|         } | ||||
|     }, | ||||
|     "authors": [ | ||||
|         { | ||||
|             "name": "Gregory Ballantine", | ||||
|             "email": "gballantine@bitgoblin.tech" | ||||
|         } | ||||
|     ], | ||||
|     "minimum-stability": "stable", | ||||
|     "require": { | ||||
|         "slim/slim": "^4.10", | ||||
|         "slim/psr7": "^1.5", | ||||
|         "php-di/php-di": "^6.4", | ||||
|         "slim/twig-view": "^3.3" | ||||
|     } | ||||
| } | ||||
							
								
								
									
										1387
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1387
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1068
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1068
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -21,5 +21,9 @@ | ||||
|     "gulp": "^4.0.2", | ||||
|     "gulp-sass": "^5.1.0", | ||||
|     "sass": "^1.55.0" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "express": "^4.18.2", | ||||
|     "twig": "^1.15.4" | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -1,5 +0,0 @@ | ||||
| # rewrite rules | ||||
| RewriteEngine On | ||||
| RewriteCond %{REQUEST_FILENAME} !-f | ||||
| RewriteCond %{REQUEST_FILENAME} !-d | ||||
| RewriteRule ^ index.php [QSA,L] | ||||
| @@ -1 +0,0 @@ | ||||
| body{padding:50px 0 0;background:#d3d3d3}#nav-bar{position:fixed;top:0;left:0;width:100%;height:50px;background:#212121;box-shadow:0 2px 1px rgba(0,0,0,.25)}#nav-bar .nav-bar-left{float:left}#nav-bar ul{list-style:none}#nav-bar ul li{display:inline-block}#nav-bar .nav-link a{color:teal;transition:all 230ms ease-in-out}#nav-bar .nav-link a:hover{color:green} | ||||
| @@ -1,24 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| // if we're looking for static files in dev, return false so they can be served. | ||||
| if (PHP_SAPI == 'cli-server') { | ||||
|   $url  = parse_url($_SERVER['REQUEST_URI']); | ||||
|   $file = __DIR__ . $url['path']; | ||||
|  | ||||
|   // check the file types, only serve standard files | ||||
|   if (preg_match('/\.(?:png|js|jpg|jpeg|gif|css)$/', $file)) { | ||||
|     // does the file exist? If so, return it | ||||
|     if (is_file($file)) | ||||
|         return false; | ||||
|  | ||||
|     // file does not exist. return a 404 | ||||
|     header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found'); | ||||
|     printf('"%s" does not exist', $_SERVER['REQUEST_URI']); | ||||
|     return false; | ||||
|   } | ||||
| } | ||||
|  | ||||
| require_once __DIR__ .  '/../src/app.php'; | ||||
|  | ||||
| $app->run(); | ||||
|  | ||||
| @@ -1,19 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| namespace BitGoblin\Overseer\Controllers; | ||||
|  | ||||
| use Psr\Container\ContainerInterface; | ||||
|  | ||||
| class Controller { | ||||
|  | ||||
|   protected $container; | ||||
|  | ||||
|   public function __construct(ContainerInterface $container) { | ||||
|     $this->container = $container; | ||||
|   } | ||||
|  | ||||
|   public function get(string $name) { | ||||
|     return $this->container->get($name); | ||||
|   } | ||||
|  | ||||
| } | ||||
| @@ -1,16 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| namespace BitGoblin\Overseer\Controllers; | ||||
|  | ||||
| use Psr\Http\Message\ResponseInterface as Response; | ||||
| use Psr\Http\Message\ServerRequestInterface as Request; | ||||
| use Slim\Views\Twig; | ||||
|  | ||||
| class HomeController extends Controller { | ||||
|  | ||||
|   public function getIndex(Request $request, Response $response): Response { | ||||
|     $view = Twig::fromRequest($request); | ||||
|     return $view->render($response, 'index.twig'); | ||||
|   } | ||||
|  | ||||
| } | ||||
							
								
								
									
										25
									
								
								src/app.php
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								src/app.php
									
									
									
									
									
								
							| @@ -1,25 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| use DI\Container; | ||||
| use Slim\Factory\AppFactory; | ||||
| use Slim\Views\Twig; | ||||
| use Slim\Views\TwigMiddleware; | ||||
|  | ||||
| require __DIR__ . '/../vendor/autoload.php'; | ||||
|  | ||||
| // Create new container object and add our config object to it | ||||
| $container = new Container(); | ||||
|  | ||||
| // Set container to create App with on AppFactory | ||||
| AppFactory::setContainer($container); | ||||
| $app = AppFactory::create(); | ||||
|  | ||||
| // create Twig instance | ||||
| $twig = Twig::create('views', ['cache' => false]); | ||||
| // add Twig-View Middleware | ||||
| $app->add(TwigMiddleware::create($app, $twig)); | ||||
|  | ||||
| // load routes | ||||
| require_once __DIR__ . '/routes.php'; | ||||
|  | ||||
| // app starts in public/index.php | ||||
| @@ -1,7 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| use Psr\Http\Message\ResponseInterface as Response; | ||||
| use Psr\Http\Message\ServerRequestInterface as Request; | ||||
|  | ||||
| // index GET route - this page should welcome the user and direct them to the available actions | ||||
| $app->get('/', '\\BitGoblin\\Overseer\\Controllers\\HomeController:getIndex')->setName('index'); | ||||
		Reference in New Issue
	
	Block a user