Other Web Application Development Technologies. PHP.

66
Other Web Application Development Technologies

Transcript of Other Web Application Development Technologies. PHP.

Page 1: Other Web Application Development Technologies. PHP.

Other Web Application Development Technologies

Page 2: Other Web Application Development Technologies. PHP.

PHP

Page 3: Other Web Application Development Technologies. PHP.

PHP• Personal Home Pages or PHP:

Hypertext Preprocessor

• language for creating HTML content– normally runs as a server-side scripting

language– command line scripting possible– client-side GUI applications using PHP-

GTK

• generates other formats– PDF, GIF, JPEG, PNG, Flash

Page 4: Other Web Application Development Technologies. PHP.

PHP

• free, open source technology

• extensive libraries of PHP code modules

• runs on all major operating systems

• runs with all major web servers (Apache, IIS, iPlanet)

• good database integration– MySQL, Oracle, ODBC databases,

PostgreSQL, Sybase

Page 5: Other Web Application Development Technologies. PHP.

PHP example

<HTML>…<BODY><H1>PHP Hello World Example</H1><?php echo ‘Hello world!’ ?>

</BODY></HTML>

Page 6: Other Web Application Development Technologies. PHP.

PHP architecture

Page 7: Other Web Application Development Technologies. PHP.

PHP/Web Server Architecture

• web server layer– handles http requests– passes data to PHP via SAPI

• TSRM Thread-Safe Resource Management• PHP language core• PHP API (available to core and PHP extensions)• Zend parsing engine

– runtime compiler– executer

Page 8: Other Web Application Development Technologies. PHP.

PHP/Web Server Architecture

web server (Apache, IIS, etc..)

Server Abstraction API (SAPI)

TS

RM

Zend Engine

PHP CorePHP extensions

TS

RM

PHP API

Page 9: Other Web Application Development Technologies. PHP.

inputclient

HTMLpage

PHPpage

PHP Zend

parsingengine

webserver

datahttp request

outputHTML

http response

PHP and http

Page 10: Other Web Application Development Technologies. PHP.

form processing example<html><head><title>Ice Cream Parlour </title></head><body>

<h1>Ice Cream Parlour</h1>

<form action = “ices.php” method = “POST”>

Flavour : <select name=“flavour”>

<option>vanilla</option>

<option>chocolate</option>

</select>

Scoops :<input type = “text” name = “scoops” />

</form>

</body></html>

Page 11: Other Web Application Development Technologies. PHP.

form processing example<html>

<head><title>Ice Cream Response</title></head>

<body>

<h1>Thank you for your order</h1>

<?php

$flavour = $_POST [‘flavour’];

$scoops = $_POST [‘scoops’];

echo “$scoops scoops of $flavour coming right up!”;

?>

</body></html>

Page 12: Other Web Application Development Technologies. PHP.

<HTML><head><title>self processing PHP page</title></head><BODY><?php if(!empty($_POST[‘name’])) { echo “Greetings, {$_POST[‘name’]}”;} else {?><FORM ACTION=“<?php $PHP_SELF; ?>”

METHOD=“POST”>Enter your Name:<INPUT TYPE=TEXT NAME=“name”><INPUT TYPE=SUBMIT>

</FORM><?php } ?> </BODY></HTML>

Page 13: Other Web Application Development Technologies. PHP.

control of http response

• PHP sets standard headers by default– response status line– date, document length– other headers added by web server

• header () function allows other headers to be set– header (‘content-type: text/plain’);

• header must be used before any html generated (including leading <html> tag)

Page 14: Other Web Application Development Technologies. PHP.

cookies

• $_COOKIE array used for input

• setcookie () function sets cookie headers in the http response

<?php $accesses = $_COOKIE [‘accesses’]; setcookie (‘accesses’, ++$accesses);?>

• must be used before html content

Page 15: Other Web Application Development Technologies. PHP.

sessions

• PHP provides automatic session handling

• sessions set up using start_session() command

• PHP uses cookies to pass session information– will switch to URL-rewriting if cookies disabled

• start_session() must appear at the start of the PHP document

Page 16: Other Web Application Development Technologies. PHP.

simple hit counter<?php

session_start ();

/*a unique session id will be generated and stored in a cookie named PHPSESSID /*

session_register (‘hits’);

/*sessions can load in variables registered in an associative array called $HTTP_SESSION_VARS*/

