Use the branch skeleton-nodb-nobs for a skeleton setup with no database features enabled (commented-out), no bootstrap files and empty .md files.
Skeleton PHP7 Fatfree-framework MVC website codebase.
Project Goal: Be a good and extremely flexible starting-point for implementing any kind of PHP project in F3.
config.example.inifiles to suit your project - create your local setup
config.inifile from this.
app/lib/Appand the associated routes in
composer dumpto update your the autoloader with your newly created classes
PHP7 only now! - see CHANGELOG.md
I wrote this project for myself, but if you are thinking to use it, thinking on the points below will help you decide.
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin -filename=composer
php -S http://127.0.0.1:8080and browse to http://127.0.0.1:8080
app/config/config.iniand add anything extra from
run composer install
data/db/sql/create.sql(set ini option for db.create=true)
Setup empty website folders as follows:
mkdir -p tmp/cache tmp/sessions tmp/uploads tmp/logs data sudo chown -fR www-data:www-data tmp data sudo chmod -fR 777 tmp data
Note: The files that were in
lib/FFMVC have now been split-out into their own repository https://github.com/vijinho/FFMVC
They can then be included in your own project by adding the same lines in your
composer.json as used in mine here.
lib/bcosca/fatfree-core- fatfree framework (core) lives here
www- website and public doc root (aka
www/index.php- start website application here - is the default file used by
app- the website application lives outside the webroot for security
app/lib/App/App.php- start fatfree project by including this file and executing Run();
lib/- all external library files/classes
app/lib- local application-specific libraries
app/lib/App/Controllers- MVC Controllers
app/lib/App/Controllers/API- MVC Rest API Controllers
app/lib/App/CLI- Controllers for when executing in a command-line environemnt
tmp/uploads- temporary files
tmp/logs- application logfiles
data- website data storage folder
docs- application documentation (markdown files)
app/config- application configuration files
app/config/vhost- application virtual host configuration files (apache and nginx supported)
bin/cli.php- symlink to command-line runner in
app/lib/App/CLI.php' which uses routes inapp/config/routes-cli.ini`
app/en/templates/error/- these files are standard php includes, not f3 templates, used by the error handler function
app/en/templates/error/debug.phtml- debug error page (if DEBUG=3)
app/en/templates/error/404.phtml- 'friendly' file not found page
app/en/templates/error/error.phtml- 'friendly' error page
tests- unit tests see docs/TESTING.md
Used for bootstrapping the application and generic enough to be separate from the main project.
lib/FFMVC/App.php- Base Application Class to start/shutdown app
lib/FFMVC/App/Helpers- Auxillary helper functions and utility libraries specific to the project
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=GB/ST=STATE/L=TOWN/O=Office/CN=f3-boilerplate.local" -keyout f3-boilerplate.key -out f3-boilerplate.crt
Add to apache virtual host (and also see the f3-boilerplate-ssl.local files in app/config/webserver/
SSLCertificateFile ssl/f3-boilerplate.crt SSLCertificateKeyFile ssl/f3-boilerplate.key
MAMP lets you add the SSL file in the Hosts/SSL tab.
From the base folder run:
php app/lib/App/CLI.php /
The output will be:
CLI Script FFCMS\CLI\Index::index Hello World! Finished. Script executed in 0.048 seconds. Memory used 2.29 MB.