/Slim

An app skeleton for the Slim PHP Micro-Framework

Primary LanguagePHPMIT LicenseMIT

Slim 3 application skeleton

SensioLabsInsight Scrutinizer Code Quality

This is an app skeleton for the Slim PHP Micro-Framework to get started quickly

Features

  • Eloquent ORM
  • Flash messages (Slim Flash)
  • CSRF protection (Slim Csrf) with fields rendering with a twig function
  • Authentication (Sentinel)
  • Validation (Respect + Slim Validation)
  • Twig templating engine Slim Twig View with cache and debug
  • CSS Framework Semantic UI
  • A Gulpfile with a watcher for SASS and JS files, and minification
  • Helpers for assets management, redirections, ...
  • Logs (Monolog)
  • Dotenv configuration
  • Console commands for updating the database schema or creating users
  • Functionnal tests base (PHPUnit)

For more information, check out the project's website or the wiki.

Installation

Create the project using Composer

$ composer create-project awurth/slim-base [project-name]

Setup environment variables

Copy .env.dist to a .env file and change the values to your needs. This file is ignored by Git so all developers working on the project can have their own configuration.

Download client-side libraries

$ npm install

This will install Gulp dependencies and Semantic UI in public/assets/lib/semantic/.

Gulp

This skeleton uses Gulp to manage assets. The CSS and Javascript files are located in assets/, so you have to use Gulp after creating your project to generate the minified files in public/, which will be ignored by Git.

Install Gulp

You can install Gulp globally on your system with the following command if you haven't done it yet

$ npm install -g gulp-cli

Generate assets

If you just want to generate the default CSS and JS that comes with this skeleton, run the following command

$ gulp build

If you want to run a watcher and begin coding, just run

$ gulp

Setup cache files permissions

The skeleton uses a cache system for Twig templates and the Monolog library for logging, so you have to make sure that PHP has write permissions on the var/cache/ and var/log/ directories.

Update your database schema

First, create a database with the name you set in the .env file. Then you can create the tables by running this command:

$ php bin/console db