Main Page

From JFramework Wiki

Jump to: navigation, search

Welcome to the jFramework wiki. This is intended to be the all-knowledge reference for jFramework. If you haven't, please check the official jFramework Website at http://jframework.info to get the latest jFramework version, Demonstrations and etc. Also consider visiting the full jFramework Manual if you're looking for a complete guide to jFramework.

10 minute Quickstart tutorial would be the starting point if you're here via the jFramework website, Or this is the first time you're using jFramework.

Contents

j Stands For

You might think its odd that there exists a PHP framework actually named jFramework! Let's clear the reason why j has been used. Its not because we liked Java or anything related to Java is around here. Its not even related to Javascript as a wise man once said:

Java to Javascript is like Car to Carpet

So, What's this j? Of course the client side javascript library packed with jFramework is jQuery, But this is not the case, either. You're not gonna know what this j stands for until you become very familiar with jFramework and how it does the stuff.

Overview

jFramework is a PHP framework based upon Simplicity, Scalability and Performance. Whenever these three collide, jFramework uses clever development to keep all three as much as possible, prioritizing simplicity and performance.

jFramework requires no installation, i.e you get it working by just copying its files to your web folder. The learning curve for jFramework is quite fast, yet it has almost everything you might need in a nowadays advanced or complex web application or even enterprise.

jFramework has a very active development team, And is under a lot of stress in many operational environments. To get jFramework, visit http://jframework.info/get .

Requirements

This is a list of jFramework requirements:

  • Apache (mod_rewrite enabled)
  • PHP 5+ (5.3 not recommended)
  • MySQL 5+ with MySQLi extension (Optional but recommended)

You can operate jFramework without any database connectivity but you'll lose much of the magic, But don't worry, If you don't have MySQL, jFramework can use SQLite for its functionality.

Features

There are a set of features included in every framework, jFramework no exception:

  • Libraries do most of the the magic in jFramework.
  • Application Controller would be where it all starts.
  • jPath is the ultimate automatic path conversion module.
  • Administration Web Interface, where admins easily manipulate jFramework.
  • Plugins provide everything that wasn't there.
  • Patterns you can code with jFramework, MVC being the default.
  • Services for a service oriented enterprise or any other use.
  • j helper module.
  • Error Handling helps you debug your application much easier.
  • Fileman manages your file and resource requests with awesome control.
  • jURL for URL manipulation and handling.
  • Registry where your general data are handled safe and sound.
  • Base Classes help you develop much faster.
  • Configurations let you tweak jFramework however you want.
  • Testing Framework for a test-driven development, or to test what you saw!
  • Templates halve the view design time.
  • View Parser fixes your URLs and performs view cleanup magic.

and a lot more...

Benchmark

jFramework is pretty fast, for a few reasons:

  • It loads a lot of modules but actually runs a little code for startup, So most of the loading would be cached on the server and performed quite fast. A usual jFramework page gets less than .01 sec to load, And it contains SQL queries, too!
  • We don't sacrifice performance for our sake, jFramework's code is very rigorous but runs pretty smooth and fast. We've developed our own MySQLi wrappers which supports almost more than anything any other library (like PDO) supports, And runs 10 times faster.
  • jFramework RBAC model is the first to be implemented in PHP (due to Level 2 RBAC's Complexity), And a whole RBAC system check takes less than 1 milisecond, though it performs enormous tasks. This level of optimization has consumed months of hard work.
  • jFramework is designed with optimizers in mind. It runs 10 times faster with Zend Engine running on the server (or similar products)
  • jFramework's core consumed as least memory as it is possible. Less than 500KB's of memory is consumed by jFramework, most of it being the options constants changeable by programmer.

Security

jFramework is secure, as it was mean to be. Security experts form a major part of jFramework main development team, And this framework was developed with security in mind, Not with security as an add-on. There are things in jFramework that make it suitable for secure use of many enterprises, Many of them not even PHP based (e.g jPKI).

A few samples would be (based on OWASP Top 10 2010):

  • Fast, Flexible and mainstream prepared statements instead of old fashioned SQL Queries prevent any form of SQL Injections
  • Flexible and up-to-date AntiXSS (based on 'htmLawed')
  • Best Practice Session and User management
  • Every request is handled indirectly via the framework (even data files), Hence no Insecure Direct Object Reference
  • CSRF Request Tokens
  • Mighty RBAC for fail-proof Authorization and URL access
  • View Parser fixes URLs and prevents many Unvalidated Redirects
  • jPKI, Security and Session library all provide strong and sufficient cryptographic functionality

Services

jFramework has a perfected service core, You just develop your service classes and functions, Not considering this is going to be a service, And jFramework automatically can provide your functions (in services section) as these different services:

  1. standard SOAP (powered by nuSOAP, not PHP extension)
  2. JSON
  3. JSONP
  4. RAW
  5. Serialized PHP
  6. Pure XML
  7. Associative-Array (for built-in service call)
  8. YAML (to be added)
  9. Your custom user-defined Service input/output wrapper!

Service dispatcher, WSDL support, direct service URLs and Service Security is also included!


Personal tools