RSD - Rapid and Secure Development aka Rocket Science Development ----------------------------------------------------------------- Table of Contents ----------------- 1 Directory Structure 2 What is RSD? 3 RSDEngine - The Core Component 4 License 5 Target Audience 6 About the Author 1 Directory Structure --------------------- +---framework contains all packages in subdirectories; ¦ ¦ must be in the include path ¦ +---Auth_Container_RSDB ¦ +---EVS ¦ +---MagicQuotesUtil ¦ +---RSArrayUtil ¦ +---RSDEngine ¦ +---RSErrorManager ¦ +---RSIO ¦ +---RSStringUtil ¦ +---RSValidation +---inc Contains PHP files that implement project management ¦ ¦ features and get included by all projects. ¦ +---project ¦ +---version ¦ +---doc ¦ +---unitTests +---project_skel Contains the files copied to every newly created project. +---utils Contains the following bash scripts: ¦ - createVersionCodeTar.sh ¦ - rsd_diff.sh ¦ - rsd_diff.file.sh (gets called by rsd_diff.sh +---version_skel Contains the files copied to every newly created version. +---doc ¦ +---tutorials ¦ +---%%PROJECT_NAME%% +---settings +---unitTests 2 What is RSD? -------------- RSD is a development environment that makes PHP appliction development faster and more secure. RSD provides: - RSD Coding Conventions - All web applications developed with RSD implement a certain Design Model - MVC. - EVS - The Easy Versioning System for managing the application development. - 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 - The Rapid and Secure Development Engine for automated and therefor 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. 3 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. 4 License --------- RSD is released under the terms of the Lesser General Public License (LGPL). Please see the LICENSE file for details. 5 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. 6 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. Please feel free to contact me by writing to lukas.feiler@chello.at. Have fun! Lukas Feiler