++$hits; //variable is incremented

?>

<html> … etc …

<p>This page has been viewed <?= $hits ?> times.

Page 17: Other Web Application Development Technologies. PHP.

PHP and XML

Page 18: Other Web Application Development Technologies. PHP.

PHP and XML

• PHP has strong text processing functionality– comprehensive string manipulation– strong regular expressions

• inherited or imported from Perl

• full set of filehandling functions for file I/O

• XML data files can be created/manipulated programmatically using text processing approaches

Page 19: Other Web Application Development Technologies. PHP.

PHP and XML

• DOM– DOM processing from PHP 4.3– DOM extension part of PHP 5 core

• XSLT– libxslt extension in PHP 5– A separate XSLT extension available from

Sablotron C library (different API)

Page 20: Other Web Application Development Technologies. PHP.

PHP and XSLT

<!-- sablotron version --><?php $processor = xslt_create ();

$result = xslt_process($processor,‘source.xml’,‘transform.xml’);

if(!$result) echo xslt_error ($processor); xslt_free ($processor); echo “<pre>$result</pre>”;?>

Page 21: Other Web Application Development Technologies. PHP.

events-based XML programming

• PHP has an event-based XML parser

• based on libxml2 library– SAX parser– replaces old non-SAX Expat library

• parser calls handler functions as events occur

• you write the event handler functions

Page 22: Other Web Application Development Technologies. PHP.

PHP strengths and weaknesses

Page 23: Other Web Application Development Technologies. PHP.

PHP strengths

• free, open-source product– flexible– extensible

• easy to implement– builds onto most browsers on most platforms– familiar, flexible and powerful syntax

• with occasional weirdness thrown in

• good database connectivity– technology of choice for low-end web-DB system

Page 24: Other Web Application Development Technologies. PHP.

PHP weaknesses• XML support

– some non-standard features still in PHP5• slow because of runtime compilation then

execution– derives from CGI script origins

• limited separation of coding from HTML– no equivalent of JSP custom tags– some open source versions emerging

• see http://trac.php-tools.net/

• extensibility limited by cumbersome C-based architecture– this is improving with later versions

Page 25: Other Web Application Development Technologies. PHP.

PHP web application frameworks

• Frameworks are now emerging for PHP• Cake

– Next lecture… – growing developer community, growing functionality– http://www.cakephp.org/

• Symfony– Very recent but stems from older projects– established development community– http://www.symfony-project.com/

• Zend Framework– growing community of developers– http://framework.zend.com/

Page 26: Other Web Application Development Technologies. PHP.

PHP web application frameworks

• Typical functionality

• CRUD (database interaction)

• M-V-C architecture

• Access control lists

• View helpers - AJAX, JavaScript, etc…

• Standard application components

Page 27: Other Web Application Development Technologies. PHP.

Active Server Pages (ASP)

Microsoft-based server-side processing technology • ASP provides a server-side scripting

environment.

• This includes:

Read information from an HTTP request.

Customize an HTTP response.

Interact with Databases.

Support complex middleware.

Page 28: Other Web Application Development Technologies. PHP.

Active Server Pages (ASP)

• are processed in response to a client request

------ server-side scripting• are processed by an ActiveX component

------ a scripting engine• have the file extension .asp.asp• contain HTML tags and scripting code• VBScript is the most widely used language

(although you can use JavaScript, other .NET languages)

Page 29: Other Web Application Development Technologies. PHP.

The ASP Architecture

ASP.DLL

Page 30: Other Web Application Development Technologies. PHP.

• A user makes an http request for an ASP page.• The .asp extension tells the Web server that the

page contains server script (executable code) that it should process before returning the page to the browser.

• The server passes the ASP to the scripting engine

• The scripting engine executes ASP commands as it encounters them

• After execution of the server scripts, all code is stripped out of the page.

• The pure HTML page is sent in the http response.

Page 31: Other Web Application Development Technologies. PHP.

A Simple ASP Example

<% @LANGUAGE = VBScript %><% Option Explicit %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<% ' File : clock.asp %><HTML><HEAD><TITLE>A Simple ASP Example</TITLE><META HTTP-EQUIV = "REFRESH" CONTENT = "60; URL=CLOCK.ASP">

