Sei sulla pagina 1di 37

SYNAPSEINDIA SHARING

REVIEWS ON WEB
APPLICATIONS WITH PHP

AGENDA
Introduction
PHP

Language Basics
Built-in Functions
PHP on Linux and Windows
Tricks and Tips
PHP 5
Examples
Questions?

INTRODUCTION

What is PHP?
PHP

stands for "PHP Hypertext Preprocessor


An embedded scripting language for HTML like ASP
or JSP
A language that combines elements of Perl, C, and
Java

INTRODUCTION

History of PHP
Created

by Rasmus Lerdorf in 1995 for tracking


access to his resume
Originally a set of Perl scripts known as the Personal
Home Page tools
Rewritten in C with database functionality
Added a forms interpreter and released as PHP/FI:
includes Perl-like variables, and HTML embedded
syntax

INTRODUCTION

History of PHP (cont.)


Rewritten

again in and released as version 2.0 in


November of 1997
Estimated user base in 1997 is several thousand
users and 50,000 web sites served
Rewritten again in late 1997 by Andi Gutmans and
Zeev Suraski
More functionality added, database support, protocols
and APIs

INTRODUCTION

History of PHP (cont.)


User

base in 1998 estimated 10,000 users and


100,000 web sites installed
Version 3.0 was released in June 1998 as PHP
Estimated user base in tens of thousands and
hundreds of thousands of web sites served

INTRODUCTION

History of PHP (cont.)


Rewritten

again in 1997 by Andi Gutmans and Zeev

Suraski
More functionality added (OOP features), database
support, protocols and APIs
PHP 3.0 is released in June 1998 with some OO
capability
The core is rewritten in 1998 for improved
performance of complex applications

INTRODUCTION

History of PHP (cont.)


The

core is rewritten in 1998 by Zeev and Andi and


dubbed the Zend Engine
The engine is introduced in mid 1999 and is released
with version 4.0 in May of 2000
The estimated user base is hundreds of thousands of
developers and several million of web sites served

INTRODUCTION

History of PHP (cont.)


Version

Engine

5.0 will include version 2.0 of the Zend

New object model is more powerful and intuitive


Objects will no longer be passed by value; they now will be
passed by reference
Increases performance and makes OOP more attractive

INTRODUCTION

Netcraft Statistics

11,869,645 Domains, 1,316,288 IP Addresses

INTRODUCTION

Performance*
Zdnet

Statistics

PHP pumped out about 47 pages/second


Microsoft ASP pumped out about 43 pages/second
Allaire ColdFusion pumped out about 29 pages/second
Sun Java JSP pumped out about 13 pages/second

* From PHP HOWTO, July 2001

PHP LANGUAGE BASICS

The Script Tags


All

PHP code is contained in one of several script


tags:
<?
// Some code
?>
<?php
// Some code here
?>

PHP LANGUAGE BASICS

The Script Tags (cont.)

<script language=PHP">
// Some code here
</script>

ASP-style

tags

Introduced in 3.0; may be removed in the future


<%
// Some code here
%>

PHP LANGUAGE BASICS

The Script Tags (cont.)


Echo

Tags

<table>
<tr>
<td>Name:</td><td><?= $name ?></td>
</tr>
<tr>
<td>Address:</td><td><?= $address ?></td>
</tr>
</table>

PHP LANGUAGE BASICS

Hello World!: An Example


Like

Perl, there is more than one way to do it

<?php echo Hello World!; ?>


<?php
$greeting = Hello World!
printf(%s, $greeting);
php?>

PHP LANGUAGE BASICS

Hello World!: An Example (cont.)

<script language=PHP>
$hello = Hello;
$world = World!;
print $hello . $world
</script>

PHP LANGUAGE BASICS

Constants, Data Types and Variables


Constants

define a string or numeric value


