Fork me on GitHub

Jeff Php Framework

Jeff is a modular, extensible, OOP, MVC, lightweight php framework designed to ease the programmers in the development of web applications.

Designed for a database driven programming experience, ensures an indisputable rapidity in development thanks to its auto-generated back office functionality.


Jeff has been developed using a LAMP environment, as it is the most common server configuration. Nonetheless it may be installed under windows or mac platforms, may be served by different web servers (i.e. nginx) and may work with different DBMS.


Jeff requires php>=5.3 with the directive short_open_tag enabled

Jeff versions earlier than 0.99 requires php>=5.0 with the directive short_open_tag enabled

Operating system


Jeff can automatically detect the operating system over which it is installed and sets automatically all its internal paths. So you have to do nothing in order to use it with operating systems different from linux.

Web server


Jeff comes with two apache .htaccess files which require apache>= 2.0 with mod_expire, mod_header and mod_rewrite enabled.

Actually only the mod_rewrite is strictly required as all links are routed by the .htaccess files. The other instructions which requires the other modules are useful for speed optimization, but the system may work without them.

So if you'd like to use a different web server all you have to do is to "translate" the instructions included in .htaccess files to fit your server configuration syntax, removing the not rewrite ones if the web server you use can't manage them.

Database management system


Jeff comes with a default mysql connector, which requires mysql >= 5.0. To use a different DBMS you need to do the folowing things:

  • create a new db connector implementing all the methods defined in the core/db/interface.db.php interface. Essentially you have to "clone" the class modules/mysql/mysql.php using the correct syntax for your DBMS
  • add the new connector instance in the core/db/db.factory.php class, following the same syntax as for the mysql class instance.
  • Change the DBMS constant value in configuration.php in order to get the new connector working.

What's next

Look at the download and installation section