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
www
to a web server running Apache withmod_php
andphp5-mcrypt
. - Enable
AllowOverrides all
for the root. - If some of your rewrite rules like
^account/password$
aren't working, tryOptions -MultiViews
. - Copy
include/config.php.example
toinclude/config.php
and edit it. - Ensure that the
templates_c
directory 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