Cana
My MVC PHP framework ('completely awesome & naturally amazing') for rapid object-oriented development: Zend-style fundamentals with Ruby/jQuery-like chained object access, multi-object operations, memory caching and JSON output, published on Packagist as arzynik/cana with a GitHub Pages site (cana-web). Grew out of Caffeine and powered Give.mobi-era sites and Crunchbutton.
- BPM
- 195
- GRADE
- B
- LEVEL
- 9
- RELEASES
- 3
- YEARS
- 2012–2024
- spacedevin.github.io/cana-web
- spacedevin/cana-web
- spacedevin/cana
- spacedevin/cana-emoji
- spacedevin/cana-facebook
- spacedevin/cana-colorblender
- spacedevin/cana-sitemap
- spacedevin/cana-growl
- arzynik/cana
The Framework I Kept
The website came before the framework. cana-web started on March 22, 2012, and the framework itself followed six days later. Within two weeks there were plugins: cana-colorblender, cana-emoji, cana-facebook, cana-sitemap and cana-growl, all started on the same two days in April.
It grew out of Caffeine, the framework before it, and I wasn't modest about it: "completely awesome & naturally amazing." Under the heading "some cool shit you can do" there was a list of chained one-liners: pull an object out of the database and hold it in memory cache, alias classes automatically so you can skip the quotes, set properties across several objects and save them in one call, emit any of it as JSON. The database object is iterable, and filters compose into OR groups. I built all of it because I was tired of typing.
The Packagist release didn't happen until November 2015, three years after the code, and the last release was v0.2.3 in January 2016. I kept using it until 2023. The cana.la domain isn't mine anymore.