diff --git a/app/bootstrap.php b/app/bootstrap.php new file mode 100644 index 0000000..9f342b9 --- /dev/null +++ b/app/bootstrap.php @@ -0,0 +1,40 @@ +set('view', function() { + return Twig::create(__DIR__ . '/../templates', + ['cache' => __DIR__ . '/../cache']); +}); + +AppFactory::setContainer($container); + +$app = AppFactory::create(); + +$middleware = require __DIR__ . '/../app/middleware.php'; +$middleware($app); + +// Routes +$app->get('/', function (Request $request, Response $response, $args) { + $response->getBody()->write("Hello Nick!"); + return $response; +}); + +$app->get('/twig', function (Request $request, Response $response, $args) { + return $this->get('view')->render($response, 'hello.twig', [ + 'name' => $args['name'] + ]); +}); + + +$app->run(); \ No newline at end of file diff --git a/app/middleware.php b/app/middleware.php new file mode 100644 index 0000000..d631ad8 --- /dev/null +++ b/app/middleware.php @@ -0,0 +1,16 @@ +getContainer()->get('settings'); + + $app->addErrorMiddleware( + $setting['displayErrorDetails'], + $setting['logErrors'], + $setting['logErrorDetails'] + ); + + // Add Twig-View Middleware + $app->add(TwigMiddleware::createFromContainer($app)); + +}; diff --git a/app/settings.php b/app/settings.php new file mode 100644 index 0000000..e3ca33d --- /dev/null +++ b/app/settings.php @@ -0,0 +1,13 @@ +set('settings', function() { + return [ + 'displayErrorDetails' => true, + 'logErrorDetails' => true, + 'logErrors' => true + ]; + }); +}; \ No newline at end of file diff --git a/bin/install.bash b/bin/install.bash index 684fe85..c7483a8 100644 --- a/bin/install.bash +++ b/bin/install.bash @@ -3,7 +3,7 @@ # check that $1 folder does not exit [ -d "$1" ] && echo "Folder $1 already exists" && exit 1 -echo "*** Starting New Laravel Project ***" +echo "*** Starting New Slim Project ***" ################################################################################ # Check composer installed @@ -16,34 +16,46 @@ if [[ $COMPOSER -ne 0 ]]; then echo 'Checkout how to Install Composer here: https://www.nickyeoman.com/blog/php/install-composer-on-ubuntu/' echo 'Once installed, try running this script again' exit 1 -else - composer create-project laravel/laravel $1 fi +mkdir $1 cd $1 -# Not running rootless, in development mode: -chmod -R 777 storage/ - ################################################################################ # Create directories ################################################################################ -mkdir sass +mkdir sass templates mkdir -p public/css +# TODO: public index.php file ################################################################################ # Composer ################################################################################ +composer require slim/slim:"4.*" +composer require slim/psr7 +composer require slim/twig-view +composer require nickyeoman/nytwig +composer require nickyeoman/sassLibrary +################################################################################ +# Docker +################################################################################ +echo "Creating a docker-compose" +wget https://raw.githubusercontent.com/nickyeoman/phpframework/main/docker/docker-compose.yml + +echo "Creating a Dockerfile" +wget https://raw.githubusercontent.com/nickyeoman/phpframework/main/docker/Dockerfile + +wget -O .env https://raw.githubusercontent.com/nickyeoman/phpframework/main/env.sample ################################################################################ # Git ################################################################################ git init -echo '.sass-cache/' >> .gitignore +#echo '.sass-cache/' >> .gitignore git add . git commit -m"First Commit, slim installed" diff --git a/public/index.php b/public/index.php new file mode 100644 index 0000000..cae0bcb --- /dev/null +++ b/public/index.php @@ -0,0 +1,2 @@ +