Developing Web Applications with PHP RAD for the
Developing Web Applications with PHP RAD for the World Wide Web
Agenda – Introduction – PHP Language Basics – Built-in Functions – Tricks and Tips – PHP 5
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. ) – 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 Cold. Fusion 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><? = $name ? ></td> </tr> <td>Address: </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”, “#FFFF 00”); define(“PI”, 3. 14); define(“NL”, “ 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 – – – is. Valid = true; 25 3. 14 ‘Four’ “Total value” // Boolean // Integer // Double // String // 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 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, 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 d. Base Frontbase Informix Ingres II Interbase m. SQL
Built-in Functions • What comes In the box? – Database Functions (cont. ) • • My. SQL Oracle Postgre. 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" ) { $Config. Path = "/var/www/conf"; $Data. Path = "/var/www/data"; }
PHP on Linux and Windows • Code Portability – if( ereg("WIN", PHP_OS) ) { $Apache. Path = “C: /Program Files/Apache Group/Apache”; $Config. Path = ”$Apache. Path/htdocs/conf"; $Data. Path = "$Apache. Path/htdocs/data"; } $Config. File $Country. List $State. Abbr. List $State. Name. List = "$Config. Path/paperwork. conf"; = "$Data. Path/countries. txt"; = "$Data. Path/usstateabbrs. txt"; = "$Data. Path/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 Slick. Edit – IDEs • Windows – Macromedia Dreamweaver – Allaire Homesite – Zend’s PHPEdit • Linux – ? ? ?
PHP 5 • 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
- Slides: 33