39
Introduction to PHP Development with IDS Jean Georges Perrin IIUG I13 Tuesday, October 4 th 2006 • 16:15 – 17:15. Platform: IDS, PHP

Introduction to PHP Development with IDS

  • Upload
    manning

  • View
    35

  • Download
    0

Embed Size (px)

DESCRIPTION

I13. Introduction to PHP Development with IDS. Jean Georges Perrin IIUG. Tuesday, October 4 th 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 - PowerPoint PPT Presentation

Citation preview

Page 1: Introduction to  PHP  Development with  IDS

Introduction to PHP Development with IDS

Jean Georges PerrinIIUG

I13

Tuesday, October 4th 2006 • 16:15 – 17:15.

Platform: IDS, PHP

Page 2: Introduction to  PHP  Development with  IDS

2

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

Page 3: Introduction to  PHP  Development with  IDS

3

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

Page 4: Introduction to  PHP  Development with  IDS

4

Who am I?

• My Unix box usually answers…

Page 5: Introduction to  PHP  Development with  IDS

5

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

Page 6: Introduction to  PHP  Development with  IDS

6

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

Page 7: Introduction to  PHP  Development with  IDS

7

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?

Page 8: Introduction to  PHP  Development with  IDS

8

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

Page 9: Introduction to  PHP  Development with  IDS

9

Architecture

DataApplicationDatabase

Driver

Page 10: Introduction to  PHP  Development with  IDS

10

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

Page 11: Introduction to  PHP  Development with  IDS

11

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

Page 12: Introduction to  PHP  Development with  IDS

12

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

Page 13: Introduction to  PHP  Development with  IDS

13

A few words on PHP’s history

• PHP stands for “PHP Hypertext Processor”

• PHP is currently v5

• Not well accepted by “serious” company

Page 14: Introduction to  PHP  Development with  IDS

14

<?php

function main() { echo ("Hello, world...");}

main();?>

PHP

• Hello, world… in PHP

• Use of “PHP CLI”

• Code snippets:<?php echo "Hello, world...";?>

Source code is between <?php … ?> markers

A function is a function…

“Hello, world…” is always the same, in any language…

fglpc + fglgo

DEMO

Page 15: Introduction to  PHP  Development with  IDS

15

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

Page 16: Introduction to  PHP  Development with  IDS

16

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

Page 17: Introduction to  PHP  Development with  IDS

17

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’

Page 18: Introduction to  PHP  Development with  IDS

18

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

Page 19: Introduction to  PHP  Development with  IDS

19

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

Page 20: Introduction to  PHP  Development with  IDS

20

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 */);

Page 21: Introduction to  PHP  Development with  IDS

21

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

Page 22: Introduction to  PHP  Development with  IDS

22

Understanding php.ini

• Convenient way to “extend” PHP.

• Specify you want to use:• PDO• PDO Informix

…extension=php_pdo.dllextension=php_pdo_informix.dll…

DEMO

Page 23: Introduction to  PHP  Development with  IDS

23

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");

Page 24: Introduction to  PHP  Development with  IDS

24

Your first application (2)foreach ($rs as $row) { for ($i = 0; $i < $colCount; $i++) { echo ($row[$i] . "|"); } echo ("\n");}?>

DEMO

Page 25: Introduction to  PHP  Development with  IDS

25

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

Page 26: Introduction to  PHP  Development with  IDS

26

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

Page 27: Introduction to  PHP  Development with  IDS

27

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");}?>

Page 28: Introduction to  PHP  Development with  IDS

28

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

Page 29: Introduction to  PHP  Development with  IDS

29

Your first application using Eclipse

• Create a project

• Add the code

• Run it

DEMO

Page 30: Introduction to  PHP  Development with  IDS

30

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

Page 31: Introduction to  PHP  Development with  IDS

31

Your first web application

• The same application, but web

• Strong embedding of HTML tags in the code

DEMO

Page 32: Introduction to  PHP  Development with  IDS

32

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>");

Page 33: Introduction to  PHP  Development with  IDS

33

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>

Page 34: Introduction to  PHP  Development with  IDS

34

Pros & Cons

• The strong dependency between business logic and presentation layer is annoying

• Introduction of MVC framework

PHP getting closer and closer to Java!

Page 35: Introduction to  PHP  Development with  IDS

35

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)

Page 36: Introduction to  PHP  Development with  IDS

36

Complexity & Features

Level of complexity / feature of languages over time

2000 20051994

Easy

Difficult

4GL

2001 2002 2003 2004 200619991998199719961995

PHPOO in PHP 4

Zend Framework?

PHP 5

J2EE

Java SE 5Eclipse

Java

Java EE 5

Page 37: Introduction to  PHP  Development with  IDS

37

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

Page 38: Introduction to  PHP  Development with  IDS

38

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

Page 39: Introduction to  PHP  Development with  IDS

39

Jean Georges PerrinIIUG

[email protected]

[email protected]

I13Introduction to PHP Development with IDS