What it's ?

It's a mvc structure written to be useful for everybody, in order to make websites more simply.


composer create-project shaolin/shaolin app_name

  • Source code

  • Route management

    • Create a new route
      • php shaolin route:add
    • Show routes
      • php shaolin route:list
    • Search a route
      • php shaolin route:find
    • Remove a route
      • php shaolin route:destroy
    • Update a route
      • php shaolin route:update
    • Create route base
      • php shaolin route:generate
  • Code generation
    • Create a controller
      • php shaolin make:controller $name
    • Create a view
    • php shaolin make:view $name [$dir]
    • Create a model
      • php shaolin make:model $model $table
    • Create a middleware
      • php shaolin make:middleware $name
  • Database
    • Create migration and seeding
      • php shaolin db:add $table
    • Clean database (drop all tables)
      • php shaolin db:clean
    • Dump database
      • php shaolin dump
    • Migrate database
      • php shaolin migrate
    • Rollback last migration
      • php shaolin rollback
    • Seed database
      • php shaolin seed
  • Email

    • Generate dkim key (used to sign email)
      • php shaolin dkim:generate
  • Mode

    • Turn application in maintenance mode
      • php shaolin down
    • Turn application in production mode
      • php shaolin up
  • Controllers

  • helpers
    • Create an admin helper
      • Edit the admin.php inside the app/Helpers directory
    • Create a web helper
      • Edit the web.php inside the app/Helpers directory


I want to quit bootstrap to design my application.

So i've created sass directory with compass.

You can to be not all right with me so you can use your prefered library.

It's project come like it, but you can use bootstrap.


To call a model use one of it static function and finish by the all() method.

All method return an instance expected specific method.

See model source code

The users model is used by the authentication

The paginate callback must be take two arguments the key first and the in second the value

The value will be an object stdclass so you can use $value->column in the callback function

Document root

Document root must be the web directory