</HEAD>

Page 32: Other Web Application Development Technologies. PHP.

A Simple ASP Example

<BODY><H1>Simple ASP Example</H1><TABLE BORDER = "6"><TR>

<TD><% =Time() %></TD> </TR></TABLE></BODY></HTML>

Page 33: Other Web Application Development Technologies. PHP.
Page 34: Other Web Application Development Technologies. PHP.

ASP Built-in Objects

• Request

• Response

• Session

• Application

• Server

• ObjectContext

Page 35: Other Web Application Development Technologies. PHP.

ASP Built-in Objects• Request

– Retrieves the values that the browser passes to the server during an HTTP request.

• Response– Controls what information is sent to a

browser in the HTTP response message.

Page 36: Other Web Application Development Technologies. PHP.

ASP Built-in Objects

• Session

– Used to manage and store information about a particular user session.

• Application

– Used to manage and store information about the Web application.

Page 37: Other Web Application Development Technologies. PHP.

ASP Built-in Objects

• Server– Provides access to resources

that reside on a server.• ObjectContext

– Used to commit or abort a transaction managed by Microsoft Transaction Server (MTS) for ASP pages that run in a transaction.

Page 38: Other Web Application Development Technologies. PHP.

Request Object Collections

• ClientCertificate

• Cookies

• Form

• QueryString

• ServerVariables

Page 39: Other Web Application Development Technologies. PHP.

Form Collection

• The Form collection contains the values of each standard HTML control that has a NAME attribute. When a user submits a form with the POST method, you can read the values of the controls by using the Form collection.

• The Form collection of the Request object can be used to extract information from the body of an HTTP request message.

Page 40: Other Web Application Development Technologies. PHP.

Form Collection<FORM ACTION=“icecream.asp" METHOD=POST>

Name: <INPUT TYPE=TEXT NAME="name"><P>

Favourite Flavour: <SELECT MULTIPLE NAME=“flavour">

<OPTION>Mint<OPTION>Vanilla<OPTION>Coffee

</SELECT><P><INPUT TYPE=SUBMIT NAME=“iceSubmit" VALUE="Submit">

</FORM>

Page 41: Other Web Application Development Technologies. PHP.

Form Collectionicecream.asp

Request.Form("name")Request.Form("flavour")

or<% For Each Item in Request.Form'code to display Item here

Next %>

Page 42: Other Web Application Development Technologies. PHP.

ASP on Alternative Platforms

• Chili!ASP by Chili!Soft (Expensive to buy!)• Windows

– IIS, Apache, Netscape Enterprise & FastTrack, O’Reilly WebSite Pro

• Solaris– Apache, Netscape Enterprise & FastTrack

• Linux: Apache• IBM AIX: Apache, Netscape Enterprise & FastTrack, IBM

HTTP Server, Lotus Domino Go• HP UX

– Apache, Netscape Enterprise

Page 43: Other Web Application Development Technologies. PHP.

ASP on Alternative Platforms

• Instant ASP (iASP) by Halcyon Software

• cheaper

• written in Java as a Servelet, so runs with Apache/Tomcat and many other servers

• allows mix of ASP and JSP– better range of functionality– may run slow for high volume applications

Page 44: Other Web Application Development Technologies. PHP.

ASP Strengths

• implements M-V-C• code embedded in the HTML

– separation of concerns

• no compiling - stays resident in memory• no complex interfacing - method calls• suitable for high-end web applications• standard components

– re-use– eases programming effort

Page 45: Other Web Application Development Technologies. PHP.

ASP weaknesses

• difficult to port between platforms

• steep learning curve for full functionality– less suitable for low-end web apps

• multiplicity of .NET languages– diffuse coding options– can leave legacy problems

Page 46: Other Web Application Development Technologies. PHP.

ColdFusion

Page 47: Other Web Application Development Technologies. PHP.

ColdFusion

• Technology for building dynamic web applications

• provides powerful markup reducing need for programming skills

• designed for RAD: abstracts many low-level tasks e.g. connection to a database

Page 48: Other Web Application Development Technologies. PHP.

ColdFusion

• runs on all major platforms

• compatible with all major browsers

• runs in CGI mode or as an embedded process

• runs on Apache, IIS, iPlanet

• ColdFusion applications are portable across platforms with very minor differences

