390 likes | 495 Views
Join Jean Georges Perrin for a comprehensive session on PHP development utilizing the IDS platform. The agenda covers the fundamental concepts including architecture, requirements, and the comparison between PHP functions and PDO. Learn to create your first application through both the command prompt and Eclipse environment. Discover PHP's history, its pros and cons, and how to access data effectively using PHP Data Objects (PDO). Ideal for developers eager to enhance their skills in web application development.
E N D
I13 Introduction to PHP Development with IDS Jean Georges Perrin IIUG Tuesday, October 4th 2006 • 16:15 – 17:15. Platform: IDS, PHP
Agenda • Who am I? • Architecture • Requirements • PHP • Functions vs. PDO • Your first application using the Command Prompt • Your first application using Eclipse • Your first web application
Agenda • Who am I? • Architecture • Requirements • PHP • Functions vs. PDO • Your first application using the Command Prompt • Your first application using Eclipse • Your first web application
Who am I? • My Unix box usually answers…
Who am I (outside of a Unix box)? • Jean Georges Perrin • Development tools (xGL, Java EE, PHP) • Works with Informix products since ’97 • IIUG board member since ’02 • Lives in Strasbourg, France
A little more… • Application developer, started with Visual Basic, in the early 90s • In the web since 1994 • Move to 4GL in 1997 • Goals: • Webizing all things I touched (business apps, catalogs and i-4GL…) • Find the ease of use of Visual Basic
And you… • Who knows 4GL? • Who knows Java? • Who thinks Java is difficult? • Who knows PHP? • Who thinks PHP is easy? • Who knows .net? • Who went to my Java lecture earlier this week?
Agenda • Who am I? • Architecture • Requirements • PHP • Functions vs. PDO • Your first application using the Command Prompt • Your first application using Eclipse • Your first web application
Architecture Application Database Driver Data
Agenda • Who am I? • Architecture • Requirements • PHP • Functions vs. PDO • Your first application using the Command Prompt • Your first application using Eclipse • Your first web application
Requirements • #1 - IDS (from v7.x, but also works on OnLine and SE) • Where: www.iiug.org, www.informix.com • #2 - PHP (PHP v5.1.4) • Where: www.php.net • #3 - PDO driver • Where: pecl.php.net , pecl4win.php.net • #4 - Option: Eclipse (v3.2.0) • Where: www.eclipse.org
Agenda • Who am I? • Architecture • Requirements • PHP • Functions vs. PDO • Your first application using the Command Prompt • Your first application using Eclipse • Your first web application
A few words on PHP’s history • PHP stands for “PHP Hypertext Processor” • PHP is currently v5 • Not well accepted by “serious” company
fglpc + fglgo PHP • Hello, world… in PHP • Use of “PHP CLI” • Code snippets: Source code is between <?php … ?> markers A function is a function… <?php echo "Hello, world..."; ?> <?php function main() { echo ("Hello, world..."); } main(); ?> DEMO “Hello, world…” is always the same, in any language…
PHP Pros & Cons • Procedural & Object Oriented (OO) development • Event driven programming model • User Interface (UI) & Business Logic (BL) tightly linked • Open architecture, open standards • General purpose development language • Becoming a standard • Looks like “hype” to some developers
4GL Pros & Cons • Procedural development • “Controlled” events • UI and BL somehow separated (.per & .4gl) • Proprietary solution • Business apps development language • Not a standard in industry • Hard to attract new developers
4GL and PHP • Weak typing • Assign an integer to a string • Not case sensitive • Well almost… not for variables. • 2 types of string • “parsed strings” • ‘unparsed strings’
Agenda • Who am I? • Architecture • Requirements • PHP • Functions vs. PDO • Your first application using the Command Prompt • Your first application using Eclipse • Your first web application
Two ways to access data • Function calls • ifx_* and ifxus_* functions • PHP Data Objects (PDO) • Set of “static” methods • More standard • Not to be compared to “real data objects” • Support for SERIAL in cvs
PDO – The way to go • Clearly the future of data access in PHP • Standard way of talking to a database • Use a connection string, for IBM Informix: $db = new PDO("informix:host=xeo;service=1526;►database=stores_demo;server=ol_xeo;protocol=olsoctcp;►EnableScrollableCursors=1;DB_LOCALE=EN_US.8859-1“ /* connection string */ , "informix"/* user */ , "informix"/* password */);
Agenda • Who am I? • Architecture • Requirements • PHP • Functions vs. PDO • Your first application using the Command Prompt • Your first application using Eclipse • Your first web application
Understanding php.ini • Convenient way to “extend” PHP. • Specify you want to use: • PDO • PDO Informix … extension=php_pdo.dll extension=php_pdo_informix.dll … DEMO
Your first application using the Command Prompt • Full source code (copy / paste): <?php $i = 0; $db = new PDO("informix:host=xeo;service=1526;►database=stores_demo;server=ol_xeo;protocol=olsoctcp;►EnableScrollableCursors=1;DB_LOCALE=EN_US.8859-1“ /* connection string */ , "informix"/* user */ , "informix"/* password */); $rs = $db->query("SELECT * from customer"); $colCount = $rs->columnCount(); for ($i = 0; $i < $colCount; $i++) { $meta = $rs->getColumnMeta($i); echo ($meta['name'] . "|"); } echo ("\n");
Your first application (2) foreach ($rs as $row) { for ($i = 0; $i < $colCount; $i++) { echo ($row[$i] . "|"); } echo ("\n"); } ?> DEMO
Running a query • One method is “query” • Code snippet: $db = new PDO("informix:host=xeo;service=1526;►database=stores_demo;server=ol_xeo;protocol=olsoctcp;►EnableScrollableCursors=1;DB_LOCALE=EN_US.8859-1“ /* connection string */ , "informix"/* user */ , "informix"/* password */); $rs = $db->query("SELECT * from customer"); Connection Basic query
Accessing meta data • PDO allows you to access Metadata • Code snippet: $colCount = $rs->columnCount(); for ($i = 0; $i < $colCount; $i++) { $meta = $rs->getColumnMeta($i); echo ($meta['name'] . "|"); } echo ("\n"); Column count for the result set Returns an array containing meta data Accessing the ‘name’ parameter of the meta data
Dumping rows • Basic browsing thru a result set using foreach • Code snippet: foreach ($rs as $row) { for ($i = 0; $i < $colCount; $i++) { echo ($row[$i] . "|"); } echo ("\n"); } ?>
Agenda • Who am I? • Architecture • Requirements • PHP • Functions vs. PDO • Your first application using the Command Prompt • Your first application using Eclipse • Your first web application
Your first application using Eclipse • Create a project • Add the code • Run it DEMO
Agenda • Who am I? • Architecture • Requirements • PHP • Functions vs. PDO • Your first application using the Command Prompt • Your first application using Eclipse • Your first web application
Your first web application • The same application, but web • Strong embedding of HTML tags in the code DEMO
Web Source Code <html> <head><title>List of customers</title></head> <body> <?php $i = 0; $db = new PDO( "informix:host=xeo;service=1526;database=stores_demo;server=ol_xeo;protocol=olsoctcp;EnableScrollableCursors=1;DB_LOCALE=EN_US.8859-1"/* connection string */ , "informix"/* user */ , "informix"/* password */); $rs = $db->query("SELECT * from customer"); $colCount = $rs->columnCount(); echo ("<table>"); echo ("<thead><tr>"); for ($i = 0; $i < $colCount; $i++) { $meta = $rs->getColumnMeta($i); echo ("<td>" . $meta['name'] . "</td>"); } echo ("</tr></thead>");
Web Source Code (2) echo ("<tbody>"); foreach ($rs as $row) { //print_r(); echo("<tr>"); for ($i = 0; $i < $colCount; $i++) { echo ("<td>" . $row[$i] . "</td>"); } echo("</tr>"); } echo ("</tbody></table>"); ?> </body> </html>
Pros & Cons • The strong dependency between business logic and presentation layer is annoying • Introduction of MVC framework PHP getting closer and closer to Java!
Conclusion • PHP now offers a standard way of accessing data • PHP is easy • PHP is rich • PHP runs: • Command line apps (batch) • Web apps • Frameworks are coming (Zend)
Eclipse Java SE 5 Zend Framework? Java J2EE PHP 5 Java EE 5 4GL PHP OO in PHP 4 Complexity & Features Difficult Level of complexity / feature of languages over time Easy 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006
And now… • If you missed my other presentation:“Introduction to Java development with IDS”too bad! • Come to see me in San Jose (May 2007):“Introduction to EJB3 dev. with IDS and Viper” • (Give me good marks so I can be selected as best speaker of the conference and beat Darryl, Lester and Art - previous speakers).
And now (seriously)… • Download Eclipse (I guess you all have IDS already) • Download PHP • Get a book (O’Reilly has quite a few great books, I learnt PHP with “PHP for dummies”) • Join the development-tools forum on IIUG web site • Get started with a few examples
I13 Introduction to PHP Development with IDS Jean Georges Perrin IIUG jgp@iiug.org jgp@jgp.net