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

phpwebdev.ppt

  • 1.
    Developing Web Applications withPHP RAD for the World Wide Web Jeff Jirsa jjirsa@xnet.com
  • 2.
    Agenda – Introduction – PHPLanguage Basics – Built-in Functions – PHP on Linux and Windows – Tricks and Tips – PHP 5 – Examples – Questions?
  • 3.
    Introduction • What isPHP? – 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 ofPHP – 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 ofPHP (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 ofPHP (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 ofPHP (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 ofPHP (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 ofPHP (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* – ZdnetStatistics • 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: • <? // Some code ?> • <?php // Some code here ?>
  • 13.
    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 %>
  • 14.
    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>
  • 15.
    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?>
  • 16.
    PHP Language Basics •Hello World!: An Example (cont.) • <script language=“PHP”> $hello = “Hello”; $world = “World!”; print $hello . $world </script>
  • 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”, “<br>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 = ‘Naperville’; $state = ‘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" => "bar", 12 => true); – same as • $arr[“foo”] = “bar”; • $arr[12] = true;
  • 22.
    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 ?>
  • 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 • Whatcomes 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
  • 26.
    Built-in Functions • Whatcomes 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 • Whatcomes 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 • Whatcomes In the box? – Database Functions • dba: dbm-style abstraction layer • dBase • Frontbase • Informix • Ingres II • Interbase • mSQL
  • 29.
    Built-in Functions • Whatcomes In the box? – Database Functions (cont.) • MySQL • Oracle • PostgreSQL • SQL Server – MING • Macromedia Flash – PDF • Create/manipulate PDF files dynamically
  • 30.
    Built-in Functions • Whatcomes 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 Linuxand 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"; }
  • 32.
    PHP on Linuxand 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";
  • 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 – Zend’s PHPEdit • Linux – ???
  • 37.
    PHP 5 • ReleaseDate – ??? • 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 Downloadsand 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

Editor's Notes