Framework list
Filter
MVC
minimal
library
routing
toolkit
ajax
shortlist
all
Submit
Add a new framework
.include-once.org
Filter
MVC
minimal
library
routing
toolkit
ajax
shortlist
all
Submit
Add a new framework
| phunction | |
title![]() | phunction |
description![]() | Small and carefully designed PHP HMVC framework. |
url![]() | https://github.com/alixaxel/phunction/ |
license![]() | MITL |
version![]() | 1.3.30 |
release![]() | 2011 |
size![]() | 20 KB |
language![]() | PHP |
documentation![]() | ☆ |
maturity![]() | mature |
development![]() | open |
team![]() | single |
type![]() | minimal |
| phunction | |
coding.paradigm![]() | object-structured |
coding.names![]() | c_style |
coding.autoloader![]() | ![]() |
coding.debug![]() | E_STRICT |
abstraction.level![]() | ♦♦♦♦♢ schematic |
coding.unit_tests![]() | ![]() |
| 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![]() | ![]() |
| phunction | |
compatible.php![]() | php5.2 |
standard.html![]() | html5 |
compatible.app![]() | |
compatible.forks![]() | |
compatible.sql![]() | |
compatible.css![]() | |
compatible.plugin![]() | |
| phunction | |
security.db![]() | parameterized |
security.inputsanitization![]() | validation |
security.outputescaping![]() | option |
security.auth![]() | hash |
security.admin![]() | separated |
| phunction | |
mvc.type![]() | Passive-MVC |
| phunction | |
routing.type![]() | hierarchical |
routing.rewriterules![]() | ![]() |
routing.dispatch![]() | programmatic rule set (:part) |
routing.responder![]() | callable |
| phunction | |
model.type![]() | database |
model.db![]() | SQL |
model.backend![]() | |
| phunction | |
view.type![]() | Template |
view.backend![]() | PHP |
view.collect![]() | passing |
view.output![]() | variables |
| phunction | |
controller.type![]() | dispatcher |
controller.helper![]() | |
| phunction | |
configuration.type![]() | |
configuration.store![]() | |
configuration.format![]() | PHP |
| phunction | |
ajax.type![]() | - |
ajax.library![]() | - |
| phunction | |
util.upload![]() | ![]() |
util.session![]() | ![]() |
util.cookie![]() | ![]() |
util.pagination![]() | ![]() |
util.http![]() | ![]() |
util.url![]() | ![]() |
util.mime![]() | ![]() |
util.permission![]() | ![]() |
util.debug![]() | ![]() |
util.localization![]() | - |
util.form![]() | procedural |
| 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![]() | ![]() |
| 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![]() | ![]() |
| phunction | |
forum_from_framework![]() | ![]() |
popular_apps![]() | ![]() |
big_websites![]() | ![]() |
You can also update this entry, if you have more information.
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
Add a Comment