The Attogram Framework provides developers a PHP skeleton starter site with a content module system, file-based URL routing, IP-protected backend, Markdown parser, jQuery and Bootstrap.
After that, Attogram tries to stay out of your way while you do your thing!
composer create-project attogram/attogram-framework your-install-directory
or manually install:
https://github.com/attogram/attogram-vendor/archive/master.zipand move the
./vendor/directory to the top level of your install directory.
./public/directory as the web site root.
./public/.htaccess, set FallbackResource, ErrorDocument 403 and ErrorDocument 404 to the full web path to the index.php file in the install directory.
./public/config.phpand edit to change default settings .
array( '127.0.0.1', '::1' )
Attogram now has modules! Updated docs coming soon...
./db/globalis writeable by the web server
Modules may have the following subdirectories:
actions/- The Public Actions (.php or .md markdown files) If present, the
homeaction is used as the home page.
admin_actions/- The backend admin-only Actions (.php or .md markdown files)
configs/- Configurations via
namespace Attogram; global $config; $config['configname'] = ..., loaded at startup (.php files only)
includes/- Included files, loaded at startup (.php files only)
tables/- Database table definitions. Tables are created lazily as needed (.sql files only)
templates/- Templates, to override default Attogram templates
public/- Files for public consumption. Served via requests to the
web/virtual web directory
Modules are loaded in directory list order.
./actions/directory, add anything you want!
Depth settings in
End Slash settings in
$config['noEndSlash'] = 'insert-action-name-here'
CREATE TABLE ...statement
./robots.txtdoes not exist, Attogram dynamically serves it, with a link to the Sitemap
./sitemap.xmldoes not exist, Attogram dynamically serves it, with a listing of all public pages