Reworked the README a bit

This commit is contained in:
Joshua Sherman 2014-01-26 15:52:31 -05:00
parent 7e993d9958
commit ddf1719862

View file

@ -1,50 +1,47 @@
# PHP Interface Collection of Killer Libraries to Enhance Stuff # PICKLES
[![Build Status](https://travis-ci.org/joshtronic/pickles.png?branch=master)](https://travis-ci.org/joshtronic/pickles) [![Build Status](https://travis-ci.org/joshtronic/pickles.png?branch=master)](https://travis-ci.org/joshtronic/pickles)
[![Coverage Status](https://coveralls.io/repos/joshtronic/pickles/badge.png)](https://coveralls.io/r/joshtronic/pickles) [![Coverage Status](https://coveralls.io/repos/joshtronic/pickles/badge.png)](https://coveralls.io/r/joshtronic/pickles)
[![Dependency Status](https://www.versioneye.com/user/projects/52d1bc1eec13751bde00002a/badge.png)](https://www.versioneye.com/user/projects/52d1bc1eec13751bde00002a) [![Dependency Status](https://www.versioneye.com/user/projects/52d1bc1eec13751bde00002a/badge.png)](https://www.versioneye.com/user/projects/52d1bc1eec13751bde00002a)
## What is PICKLES? PICKLES (PHP Interface Collection of Killer Libraries to Enhance Stuff) is an open source framework for rapid PHP development. PICKLES aims to be an “API First” system for building APIs as well as AJAX/AJAJ-centric web applications.
PICKLES is an open source framework for the rapid development of web applications.
## Okay, but why?
I could have went with any number of existing frameworks, but I opted to build my own because I like to code. Ive built quite a few sites from the ground up over the years, and I wanted to roll that experience into a single system that I could not only use for my sites, but share with the world.
## Wait, what, its not MVC?
PICKLES is in fact not a true MVC system and wont be masquerading around as one (yeah, I know, I borrowed some naming conventions). PICKLES does have a main controller that handles incoming page views. The controller loads a module that contains all of the business logic (optionally interacting with data models) and then execution is passed off to the display layer. The display layer gives the user what they asked for (even if they didnt say please). This is how web pages work, and there has never been a reason for me to force PICKLES into the MVC box just for the hell of it.
## Requirements ## Requirements
### Required Software ### Required Software
* Web server of your choice (nginx is highly recommended) * Web server of your choice (nginx is highly recommended but Apache with `mod_rewrite` will suffice)
* PHP 5.4+ * PHP 5.4+
Please note that strides are being made to be compatible with bleeding edge technologies. PICKLES is currently developed against PHP 5.5 and does not pass build tests against prior versions. This effort will be with somewhat of a reckless abandon towards backwards compatibility to keep up with deprecations within PHP. Please note that PICKLES development is focused on the most recent stable version of PHP (currently 5.5) but will maintain backwards compatibility with the previous stable version. It may not be immediate, but when PHP 5.6 is released compatibility for PHP 5.4 will be dropped in favor of modern niceties.
To help anyone that is “stuck” using PHP 5.3.x, the version distributed with Ubuntu 12.04 LTS, you can still use the 5.3 compatible branch [available here](https://github.com/joshtronic/pickles/archive/php53-compatible.zip) instead. This branch is a fork of the master branch just before we started to these efforts and is considered very stable. The branch will remain available for the foreseeable future but will be indefinitely frozen unless pull requests are submitted. For anyone stuck using PHP 5.3 is welcome to use [PICKLES v13.12.x](https://github.com/joshtronic/pickles/tree/v13.12.x) which at this time is still receiving bug fixes but will not be seeing any new development by myself. Pull requests are welcome.
As developers we make demands that our end users use modern day browsers while were just as guilty by running older server software, typically under the guise that its “stable”. I feel that we should be holding ourselves to the same standards when it comes to our server stacks. Stability is great, but at a certain point youre sacrificing your own technology advancements as a developer as well as turning a blind eye to optimizations that can benefit your users. My rant about outdated server stacks can be found [on my blog](http://joshtronic.com/2014/01/13/your-stack-is-outdated/#.UuVzI3n0A18).
### Optional Software ### Optional Software
* MySQL with PDO and PDO_MYSQL drivers * MySQL server with the `PDO_MYSQL` driver
* PostgreSQL with PDO and PDO_PGSQL drivers * PostgreSQL server with the `PDO_PGSQL` driver
* SQLite 3 with PDO and PDO_SQLITE drivers * SQLite 3 with the `PDO_SQLITE` driver
* Memcached with the Memcache module * Memcached server with the `Memcache` module
* composer if you want to compile LESS, SCSS or JS also necessary if you want * `composer` if you want to compile LESS, SCSS or JS also necessary if you want to use AYAH integration or run the test suite
to run the unit tests
* [ext/test_helpers](https://github.com/php-test-helpers/php-test-helpers) if you want to be able to run the test suite * [ext/test_helpers](https://github.com/php-test-helpers/php-test-helpers) if you want to be able to run the test suite
## Installation ## Installation
Installation is quite simple as there is no installer to run, and all server configuration options can be set in your index.php for your site. Installation is quite simple as there is no installer to run, and all server configuration options can be set in your index.php for your site.
1. [Download the PICKLES source code](https://github.com/joshtronic/pickles/archive/master.zip) (or clone the repository) 1. [Download the PICKLES source](https://github.com/joshtronic/pickles/archive/master.zip) (or clone the repository)
2. Place the code anywhere youd like (thats at least 2 directories up from the root of your website). I recommend using `/usr/share/pickles` 2. Place the code anywhere youd like (thats at least 2 directories up from the root of your website). I recommend using `/usr/share/pickles[-vVERSION]`
3. A starter site can be obtained from http://github.com/joshtronic/pickles-starter. It has everything you need to get a site up and running. 3. Run `composer update`
4. At this point you should have a very rudimentary site up and running. 4. A site already built in PICKLES can be found [here](https://github.com/gravityblvd/tools.gravityblvd.com)
5. Run `composer update`
## TODO
* Bring the project's Wiki up to date
* Build an actual boilerplate site that would be included in this project
## Thanks
Special thanks goes out to @deanproxy for helping to name this project and @geoffoliver for being a long time user and contributor of this project.