PHP II. WEB technológiák
Tóth Zsolt Miskolci Egyetem
2014
Tóth Zsolt (Miskolci Egyetem)
PHP II.
2014
1 / 19
Objektum Orientált Programozás
Osztály
Tartalomjegyzék
1
Objektum Orientált Programozás Osztály ˝ Öröklodés
2
Fájlkezelés
3
JSON
Tóth Zsolt (Miskolci Egyetem)
PHP II.
2014
2 / 19
Objektum Orientált Programozás
Osztály
Osztály
Valóság egy szelete ˝ adattagok Összetartozó Objektumok Tulajdonságok Viselkedés
Tóth Zsolt (Miskolci Egyetem)
class Point { var $x; var $y; function __construct($x,$y) { $this->x = $x; $this->y = $y; } function toString() { echo "(".$this->x.",". $this->y.")"; } } PHP II.
2014
3 / 19
Objektum Orientált Programozás
Osztály
Adattagok
var $változó $this -> operátor ˝ Nyilvánosság jelzok private protected public (default)
Tóth Zsolt (Miskolci Egyetem)
class Point { private $x; private $y; . . . }
PHP II.
2014
4 / 19
Objektum Orientált Programozás
Osztály
Metódusok
Függvények function Ozstály része Viselkedés leírása ˝ Nyilvánosság jelzok private protected public (default)
Tóth Zsolt (Miskolci Egyetem)
function __construct($x,$y) { $this->x = $x; $this->y = $y; } function toString() { echo "(".$this->x.",". $this->y.")"; }
PHP II.
2014
5 / 19
Objektum Orientált Programozás
Osztály
Konstruktor
__construct() Konstruktor Példányosítás new operátor Type Hinting Típus megadása
Tóth Zsolt (Miskolci Egyetem)
#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; }
PHP II.
2014
6 / 19
Objektum Orientált Programozás
˝ Öröklodés
˝ Öröklodés
extends Kiterjesztés Adattagokkal Metódusokkal
Metódus felüldefiniálás
Tóth Zsolt (Miskolci Egyetem)
abstract class Shape { abstract function area(); abstract function circumference(); } class Triangle extends Shape { ... }
PHP II.
2014
7 / 19
Objektum Orientált Programozás
˝ Öröklodés
Abstract
abstract Osztály Metódus
Implementálni kell! ˝ Öröklodés
Tóth Zsolt (Miskolci Egyetem)
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) ); }
PHP II.
2014
8 / 19
Objektum Orientált Programozás
˝ Öröklodés
Include
include ’file’ Osztályok külön fájlban Újrahasznosítás
include ’shapes.php’
Több fájlból használható osztályok require ’file’
Tóth Zsolt (Miskolci Egyetem)
PHP II.
2014
9 / 19
Fájlkezelés
Tartalomjegyzék
1
Objektum Orientált Programozás Osztály ˝ Öröklodé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
Tóth Zsolt (Miskolci Egyetem)
echo $data; fclose($handle); ?>
PHP II.
2014
11 / 19
Fájlkezelés
Fájlkezelés
Fájl megnyitása 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
$handle = fopen( $fileName, ’a’); . . . fclose($handle);
Fájl bezárása
Tóth Zsolt (Miskolci Egyetem)
PHP II.
2014
13 / 19
Fájlkezelés
Fájl olvasás
fread Byte–ok beolvasása
string fread ( resource $handle , int $length );
fscanf ˝ Ellenorzött beolvasás Fájl Formátum leírás
Tóth Zsolt (Miskolci Egyetem)
mixed fscanf ( resource $handle , string $format [, mixed &$... ] );
PHP II.
2014
14 / 19
Fájlkezelés
Fájl írás
Hova $handle Mit $string Mennyit $length Megfelelo˝ mód (w)
Tóth Zsolt (Miskolci Egyetem)
int fwrite ( resource $handle , string $string [, int $length ] )
PHP II.
2014
15 / 19
JSON
Tartalomjegyzék
1
Objektum Orientált Programozás Osztály ˝ Öröklodés
2
Fájlkezelés
3
JSON
Tóth Zsolt (Miskolci Egyetem)
PHP II.
2014
16 / 19
JSON
JSON támogatás
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 Egyszeru˝ osztályok
JsonSerializable { /* Methods */ abstract public mixed jsonSerialize ( void ) }
implementálják
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