Flamework is a PHP web-application framework, born out of the processes and house-style developed at Flickr.com.
This library is a work in progress. It is immediately usable, but lacks many of the components needed to create a fully featured modern application. These pieces are being added as the individual contributors find a need to in their personal projects. If you've written a missing piece of the puzzle, please send a pull-request.
- Copy everything in
wwwto a web server running Apache withmod_phpandphp5-mcrypt. - Enable
AllowOverrides allfor the root. - If some of your rewrite rules like
^account/password$aren't working, tryOptions -MultiViews. - Copy
include/config.php.exampletoinclude/config.phpand edit it. - Ensure that the
templates_cdirectory can be written to by your webserver. - Load the schema into mysql:
mysql -uwww -Dflamework -p < schema/db_main.schema
That's it.
For a longer version, read the installation guide.
If you'd like to use Flamework as an external library, read this.
To install Flamework on AppFog.com, read this.
##Global Variables
Flamework uses and assigns global PHP variables on the grounds that it's really just not that big a deal. A non-exhaustive list of global variables that Flameworks assigns is:
-
$GLOBALS['cfg']-- A great big hash that contains all the various site configs and runtime user authentication info. -
$GLOBALS['smarty']-- A Smarty templating object. -
$GLOBALS['timings']&$GLOBALS['timing_keys']-- Hashs used to store site performance metrics.
Some libraries use their own globals internally, usually prefixed with LIBRARYNAME_ or _LIBRARYNAME_.
There are several drop-in external libraries for common tasks:
- flamework-geo - Geo libraries and helper functions
- flamework-aws - S3 upload library
- flamework-api - Add an external API
- flamework-invitecodes - Generate invite codes
- flamework-useragent - Parse useragent strings
- flamework-JSON - Parse invalid JSON
- flamework-sendgrid - Use the SendGrid SMTP Service
Aaron has created several starter configurations for using delegated auth:
- flamework-flickrapp - Authenticate using Flickr
- flamework-twitterapp - Authenticate using Twitter
- flamework-foursquareapp - Authenticate using foursquare
- flamework-osmapp - Authenticate using OpenStreetMap
- flamework-tumblrapp - Authenticate using Tumblr
And some random odds and ends:
- flamework-tools - Automation scripts
If you have make and and recent perl installed (you almost certainly do), you can run the tests using:
make test
If you also have xdebug and PHP_CodeCoverage installed, you can generate test coverage information:
make cover
Test coverage needs some serious improvement.
If you don't want to mess with your local development environment, you can run the tests under Vagrant by doing:
vagrant up
vagrant ssh
cd /vagrant
make test
