Kohana project template

Installs: 60

Dependents: 0

Stars: 2

Watchers: 9

Open Issues: 2

Language: PHP

0.1.2 2014-06-30 10:18 UTC


Kohana project template for Composer

This is how we bootstrap a Kohana project.

Creating a new project

To create a project foobar run:

composer create-project despark/kohana foobar

That's it! You now have a Kohana project with some important modules installed, CLI tools, permissions set up and more!

What is installed Installing additional libraries

You could run:

composer require <vendor>/<library>:<version_constraint>

This would update the require section in composer.json, install the library and update the composer.lock file.

See the suggest section in composer.json for a useful list of Kohana modules and other libraries.


The bootstrap file for Kohana is filled with a lot of goodies. You should check it out here: bootstrap.php.

Password hashing

The password hashing in the Auth module defaults to PHP 5.5 password_hash. Compatibility for PHP <5.5.0 is achieved using Anthony Ferrara's password_compat.

Database configuration

Kohana Database module is configured based on environments. The database name defaults to the project name.


Migrations are done via phinx. Configuration is in phinx.yml. The database name defaults to the project name.

Under the hood

If you are curious how your project is actually built you should check out:

Here is a summary:

  • First it clones this repo in a folder with the name you've provided.
  • Then it finds all dependencies listed in the require and require-dev sections in composer.json and their dependencies as well.
  • Downloads them and put them in either vendor/ or modules/.
  • Then it runs the scripts from the post-create-project-cmd section in composer.json:
    • Creates application/classes/Model, application/migrations and application/views.
    • chmod with 755 application/migrations
    • Generates a random string and sets Cookie::$salt with it.
    • Replace {{DATABASE_NAME}} in phinx.yml and application/config/database.php with the name of the project.