Ferreteria: Difference between revisions
m (30 revisions imported: moving this project here) |
(hand-merged with old contents of local page) |
||
Line 1: | Line 1: | ||
==About== | ==About== | ||
[[Ferreteria]] is a [[PHP]] web application framework. Its basic design does not rely on any special characteristics of the PHP language or environment and should be portable to other languages. The name literally means "hardware" in Spanish; I used it because I came across the word in a hardware store full of useful tools, which made it seem somehow appropriate as a name for a software toolkit, and also because I seem to be using the affix "ferret" in a lot of my software projects. | |||
Because it does not use JavaScript (JS) for core functionality, it is very fast; response-times tend to be comparable to a "single-page app" framework written in JS, except that the initial load is as quick as subsequent reloads and all of the navigation links are bookmarkable. | |||
It originally emerged from writing [[VbzCart]], when I realized a lot of the classes and techniques I'd created (starting with the database classes) could be used for other applications as well. | |||
==Features== | |||
* '''User management''' | |||
** log-in control: email-based account creation, password reset | |||
** user-group assignment, group-permissions assignment | |||
* '''State persistence via URL''' | |||
** The only cookie stored is a single "session" cookie, which usually just stores the minimum needed for session security. | |||
*** Most app-state data is stored in the URL path, without even using the <code>?query</code> part of the URL, for practical and aesthetic reasons. | |||
* '''Database wrappers''' | |||
** classes for different types of tables, records | |||
** classes for handling forms, controls, data fields | |||
** functions for specific tables can be built by descending from more general classes | |||
** URL-linkable tables, records | |||
===Premises=== | ===Premises=== | ||
Every Ferreteria app will have ''some'' kind of on-server database, even if it's just a text file. (Currently only MySQL/MariaDB wrapper-classes are written.) | Every Ferreteria app will have ''some'' kind of on-server database, even if it's just a text file. (Currently only MySQL/MariaDB wrapper-classes are written.) | ||
Line 41: | Line 46: | ||
==Apps/Applets== | ==Apps/Applets== | ||
* Greenmine | * [[Greenmine]] | ||
** [[FinanceFerret]] | |||
** [[WorkFerret]] | ** [[WorkFerret]] | ||
* [[VbzCart]] | |||
* [[ | * [[Wikcess]] | ||
|} | |} | ||
==Links== | ==Links== |
Revision as of 17:44, 22 May 2022
About
Ferreteria is a PHP web application framework. Its basic design does not rely on any special characteristics of the PHP language or environment and should be portable to other languages. The name literally means "hardware" in Spanish; I used it because I came across the word in a hardware store full of useful tools, which made it seem somehow appropriate as a name for a software toolkit, and also because I seem to be using the affix "ferret" in a lot of my software projects.
Because it does not use JavaScript (JS) for core functionality, it is very fast; response-times tend to be comparable to a "single-page app" framework written in JS, except that the initial load is as quick as subsequent reloads and all of the navigation links are bookmarkable.
It originally emerged from writing VbzCart, when I realized a lot of the classes and techniques I'd created (starting with the database classes) could be used for other applications as well.
Features
- User management
- log-in control: email-based account creation, password reset
- user-group assignment, group-permissions assignment
- State persistence via URL
- The only cookie stored is a single "session" cookie, which usually just stores the minimum needed for session security.
- Most app-state data is stored in the URL path, without even using the
?query
part of the URL, for practical and aesthetic reasons.
- Most app-state data is stored in the URL path, without even using the
- The only cookie stored is a single "session" cookie, which usually just stores the minimum needed for session security.
- Database wrappers
- classes for different types of tables, records
- classes for handling forms, controls, data fields
- functions for specific tables can be built by descending from more general classes
- URL-linkable tables, records
Premises
Every Ferreteria app will have some kind of on-server database, even if it's just a text file. (Currently only MySQL/MariaDB wrapper-classes are written.)
Pages
For coding conventions used within Ferreteria, see wooz:conventions/coding. versionsVersions 1-3 need to be renamed to 0.1-0.3 because they're all pre-release. This has been done in the docs for v0.3, but some code referencing v3 may still exist.
|
Apps/Applets |
Links
Official
- GitLab: official code repository
- Redmine @ vbz: official project tracker