Stanford Web Application Toolkit

From Web Services Wiki

Revision as of 17:43, 3 December 2008 by Mrmarco (Talk | contribs)
Jump to: navigation, search



The Stanford Web Application Toolkit (SWAT) is a set of tools designed to assist Stanford web developers in creating secure and robust PHP-based web applications. It gives the programmer straightforward methods for connecting to the database, searching the directory, authorization, sending e-mail, handling file uploads (coming soon), defending against SPAM (coming soon), and other common-but-often-tedious tasks. SWAT has three primary goals: security, accessibility, and ease of use. The toolkit is broken down into several modules.




This module functions as a light framework for Stanford web applications. Using StanfordApp, you may load a YAML-formatted configuration file with your site's basic information, database configuration, and other settings.


A simple extension of PHP's MySQLi, this module greatly simplifies database-related functionality at Stanford. Enabling MySQL-based sessions is one line of code, and turning on encryption is just as easy.

StanfordDirectory / StanfordPerson

Writing raw LDAP queries and parsing the results using PHP is far from straightforward, which is why we developed these classes. StanfordDirectory connects and binds to the directory in order to perform searches, while StanfordPerson provides an intuitive means of getting basic information about Stanford users.


It is easy to send e-mail using PHP, so easy that many developers overlook the potential security flaws. StanfordEmail is a secure extension of the open source project PHPMailer. It adds error detection and reporting, automatic mail server configuration, and easier to understand functions. Securely adding file attachments takes only a couple extra lines of code so that you don't have to bother writing your own MIME headers.


StanfordUtil is a collection of miscellaneous tools that require little-to-no configuration. Operations such as undoing magic quotes and setting up custom error reporting only require a single line of code each using this module.

Personal tools