frame work matrix .include-once.org

more detailed PHP library/framework feature comparisons

a look beyond the dirty dozen

Framework list

Agavi
Agile Toolkit
Akelos
Adventure PHP Framework
Banshee
Breeze
Caffeine
CakePHP
CodeIgniter
DynaPort Lite X
DynaPort X
EasyPhpApp
Elefant
Emergence
eZ Components
Fat-Free Framework (F3)
FlexiReed
Flourish
TYPO3 Flow
flufPHP
Frostbite Framework
FuelPHP
Fusebox
Hoa
Horde
Ivy Connect
Joomla Platform
Kata
KissMVC
Kohana
Laravel
lexa-tools
Limonade
Lion
Lithium
mocovi / dresscode
Nette
PhalconPHP
Nibble PHP Framework
Openbiz Cubi
Opendelight (Ash.MVC)
Packfire Framework
PHPCodebooster
PHPDevShell
PHPixie
phpMF
PHP Work (QPHP)
phpwt
phraw
phunction
PRADO
PSX Framework
QCubed
Recess
Scorpio Framework for PHP
Seagull
SilverStripe
Sloths
Solar PHP
Spawn Framework
Sukoshi
Swiftlet
Symfony
Symfony2
Tekuna
Thin PHP Framework
Tiny MVC
tinyPHP
Turbo PHP
WACT
Yii
Zend Framework
Zend Framework 2

Filter
MVC  minimal  library  routing  toolkit  ajax  shortlist  all

Submit
Add a new framework

phunction

Info phunction
titlephunction
descriptionSmall and carefully designed PHP HMVC framework.
urlhttps://github.com/alixaxel/phunction/
licenseMITL
version1.3.30
release2011
size20 KB
languagePHP
documentation
maturitymature
developmentopen
teamsingle
typeminimal
Coding style phunction
coding.paradigmobject-structured
coding.namesc_style
coding.autoloader
coding.debugE_STRICT
abstraction.level♦♦♦♦♢ schematic
coding.unit_tests
Shiny tickoff boxes phunction
modules.mvc
modules.db
modules.orm
modules.crud
modules.multidb
modules.filedb
modules.auth
modules.cache
modules.validate
modules.filter
modules.i18n
modules.session
modules.log
modules.sandbox
modules.benchmark
modules.form
modules.ajax
modules.edp
modules.plugins
modules.dist
modules.cli
modules.scaffolding
modules.rest
Compatibility phunction
compatible.phpphp5.2
standard.htmlhtml5
compatible.app
compatible.forks
compatible.sql
compatible.css
compatible.plugin
Security phunction
security.dbparameterized not prescribed
security.inputsanitizationvalidation
security.outputescapingoption
security.authhash
security.adminseparated
MVC phunction
mvc.typePassive-MVC
Routing phunction
routing.typehierarchical
routing.rewriterules
routing.dispatchprogrammatic rule set (:part)
routing.respondercallable
Model phunction
model.typedatabase
model.dbSQL
model.backend
View phunction
view.typeTemplate
view.backendPHP
view.collectpassing
view.outputvariables
Controller phunction
controller.typedispatcher
controller.helper
Configuration phunction
configuration.type
configuration.store
configuration.formatPHP
AJAX phunction
ajax.type-
ajax.library-
Helper phunction
util.upload
util.session
util.cookie
util.pagination
util.http
util.url
util.mime
util.permission
util.debug
util.localization-
util.formprocedural
Utility phunction
http.negotiation
http.conditional
util.xml
util.rss
util.zip
util.mail
util.gzip
util.captcha
util.dom
util.markup
util.pdf
util.images
util.wysiwyg
util.webdav
Services phunction
util.sitemap
util.pingback
util.rpc
service.twitter
service.google
service.facebook
service.openid
service.cardspace
service.oauth
service.opensearch
service.geo
service.paypal
Fun Facts phunction
forum_from_framework
popular_apps
big_websites

Comments

Add a Comment


What is 10 * 10 - 13 =  

phunction

I've released phunction a few days ago, and I believe it takes the procedural meaning to the limit. It evolved from this outdated core-only code. I encapsulated the functions in half a dozen classes to avoid name collisions and add some contextual meaning but other than that it should take less than 10 lines of changes to make it fully functional.

I tried to make phunction different from all the other frameworks out there by placing all the logic regarding a specific action in only one function, routing for instance (called in a OO-way):
ph()->Route('/pay/(:num)', null, 'payAmmount'); // num is passed to the function
ph()->Route('/hello/:any', null, 'functionHello'); // any is matched but not passed
ph()->Route('/', 'mainClass', 'index'); // OO controllers

No need to call stupid run() methods.

I'm also quite proud of the DB() function/method (phunction), this single function can connect to a MySQL / SQLite / PostgreSQL / Firebird database using the PDO drivers, after the connection is established it can run prepared queries, returns false on errors or:
lastInsertId() on INSERT / REPLACE statements
rowCount() on UPDATE / DELETE statements (number of changed rows)
fetchAll() on SELECT / EXPLAIN statements (an associative array with the result set)

An example:
//ph()->DB('./sqlite.db'); or
ph()->DB('mysql://localhost:3306/blog', 'user', 'pass');

$id = ph()->DB('INSERT INTO "users" (id, name, pass) VALUES (?, ?, ?);', null, 'alix', '***'); // last insert id

ph()->DB('DELETE FROM "users" WHERE id = ?;', $id); // # of changed rows

$users = ph()->DB('SELECT * FROM "users";'); print_r($users);

Other phunctions worth looking at are probably:
ph()->View() // probably better than limonade-php
ph()->Disk->Image() // crops, resizes, converts, displays and saves images
ph()->Net->Email() // correctly sends emails (even i18n ones) using mail() or SMTP servers
ph()->Net->Paypal()
ph()->Text->Slug()
others...

I'm struggling trying to find the time to write the documentation and design the website but the code is already available and it's pretty straightforward with semantic variables and method names. Should be fairly easy to pick up and hack away. Shameless ad incoming. =P