Sie sind auf Seite 1von 39

Developing Web

Applications with PHP


RAD for the World
Wide Web

Jeff Jirsa
jjirsa@xnet.com
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 5.0 will include version 2.0 of the
Zend Engine
• 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 Hat’s 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 Functions
• Platform independent
– Error 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 Functions
• Manipulate mail boxes via the IMAP protocol
– LDAP Functions
• Works with most LDAP servers
– Mail 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: don’t 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 your web pages first
• Separate the design of the site from the coding
– Turn repetitive code into functions
• Makes for more maintainable and reusable
code
– Turn 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 Feature: PHP is not a
strongly typed language
• 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
– Zend’s 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
Resources

• PHP Downloads and Online


Documentation
– www.php.net
• Community
– www.phpbuilder.com: articles on PHP, discussion
forums
– www.phpresourceindex.com: over 1,000 PHP scripts
– www.phpvolcano.com: PHP 5 information
• Newsgroups
– comp.lang.php
Questions?

– Any Questions
• www.php.net
– Community
• www.phpbuilder.com: articles on PHP,
discussion forums
– Newsgroups
• comp.lang.php

Das könnte Ihnen auch gefallen