Constants do not begin with a dollar sign
Examples:
define(COMPANY, Acme Enterprises);
define(YELLOW, #FFFF00);
define(PI, 3.14);
define(NL, <br>\n);

PHP LANGUAGE BASICS

Constants, Data Types and Variables


Using

a constant

print(Company name: . COMPANY . NL);

PHP LANGUAGE BASICS

Constants, Data Types and Variables


Data

types

Integers, doubles and strings


isValid = true; // Boolean
25
// Integer
3.14
// Double
Four
// String
Total value
// Another string

PHP LANGUAGE BASICS

Constants, Data Types and Variables


Data

types

Strings and type conversion


$street = 123;
$street = $street . Main Street;
$city = Naperville;
$state = IL;
$address = $street;
$address = $address . NL . $city, $state;
$number = $address + 1;
// $number equals 124

PHP LANGUAGE BASICS

Constants, Data Types and Variables


Data

types

Arrays
Perl-like syntax

$arr = array("foo" => "bar", 12 => true);

same as

$arr[foo] = bar;
$arr[12] = true;

PHP LANGUAGE BASICS

Constants, Data Types and Variables

Arrays (cont.)
<?php
$arr = array("somearray" => array(6 => 5, 13 => 9,
"a" => 42));

?>

echo $arr["somearray"][6]; // 5
echo $arr["somearray"][13]; // 9
echo $arr["somearray"]["a"]; // 42

PHP LANGUAGE BASICS

Constants, Data Types and Variables


Objects

Currently not much more advanced than than associative


arrays Using constants
Before version 5.0, objects are passed by value

Slow
Functions can not easily change object variables

PHP LANGUAGE BASICS

Constants, Data Types and Variables


Operators

Contains all of the operators like in C and Perl (even the


ternary)

Statements

if, if/elseif
Switch/case
for, while, and do/while loops
Include and require statements for code reuse

BUILT-IN FUNCTIONS

What comes In the box?


Array

Manipulator Functions

sort, merge, push, pop, slice, splice, keys, count

CCVS:

Interface to Red Hats credit system


COM functions: Interface to Windows COM objects
Date and Time Functions

getdate, mkdate, date, gettimeofday, localtime, strtotime,


time

BUILT-IN FUNCTIONS

What comes In the box?


Directory

Platform independent

Error

Functions

Handling Functions

Recover from warnings and errors

Filesystem

Functions

Access flat files


Check directory, link, and file status information
Copy, delete, and rename files

BUILT-IN FUNCTIONS

What comes In the box?


IMAP

Manipulate mail boxes via the IMAP protocol

LDAP

Functions

Works with most LDAP servers

Mail

Functions

Functions

mail($recipient, $subject, $message)

BUILT-IN FUNCTIONS

What comes In the box?


Database

Functions

dba: dbm-style abstraction layer


dBase
Frontbase
Informix
Ingres II
Interbase
mSQL

BUILT-IN FUNCTIONS

What comes In the box?


Database

Functions (cont.)

MySQL
Oracle
PostgreSQL
SQL Server

MING

Macromedia Flash

PDF

Create/manipulate PDF files dynamically

BUILT-IN FUNCTIONS

What comes In the box?


POSIX

Functions

Manipulate process information

Regular

Expression Functions

Uses POSIX regex

Semaphore

and Socket Functions

Available only on Unix

Session

Management Functions

PHP ON LINUX AND WINDOWS

Code Portability
The

obvious: dont use Unix or Windows specific


functions
Create a reusable module for file system differences,
for example:

if( PHP_OS == "Linux" )


{
$ConfigPath
= "/var/www/conf";
$DataPath = "/var/www/data";
}

PHP ON LINUX AND WINDOWS

Code Portability

if( ereg("WIN", PHP_OS) )


{
$ApachePath
= C:/Program Files/Apache
Group/Apache;
$ConfigPath
= $ApachePath/htdocs/conf";
$DataPath = "$ApachePath/htdocs/data";
}
$ConfigFile = "$ConfigPath/paperwork.conf";
$CountryList = "$DataPath/countries.txt";
$StateAbbrList
= "$DataPath/usstateabbrs.txt";
$StateNameList
= "$DataPath/usstatenames.txt";

TRICKS AND TIPS

Coding

Prototype

Separate the design of the site from the coding

Turn

repetitive code into functions

Makes for more maintainable and reusable code

Turn

your web pages first

grunt code into functions

Database access, configuration file access

TRICKS AND TIPS

Debugging
Feature:

PHP is not a strongly typed language

Variables can be created anywhere in your code

Undocumented

language

Feature: PHP is not a strongly typed

Typos in variable names will cause stuff to happen

TRICKS AND TIPS

Debugging
Use

scripts to dump form and session variables

Write scripts to dump data to discover bad or missing data

TRICKS AND TIPS

Development Tools
Color

coding editors

vim, Emacs, Visual SlickEdit

IDEs

Windows
Macromedia Dreamweaver
Allaire Homesite
Zends PHPEdit
Linux
???

PHP 5

Release Date
???

Features

Complete

objects

Objects with constructors


Abstract classes
Private, protected and abstract functions
Private, protected and constant variables
Namespaces
Exception handling with try/catch blocks

Potrebbero piacerti anche