Updated the readme and loaded it up with markdown.
This commit is contained in:
parent
9f3f041514
commit
bb336ed3d1
1 changed files with 36 additions and 67 deletions
103
README.md
103
README.md
|
@ -1,79 +1,48 @@
|
|||
______ _____ _____ _ __ _ _____ _____
|
||||
| ___ \_ _/ __ \| | / /| | | ___/ ___|
|
||||
| |_/ / | | | / \/| |/ / | | | |__ \ `--.
|
||||
| __/ | | | | | \ | | | __| `--. \
|
||||
| | _| |_| \__/\| |\ \| |____| |___/\__/ /
|
||||
\_| \___/ \____/\_| \_/\_____/\____/\____/
|
||||
|
||||
PHP Interface Collection of Killer Libraries to Enhance Stuff
|
||||
===========================================================================
|
||||
# PHP Interface Collection of Killer Libraries to Enhance Stuff
|
||||
|
||||
What is PICKLES?
|
||||
----------------
|
||||
## What is PICKLES?
|
||||
|
||||
The whole point behind PHP with PICKLES was for me (Josh Sherman) to take
|
||||
a decade of PHP experience and a dozen or so of my own websites (all
|
||||
running on different but similar custom systems of my own design) and build
|
||||
a new framework / rapid development system that would be flexible enough to
|
||||
run all of my sites off of a single shared code base. PICKLES runs in such a
|
||||
way that the core files are completely separate from the site code it's
|
||||
serving. So much so, that the core files should never really need to be
|
||||
accessed after installation (unless you want to void your warranty and/or
|
||||
make a global change to all of your sites), and each site you have running
|
||||
will be nicely packaged in a directory all it's own. This keeps your sites
|
||||
simple and tidy with no duplicated code for each site! In a site's
|
||||
directory, models and modules (page logic) and templates are kept separate
|
||||
from each other and everything is ran through a single entry point
|
||||
controller.
|
||||
PICKLES is an open source framework for the rapid development of web applications.
|
||||
|
||||
Okay, but why?
|
||||
--------------
|
||||
## Okay, but why?
|
||||
|
||||
Now I know you're wondering, "why didn't you just use one of the
|
||||
preexisting and already established PHP frameworks that are out there?" I
|
||||
do have a handful of reasons for that, but those are personal gripes based
|
||||
on a limited number of experiences and I won't be going into detail
|
||||
about them. The main reason for developing my own framework is that I am,
|
||||
and also have been, a very do it yourself type when it comes to coding, and
|
||||
typically very proud of my coding accomplishments. Also, because all of the
|
||||
sites I had previously written shared a lot of the same concepts and in
|
||||
some cases, the same bits of code, it made a heck of a lot more sense for
|
||||
me to develop a new system based around some of the better concepts from
|
||||
previous outings than to rebuild my sites inside of another framework.
|
||||
I could have went with any number of existing frameworks, but I opted to build my own because I like to code. I've 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.
|
||||
|
||||
Get the facts!
|
||||
--------------
|
||||
## Wait, what, it's not MVC?
|
||||
|
||||
* PICKLES will only run on PHP 5.0.0 or greater. There are no plans to
|
||||
ever support PHP 4.x.y (or below) as those versions have reached end of
|
||||
life, so please don't ask.
|
||||
PICKLES is in fact not a true MVC system and won't 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 didn't 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.
|
||||
|
||||
* PICKLES is not Model-View-Controller (MVC). It was developed around
|
||||
concepts (as well as some naming conventions) of the MVC design pattern
|
||||
but does not entirely conform to my own understanding of MVC. I'm from
|
||||
the school of thought that there's not a single hammer for every nail,
|
||||
so there's no point in forcing PICKLES into the MVC box for the sake of
|
||||
it. PICKLES strives to provide a modular system for developing websites
|
||||
while keeping the display elements separated from any database calls and
|
||||
other logic. That isn't necessarily a bad thing, it just means that
|
||||
PICKLES isn't all that trendy because it lacks a silly buzzword that's a
|
||||
bit overused at this point.
|
||||
## Requirements
|
||||
|
||||
* PICKLES supports rendering Smarty template pages, returning JSON data
|
||||
and RSS feeds (currently only supports version 2.0) and is fully capable
|
||||
of running from the command line modes.
|
||||
### Required Software
|
||||
|
||||
* PICKLES is coded fairly close to the PEAR coding standards and is fully
|
||||
documented in DocBlock notation.
|
||||
* Apache (should run on 1.3+)
|
||||
* Apache Module mod_rewrite
|
||||
* PHP 5.0+
|
||||
|
||||
* Included with PICKLES are shared CSS files (foundation classes and one to
|
||||
do a full CSS reset) and shared JavaScript files with includes jQuery
|
||||
(and some plug-ins / add-ons) and a core JavaScript file which includes
|
||||
automatic AJAXing of forms and some other niceties.
|
||||
### Highly Recommended Software
|
||||
|
||||
* Writing error free code is very important to me, so any PHP development I
|
||||
do is made to be E_STRICT compatible. This means that not only is PICKLES
|
||||
code free of any errors, it is free of warnings as well.
|
||||
* PHP 5.2.0+ for native JSON support or PECL JSON 1.2.1 (included)
|
||||
|
||||
* Depending on your server, any number of sites can be ran off of a single
|
||||
PICKLES install!
|
||||
### Optional Software
|
||||
|
||||
* MySQL with PDO and PDO_MYSQL drivers
|
||||
* PostgreSQL with PDO and PDO_PGSQL drivers
|
||||
* SQLite 3 with PDO and PDO_SQLITE drivers
|
||||
* Mongo with Mongo driver and PECL Mongo 1.0.10 (included)
|
||||
|
||||
## 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.
|
||||
|
||||
1. Download the source [[http://github.com/joshtronic/pickles/zipball/master]] (or clone the repository)
|
||||
|
||||
2. Place the code anywhere you'd like (that's at least 2 directories up from the root of your website). I recommend using /usr/share/pickles
|
||||
|
||||
3. Open the launchpad directory and you will find a sample site ready to be copied and pasted to wherever the site you set up is located.
|
||||
|
||||
- The directory public will need to be renamed to whatever you've set up your document root as.
|
||||
|
||||
- The file apache.conf will give you some insight to how configure Apache, or you can just set the include path in public/index.php
|
||||
|
||||
4. At this point you should have a very rudimentary site up and running.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue