PHP II. WEB technológiák Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19
Tartalomjegyzék Objektum Orientált Programozás 1 Objektum Orientált Programozás Öröklődés 2 Fájlkezelés 3 JSON Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 2 / 19
Objektum Orientált Programozás Valóság egy szelete Összetartőzó adattagok Objektumok Tulajdonságok Viselkedés class Point var $x; var $y; function construct($x,$y) $this->x = $x; $this->y = $y; function tostring() echo "(".$this->x.",". $this->y.")"; Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 3 / 19
Objektum Orientált Programozás Adattagok var $változó $this -> operátor Nyilvánosság jelzők private protected public (default) class Point private $x; private $y;... Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 4 / 19
Objektum Orientált Programozás Metódusok Függvények function Ozstály része Viselkedés leírása Nyilvánosság jelzők private protected public (default) function construct($x,$y) $this->x = $x; $this->y = $y; function tostring() echo "(".$this->x.",". $this->y.")"; Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 5 / 19
Objektum Orientált Programozás Konstruktor construct() Konstruktor Példányosítás new operátor Type Hinting Típus megadása #Point function construct($x,$y) $this->x = $x; $this->y = $y; %#Triangle public function construct( Point $p1, Point $p2, Point $p3) $this->p1 = $p1; $this->p2 = $p2; $this->p3 = $p3; Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 6 / 19
Objektum Orientált Programozás Öröklődés Öröklődés extends Kiterjesztés Adattagokkal Metódusokkal Metódus felüldefiniálás abstract class Shape abstract function area(); abstract function circumference(); class Triangle extends Shape... Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 7 / 19
Objektum Orientált Programozás Öröklődés Abstract abstract Metódus Implementálni kell! Öröklődés public function area() $a = $this->p1->distance( $this->p2); $b = $this->p1->distance( $this->p3); $c = $this->p2->distance( $this->p3); $s = ($a + $b + $c)/2.0; return sqrt( $s * ( $s - $a ) * ( $s - $b ) * ($s - $c) ); Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 8 / 19
Objektum Orientált Programozás Öröklődés Include include file ok külön fájlban Újrahasznosítás Több fájlból használható osztályok require file include shapes.php Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 9 / 19
Fájlkezelés Tartalomjegyzék 1 Objektum Orientált Programozás Öröklődés 2 Fájlkezelés 3 JSON Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 10 / 19
Fájlkezelés Fájl Számos függvény fopen fclose fscanf fseek fwrite mkdir copy delete <?php $filename = hello.txt ; $handle = fopen( $filename, r ); $data = fread( $handle, filesize($filename)); echo $data; fclose($handle);?> Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 11 / 19
Fájlkezelés Fájlkezelés <?php 1 Fájl megnyitása 2 Fájl módosítása Írás Olvasás 3 Fájl bezárása $filename = hello.txt ; $handle = fopen( $filename, a ); $data = "Hello World\n"; fwrite($handle,$data); fclose($handle);?> Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 12 / 19
Fájlkezelés fopen, fclose Fálj megnyitása File URL Fájl mód r w a Fájl pointer Fájl bezárása $handle = fopen( $filename, a );... fclose($handle); Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 13 / 19
Fájlkezelés Fájl olvasás fread Byte ok beolvasása fscanf Ellenőrzött beolvasás Fájl Formátum leírás string fread ( resource $handle, int $length ); mixed fscanf ( resource $handle, string $format [, mixed &$... ] ); Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 14 / 19
Fájlkezelés Fájl írás Hova $handle Mit $string Mennyit $length Megfelelő mód (w) int fwrite ( resource $handle, string $string [, int $length ] ) Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 15 / 19
JSON Tartalomjegyzék 1 Objektum Orientált Programozás Öröklődés 2 Fájlkezelés 3 JSON Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 16 / 19
JSON JSON támogatás <?php Beépített függvények json_encode json_decode JsonSerializable Szerializáció $arr = array( a => 1, b => 2, c => 3, d => 4); echo json_encode($arr)."\n";?> "a":1,"b":2,"c":3,"d":4 Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 17 / 19
JSON JsonSerializable JSON reprezetáció szabályozása Interface Saját osztály Egyszerű osztályok implementálják JsonSerializable /* Methods */ abstract public mixed jsonserialize ( void ) Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 18 / 19
JSON Kódolás json_encode függvény Változó paraméter Saját kódoló függvény Eredmény String class Triangle extends Shape implements JsonSerializable function jsonserialize() $result = array(); $result[ p1 ] = $this->p1; $result[ p2 ] = $this->p2; $result[ p3 ] = $this->p3; return $result; echo json_encode($triangle); "p1":"x":0,"y":0, "p2":"x":0,"y":3, "p3":"x":4,"y":0 Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 19 / 19