RSD - Rapid and Secure Development

aka Rocket Science Development

What is RSD?
RSD is a development environment that makes PHP appliction development faster and more secure. RSD provides:
  • EVS - The Easy Versioning System for managing the application development.
  • All web applications developed with RSD implement a certain Design Model - MVC.
  • RSD implements and applies the RSD Coding Conventions (see the docs)
  • The regression testing framework for unit tests PEAR::PHPUnit is integrated to ease quality assurance.
  • The PHP API documentation tool PHPDocumentor for easy documentation of your projects.
  • The RSDEngine - a code generator for automated and therefore rapid and secure development based on the following packages:
    • The Database Abstraction Layer PEAR::DB
    • The Authentication System PEAR::Auth
    • An extended version of Auth_Container_DB: Auth_Container_RSDB
    • The Authentication and Permission Management Framework PEAR::LiveUser
    • The Mail Sending Class PEAR::Mail
    • The Error Manager RSErrorManager
    • The Template Engine Smarty
  • You get the most out of the RSDEngine when developing a database backended web application with and authentication and an authorization system. You make the database design and specify the options for the authentication system and specify which rights are required for which tables/records and the RSDEngine does the rest:
    It creates the application model - all truly object orientated. The classes the RSDEngine will generate for each table will only select/insert/update/create records if the currently logged in user has the specified right to perform this specific operation.
    The RSDEngine creates as well the necessary controllers and (smarty-) templates for selecting, inserting, updating and deleting records from each table.

    RSDEngine - The Core Component
    The basic idea of the RSDEngine is to sepeate things that change from things that do not. What does change in every application is the data that is managed with it - the database design. But what does not change, is the way this data is created, updated, selected or deleted. Everything or let's say the most of the things that 'stay the same' can be therefore generated. The rest is analysis and cannot be performed by a computer but by an analyst - a database designer! The RSDEngine needs the result of the analysis - the database design - and a few other configuration options as input and outputs an implementation of this analysis based on a very modular and flexible design.

    License
    RSD is released under the terms of the Lesser General Public License (LGPL).

    Target Audience
    The primary target of RSD is to increase the productivity of rather small development teams (2 - 10 developers). If your development team is learger that 10, RSD might still be a great help but you should consider additionally using CVS. But for a lot of small companies CVS is not really an option because the HTML-guy or the graphic designer will refuse to learn CVS.

    About the Author
    I am working in a small company developing database applications with PHP and MySQL or Oracle. I do as well all the Linux system adminstration necessary to keep our applications running. The other half of the week I am studying law at the University of Vienna which turned out to be as much fun as programming because in the end, it's all about logics. Luckily I am also as successful in my studies as in my job. Somewhere in between I find some time to continue the development on RSD and the second project I've got running (please see dumpnet.sourceforge.net).

    Please feel free to contact me by writing to lukas.feiler@nea.at.

    Have fun!
    Lukas Feiler