Harmadik Magyarországi PHP Konferencia 2005

http://www.phpconf.hu/

Előadó: Török Gábor

gabor.torok@webdevil.hu

(WebDevil Oktatási Központ)

Mi?

ADOdb: Active Data Objects Database

Megvalósítás függetlenül adatbáziskezelő függvénytár

Nyíltforrású (BSD, LGPL)

Támogatott nyelvek: PHP és Python

ADOdb != MS ADO (ActiveX Data Objects)

Gyorstárazás

Saját metatípus rendszer

Leggyorsabb adatbázis réteg (C modul)

Adatbázis export CSV-be ...

Ki?

Támogatott RDBMS-ek: MySQL, Oracle, MS SQL Server, Sybase, SQL Anywhere, Informix, PostgreSQL, FrontBase, Interbase, Foxpro, Access, ADO, ODBC, ...

Xaraya, PostNuke, Mambo, Easy Publish (!= EZ Publish)

http://www.phplens.com/, http://www.sote.hu/

ADOdb telepítése

http://adodb.sourceforge.net/

DOCUMENT_ROOT -on kívűlre

/var/www/adodb, C:\www\adodb

Gyorstárként szolgáló könyvtár létrehozása (777)

/var/www/adodbcache, C:\tmp

Vegyük fel a PATH-ba az ADOdb mappáját

include_path = ".:/usr/share/php:/var/www/adodb"

ini_set('include_path', '.:/usr/share/php:/var/www/adodb');

Kódoljunk, avagy a feladat maga: készítsünk egy alkalmazáscsomagot egy étterem számára!

Hozzuk létre a szükséges adattáblákát!

Készítsünk egy űrlapot, amelyen keresztül felvihetők a rendelések!

Készítsünk egy felületet, amelyen keresztül megtekinthetők a rendelések!

Tegyük lehetővé a teljesített rendelések törlését!

Minden SQL-érzékeny lépcsőt lehetőség szerint ADOdb-vel lépjünk meg!

ADOdb start!

include('adodb.inc.php');

Gyorstárazáshoz:

$ADODB_CACHE_DIR = '/var/www/adodbcache'

Kapcsolatfelvétel:

NewADOConnection() példányosítása (ahány kapcsolat, annyi példány)

Connect(), PConnect(), NConnect()

DSN (Data Source Name) támogatása

» csatlakozas.php, lezar.php

Automatikus táblagenerálás

Hordozható ADOdb adattípusok (pl. I: integer)

DataDictionary osztály

Adatszerkezet definiálása PHP-ben

Jól támogatott: Posgtres, MySQL, Oracle és MSSQL

ADOdb XML Schema (AXMLS)

Az adatszerkezetet külön XML állomány tárolja

Lehetőséget nyújt adatok feltöltésére az XML-en belül

» createsql.php

Adatok lekérdezése (SELECT) I.

Execute(): tetszőleges SQL utasítás végrehajtása

GetMenu(): a visszakapott eredményhalmaz első két oszlopát felhasználva űrlap listát ír ki

» rendeles.php

Automatikus feltöltés/módosítás

v4.56 >: lekérdezést követő INSERT/UPDATE

a visszakapott eredményhalmaz szerkezetén alapul

v4.56 <: automatikus INSERT/UPDATE

speciálisan felépített tömbszerkezet alapján

Tranzakció kezelés

megfelelő backend: mysqli/mysqlt, postgres

BeginTrans/CommitTrans/RollbackTrans

Smart Transactions: StartTrans/FailTrans/CompleteTrans

» feldolgozas.php

Adatok lekérdezése (SELECT) II.

SetFetchMode(ADODB_FETCH_ASSOC)

Execute(), SelectLimit() - ADORecordSet objektum

GetRow(), GetAll() - tömb

Gyorsítótár támogatása

CacheExecute(), CacheGetRow(), CacheGetAll(), ...

cacheSecs = {seconds}

CacheExecute({seconds}, {QUERY})

CacheFlush()

ADOdb Pager

» beerkezett.php, torles.php

Amit még tud

Szűrőfüggvények támogatása az eredményhalmazon

Munkamenet támogatás (akár titkosítással)

Teljesítmény monitorozás (CLI, Web)

PHP5 esetén kivételkezelés támogatása
(adodb-exceptions.inc.php)

Negatívum:

A Pager modul nem XHTML kimenetet generál

Értékes linkek

ADOdb honlapja
http://adodb.sf.net/

Hivatalos ADOdb dokumentáció
http://phplens.com/adodb/

Bevezető az ADOdb világába
http://www.phpfreaks.com/tutorials/110/index.php

Webmesterek kezdőlapja
http://www.weblabor.hu/

Magyarországi PHP konferenciák honlapja
http://www.phpconf.hu/

Köszönöm a figyelmet!

Török Gábor

gabor.torok@webdevil.hu

További programok

Nagy Gusztáv: Tervezési minták és a PHP 5

Károly György Tamás: Elérhetőség, mint eszköz a világ megmentésére

Ámon Tamás: Drupális Internet Áruház

2005-03-06T15:56:35