hassankhan / sonic
Sonic is a stupidly simple, blazing fast, flat-file CMS based on Pico
Requires
- php: >=5.3
- michelf/php-markdown: ~1.4
- pimple/pimple: ~2.0
- symfony/http-foundation: ~2.4
- twig/twig: 1.*
Requires (Dev)
- filp/whoops: 1.*
- phpunit/phpunit: 3.7.*
- satooshi/php-coveralls: dev-master
This package is not auto-updated.
Last update: 2020-01-24 15:29:02 UTC
README
Master | Develop |
---|---|
Sonic is a stupidly simple, blazing fast, flat-file CMS based on Pico.
Sonic is a microCMS - this means there is no administration backend and database to deal with. You simply create .md
files in the "content" folder and that becomes a page.
Its interface is supposed to be simple and is in process of documentation. Thank you for choosing Sonic for your next project.
Features
- Uses Markdown Extra for content parsing
- Uses a powerful(ish) Slim/Silex-style router
- Standard HTTP methods
- Route parameters with wildcards and conditions
- Dependency injection container using Pimple
- Template rendering using Twig
- Filesystem handling using Flysystem
- Atom feed and tagged posts support
- HTTP caching
- Error handling and debugging
- Application hooks and extensible components for extending functionality
- Simple configuration
- Hilarious, snarky source code comments
Getting Started
Refer to Sonic Skeleton for instructions on creating a new project with Sonic.
Documentation
You can check out more in-depth documentation here.
How to Contribute
Pull Requests
- Fork the Sonic repository
- Create a new branch for each feature or improvement
- Write tests so my precious code coverage doesn't decrease (too much)
- Send a pull request from each feature branch to the develop branch
It's pretty important to separate new features or improvements into separate feature branches, and to send a pull request for each branch. This allows me to review and pull in new features or improvements individually.
Style Guide
- No extraneous whitespace. I hate it with a fucking vengeance
- Tabs should be set to four spaces
- Method names should be written in
snake_case()
, rather thancamelCase()
- All source files should start with
<?php
but should not have an closing tag - End files with a Unix-style newline
Unit Testing
All pull requests should ideally be accompanied by passing unit tests and complete code coverage. Sonic uses PHPUnit for testing.
Community
Don't make me laugh
Forum and Knowledgebase
Coming soon
Coming soon
Author
Sonic is created and maintained by Hassan Khan.
Credits
Clearly a lot of help (especially) from Slim, as is apparent from the source code. This also would not have been possible without Pico, Symfony, or more specifically, the Symfony HttpFoundation component, PHP-Markdown and many others. The open-source PHP community in general does a fantastic job of polishing turds.
License
Sonic is released under the MIT public license.