Developing Web Applications with PHP - PowerPoint PPT Presentation

About This Presentation
Title:

Developing Web Applications with PHP

Description:

Developing Web Applications with PHP – PowerPoint PPT presentation

Number of Views:1076
Avg rating:3.0/5.0
Slides: 40
Provided by: jeffj5
Category:

less

Transcript and Presenter's Notes

Title: Developing Web Applications with PHP


1
Developing Web Applications with PHP
  • RAD for the World Wide Web
  • Jeff Jirsa jjirsa_at_xnet.com

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

3
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

4
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

5
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

6
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

7
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

8
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

9
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

10
Introduction
  • Netcraft Statistics
  • 11,869,645 Domains, 1,316,288 IP Addresses

11
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

12
PHP Language Basics
  • The Script Tags
  • All PHP code is contained in one of several
    script tags
  • lt?// Some code?gt
  • lt?php// Some code here?gt

13
PHP Language Basics
  • The Script Tags (cont.)
  • ltscript languagePHP"gt // Some code
    herelt/scriptgt
  • ASP-style tags
  • Introduced in 3.0 may be removed in the future
  • lt // Some code heregt

14
PHP Language Basics
  • The Script Tags (cont.)
  • Echo Tags
  • lttablegtlttrgt lttdgtNamelt/tdgtlttdgtlt? name
    ?gtlt/tdgtlt/trgtlttrgt lttdgtAddresslt/tdgtlttdgtlt?
    address ?gtlt/tdgtlt/trgtlt/tablegt

15
PHP Language Basics
  • Hello World! An Example
  • Like Perl, there is more than one way to do it
  • lt?php echo Hello World! ?gt
  • lt?php greeting Hello World!
    printf(s, greeting)php?gt

16
PHP Language Basics
  • Hello World! An Example (cont.)
  • ltscript languagePHPgt hello Hello
    world World! print hello .
    worldlt/scriptgt

17
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, ltbrgt\n)

18
PHP Language Basics
  • Constants, Data Types and Variables
  • Using a constant
  • print(Company name . COMPANY . NL)

19
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

20
PHP Language Basics
  • Constants, Data Types and Variables
  • Data types
  • Strings and type conversion
  • street 123
  • street street . Main Street
  • city Napervillestate IL
  • address street
  • address address . NL . city, state
  • number address 1 // number equals
    124

21
PHP Language Basics
  • Constants, Data Types and Variables
  • Data types
  • Arrays
  • Perl-like syntax
  • arr array("foo" gt "bar", 12 gt true)
  • same as
  • arrfoo bar
  • arr12 true

22
PHP Language Basics
  • Constants, Data Types and Variables
  • Arrays (cont.)
  • lt?php arr array("somearray" gt array(6 gt
    5, 13 gt 9, "a" gt
    42)) echo arr"somearray"6 // 5
    echo arr"somearray"13 // 9 echo
    arr"somearray""a" // 42?gt

23
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

24
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

25
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

26
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

27
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)

28
Built-in Functions
  • What comes In the box?
  • Database Functions
  • dba dbm-style abstraction layer
  • dBase
  • Frontbase
  • Informix
  • Ingres II
  • Interbase
  • mSQL

29
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

30
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

31
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"

32
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"ConfigF
    ile "ConfigPath/paperwork.conf"CountryList
    "DataPath/countries.txt"StateAbbrList
    "DataPath/usstateabbrs.txt"StateNameList
    "DataPath/usstatenames.txt"

33
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

34
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

35
Tricks and Tips
  • Debugging
  • Use scripts to dump form and session variables
  • Write scripts to dump data to discover bad or
    missing data

36
Tricks and Tips
  • Development Tools
  • Color coding editors
  • vim, Emacs, Visual SlickEdit
  • IDEs
  • Windows
  • Macromedia Dreamweaver
  • Allaire Homesite
  • Zends PHPEdit
  • Linux
  • ???

37
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

38
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

39
Questions?
  • Any Questions
  • www.php.net
  • Community
  • www.phpbuilder.com articles on PHP, discussion
    forums
  • Newsgroups
  • comp.lang.php
Write a Comment
User Comments (0)
About PowerShow.com