The FAQ package came as a direct need for a dynamic FAQ section for the marketing site for iOffertory. Over the next few posts, I will dive into production code and give you some background behind my decisions as we take apart various techniques that I use as I refactor the FAQ package There were a few things that I really wanted that made my FAQ section unique and that drove me to create this separate package instead of running something a bit more off the shelf.

  1. Database/File Based Persistance - I did not want to have to go and edit the FAQ page any time a user asked a question.
  2. Subdirectory or Subdomain Installation - iOffertory and other projects that I am working on are in heavy development with things changing left and right, I wanted the ability to move the location of the FAQ at my own accord. Also, I did not want to have to fool with my Nginx configuration or .htaccess files.
  3. Flexible database connections - I don't want to store my application logic in the same database as my marketing site. I want to avoid potential security issues with SQL injection and I don't want to have to migrate my FAQ alongside my business logic.
  4. Fast installation - Once the FAQ is developed, I want to be able to deploy it to a site in just a handful of commands.
  5. Themeable - While the general logic for the FAQ Package should be pretty straightforward, I did want to allow you to wrap it in any theme you wanted to.
  6. Nice out of the box - I did want the support for a nice look straight out of the box so let's them it with Gumby Framework to give it a sleek look.

Some posts to look forward to:

  1. Flexible Database Connections and Models
  2. Creating Fast Package Install Commands
  3. Repositories in use in Laravel 4 Package Development
  4. Flexible Views in Laravel 4 Packages
  5. Creating Package APIs in Laravel 4
  6. Other Code Updates (Routing, Controllers, Models, Views, Assets, Service Providers, Interfaces)