The Repo, so what's in it?

Jesse von Doom's Avatar

Jesse von Doom

17 Feb, 2012 05:52 AM

So glad you asked! First, you can get it here:

https://github.com/cashmusic/DIY

When you fork you'll notice that there's an index.html file at the root of the repo. The whole thing is set up as one big site, so point apache at it and you'll get links to docs, the admin, and a handful of demos.

Setup

Setting things up for first run is easy. Just run the dev installer, choose sqlite as your database type, and make the repo directory the root of your MAMP/apache. As simple as:

php installers/php/dev_installer.php

The installer will give you a login, just use that and you're ready to go.

Contents

Great, but what's in it?

  • /docs - contains the docs and the scripts we use to generate them. Right now these are primarily scraped from comments but we plan to add more code samples.
  • /framework - this is really the heart of the platform. Everything routes through a request/response model that parses incoming requests, dispatches to an appropriate factory class (/plants) which can access the database and additional worker classes (/seeds) to handle extra functionality and finally return a uniformly formatted response.
  • /installers - 10 guesses. Okay no it's installers. For installing. There are 3 main installers: the web installer, the dev installer, and the test installer. The web installer is meant to be uploaded as a single file to a web host and run as an interactive installer. The test installer is used by the test suite to set things up and whatnot. And the dev installer is the one we just talked about.
  • /interfaces - the admin, the external api, demos, and public files. Basically all of these things are standalone applications that interface with the main framework, including the admin.
  • /tests - the test suite. No commits without a passing tests first! We use the Simpletest PHP testing library for these.

Running Tests

Running tests is easy. You can run tests pretty much whenever you want, simply by cd'ing to the repo route and typing:

make test

You'll get a report. It's helpful. And rewarding when you get them all passing.

  1. 1 Posted by Greg Militello on 06 Mar, 2012 11:25 PM

    Greg Militello's Avatar

    Have you guys considered using components from other PHP frameworks? Or repurposing an already existing framework to your needs?

    At this point most of what I see in your repo could be a package or bundle in an existing framework, and you could easily prepackage it for "ease of use". Symfonys, Zend Framework, CakePHP, etc all have good track records. I see no reason to invent another framework.

  2. Support Staff 2 Posted by Jesse von Doom on 06 Mar, 2012 11:29 PM

    Jesse von Doom's Avatar

    The reason was actually interoperability. We've seen artists using
    Cake/WordPress and a few others and conflicts would arise. We also
    wanted something that would run in "default" hosting environments and
    a lot of frameworks would mean upgrades.

Reply to this discussion

Internal reply

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attaching KB article:

»

Attached Files

You can attach files up to 10MB

If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac