Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
CSC 2720 Building Web Applications Basic Frameworks for Building Dynamic Web Sites / Web Applications Web Application Framework A web application framework is a software framework that is designed to support the development of dynamic websites and Web applications. Aims Improve productivity Promote code reuse Minimize errors Reduce cost of maintenance Input-Process-Output Input: Extract form data, cookies, etc. from a HTTP request Process Validate data, authenticate user, check access right, etc. Retrieve data from or update data in the storage layer Apply business logic Output Format the output in HTML and CSS Write PHP scripts to conditionally or iteratively generate the output Suggestion: Organizing the contents in a PHP script <?php // Validate input // Process the input // Store the output (including error status // and messages if there is any) in some // designated variables ?> <!-Contains mainly HTML, CSS, and PHP scripts that deal with presentation logic --> Suggestion: Organizing the contents in a PHP script Commonly used codes should be made into functions and placed in separate files (so they can be reused). For examples, codes to Authenticate a user Establish a database connection Retrieve data from a database Validate the format of an email address or a credit card number. Codes that make up the business logic should also be placed in separate files. Modular Design Presentation Layer Commonly used Functions Business Logic Data Access Layer (PHP Functions to retrieve, store, or update data) Data Storage Layer (Database, Files, etc.) Model-1 Architecture http://website/app_folder/page1.php page1.php page2.php pageN.php … Input Validation + Business Logic Presentation Logic Model-1 Architecture Each PHP page is regarded as the focal point for the entire application. Each PHP page Contains code for extracting HTTP request parameters and call the business logic Contains the presentation logics Adv: Easy to add/remove pages Suitable for small/simple application Model-2 Architecture http://website/app_folder/controller.php?action=p1 controller.php controller.php can pass the necessary data to page1.php via some global variables. page1.php if ($action == 'p1') { include("page1.php"); exit(); } … page2.php pageN.php … Input Validation + Business Logic Presentation Logic Note: These files can be placed in a folder that cannot be accessed directly via a URL. Model-2 Architecture One PHP script serves as a controller that Handles requests, setup sessions Performs authentication, validation Decides what logic to invoke or which PHP script to handle the business logic Decides which PHP script to be used to present the output Adv: One entry point to the web application (easier to enforce access control and perform user authentication) Suitable for large or complicated application