Page 49: Other Web Application Development Technologies. PHP.

History of ColdFusion

• developed by Allaire software– first version 1995 - only 30 language elements– strongly tag-based, supplemented by functions

• Allaire merged with Macromedia in 2001– MacroMedia ColdFusion– ColdFusion MX

• ColdFusion MX 6.1 (2004)– 80 tags, 255 functions

Page 50: Other Web Application Development Technologies. PHP.

use and availability

• Widely used for medium to large scale web apps

• Large developer community• Not free, not open source

– ColdFusion MX Standard £929• Windows, Linux

– ColdFusion MX Enterprise £4289• Windows, Linux, Solaris, HP-UX, AIX

– 30-day free trial version (limited functionality)

Page 51: Other Web Application Development Technologies. PHP.

ColdFusion Basics

Page 52: Other Web Application Development Technologies. PHP.

ColdFusion Markup Language

• tag-based language (CFML)

• mixed with HTML, JavaScript/VBScript in a template

• CFML used to dynamically construct content

• CFML processed by ColdFusion Application Server on the server side

Page 53: Other Web Application Development Technologies. PHP.

client

HTMLpage

CFMLtemplate

ColdFusionApplication

Server

webserver

entity

entity

entity

datahttp request

input

outputHTML

http response

Page 54: Other Web Application Development Technologies. PHP.

ColdFusion templates

• CFML tags embedded in HTML– Can produce pure CFML pages

• Tag Syntax– <CFTagname ... attributes ...> content

</CTTagName>– or <CFTagname ... attributes .../>

• trailing / optional

– Attributes are literals or expressions– Tags controlled by attributes and/or content

Page 55: Other Web Application Development Technologies. PHP.

Example 1

<!--- simple output of variable values --->

<h2>Writing output</h2>

<CFSET xy = x * y />

<CFOUTPUT> x = #x#<br/> y = #y#<br/>x * y = #xy#<br/></CFOUTPUT>

Page 56: Other Web Application Development Technologies. PHP.

Example 2<HTML><head><title></title></head><BODY><CFOUTPUT><H2>Today’s date is#DateFormat (Now (),’dd/mm/yy’)#</H2>

</CFOUTPUT></BODY></HTML>

CFML tag

closing CFML tag

Page 57: Other Web Application Development Technologies. PHP.

Example 3

<CFMAILFROM = "[email protected]"TO = "[email protected]"SUBJECT = "Assessed Lab"SERVER = "[email protected]"

>Have a Merry Christmas.

</CFMAIL>

Page 58: Other Web Application Development Technologies. PHP.

ColdFusion Web Application Framework

Page 59: Other Web Application Development Technologies. PHP.

web application

• a group of templates forming a cohesive application– maintain state– utilise constants– multi-threading– error and exception handling– security

• controlled through application template

Page 60: Other Web Application Development Technologies. PHP.

Application.cfm template

• reserved template name

• template placed in root directory of the web application– executed before every request

• may be supplemented by OnRequestEnd.cfm template– executed after every web request

Page 61: Other Web Application Development Technologies. PHP.

processing Application templates

• ColdFusion template requested

• ColdFusion searches template directory for an Application.cfm template– ColdFusion processes Application.cfm

template then requested template– OnRequestEnd.cfm template processed if it

exists

Page 62: Other Web Application Development Technologies. PHP.

template request process

client

Server

myTemplate

applicationtemplate

onREquestEnd

request

response

Page 63: Other Web Application Development Technologies. PHP.

function of Application.cfm

• maintains state– create Application, Client and Session variables

• set application constants– data-source names, source directories, style

elements

• handle errors• provide security services

– user authentication– entitlements

Page 64: Other Web Application Development Technologies. PHP.

ColdFusionstrengths and weaknesses

Page 65: Other Web Application Development Technologies. PHP.

strengths

• tag-oriented programming for web developers– good support for custom tags and

extensions

• full functionality to support medium to high end web systems

• supports MVC• strong support for thread-safe

transactions• excellent database connectivity• implemented on all major platforms

Page 66: Other Web Application Development Technologies. PHP.

weaknesses

• expensive compared with other technologies

• not open source• highly redundant syntax

– leads to inconsistent development

• idiosyncratic language structure– limited code re-use on or from other platforms

• non-standard and limited XML support