php advanced

23
PHP advanced Web Карнаухов Даниил

Upload: noveo

Post on 14-Apr-2017

54 views

Category:

Education


0 download

TRANSCRIPT

Page 1: PHP Advanced

PHP advancedWeb

Карнаухов Даниил

Page 2: PHP Advanced

Чтение и запись файлов.$content = file_get_contents('.gitignore');echo $content;

$lines = file('.gitignore');

$fp = fopen('.gitignore', 'r');while (!feof($fp)) { echo fread($fp, 4096);}fclose($fp);

file_put_contents('test_file.txt', 'Hello world');

$fp = fopen('test_file.text', 'w');fwrite($fp, 'Hello world!');fclose($fp);

Page 3: PHP Advanced

Операции с файламиfile_exists ($fileName) - проверяет, существует-ли указанный файл.

unlink ($fileName) - удаляет указанный файл.

copy ($source, $dest) - создает копию файла $source и помещает его в файл по имени $dest.

Page 4: PHP Advanced

Работа с директориями$curDir = opendir('.');

while($file = readdir($curDir)) { echo $file;}

foreach (glob('*.txt') as $fileName) { echo $fileName . ' размер ' . filesize($fileName);}

Page 5: PHP Advanced

Функцииfunction sum($x, $y) { return $x + $y;}

echo $sum(1, 2);$string = 'Hello user';

function printHelloWorld() { $string = 'Hello world'; echo $string;}

Page 6: PHP Advanced

Передача аргументов по ссылкеfunction addCopyright(&$string) { $copyright = ' © Noveo'; $string .= $copyright;}

$text = 'Some text.';addCopyright($text);echo $text;

Page 7: PHP Advanced

Значения по-умолчанию.const MODIFY_TYPE_TO_LOWWER = 0;const MODIFY_TYPE_TO_UPPER = 1;

function modifyString($string, $modifyType = MODIFY_TYPE_TO_LOWWER) { if ($modifyType == MODIFY_TYPE_TO_LOWWER) { return strtolower($string); } else if ($modifyType == MODIFY_TYPE_TO_UPPER) { return strtoupper($string); }}

echo modifyString('Hello world', MODIFY_TYPE_TO_UPPER);echo modifyString('Hello world', MODIFY_TYPE_TO_LOWWER);

Page 8: PHP Advanced

Анонимные функции$array = [5, 2, 1, 7];

usort($array, function($a, $b) { if ($a > $b) { return 0; } else { return 1; }});

var_dump($array); // 7, 5, 2, 1

Page 9: PHP Advanced

Классы и объектыclass BaseObject { private $greetings = 'Hello world!';

public function sayHello() { echo $this->greetings; }}

$base = new BaseObject();$base->sayHello();$base = 'BaseObject';$base = new $base(); // omg

Page 10: PHP Advanced

Пространства имен// 10.phpnamespace internship\base;

class BaseObject { const GREETINGS = 'Hello world';

public function sayHello() { echo self::GREETINGS; }}

Page 11: PHP Advanced

// 10_1.phpnamespace internship\advanced;

class BaseObject { const GREETINGS = 'Hello intern\'s';

public function sayHello() { echo self::GREETINGS; }}// 10.2.phprequire '10.php';require '10_1.php';

$base = new internship\base\BaseObject();$advanced = new internship\advanced\BaseObject();

$base->sayHello();$advanced->sayHello();

Page 12: PHP Advanced

Наследованиеrequire '10.php';

class AdvancedObject extends internship\base\BaseObject { public function sayHi($default = true) { if ($default) { parent::sayHello(); } else { echo 'Hi peoples'; } }}

$adv = new AdvancedObject();$adv->sayHello();$adv->sayHi();

Page 13: PHP Advanced

Модификаторы доступа / область видимости.class BaseObject{ public $greetings = 'Hello world'; protected $protectedGreetings = 'Hello my world!'; private $privateGreetings = 'Hello my personal world';}

$obj = new BaseObject();echo $obj->greetings;echo $obj->protectedGreetings; // errorecho $obj->privateGreetings; // error

Page 14: PHP Advanced

Staticclass BaseObject{ const GREETINGS = 'Hello world';

public static $magicNumber = 10;

public static function sayHello() { echo self::GREETINGS; }}

BaseObject::sayHello();echo BaseObject::GREETINGS;echo BaseObject::$magicNumber;

Page 15: PHP Advanced

Контроль типовclass BaseObject{ private $greetings = 'Hello world';

public function getGreetings() { return $this->greetings; }}

function sayHello(BaseObject $obj){ echo $obj->getGreetings();}

Page 16: PHP Advanced

Интерфейсыinterface Runnable{ public function run();}

class RunnableObject implements Runnable{ public function run() { echo 'we run'; }}

Page 17: PHP Advanced

Абстрактные классыabstract class Apple{ protected $name = 'apple';

abstract public function getColor();

public function getName() { return $this->name; }}

Page 18: PHP Advanced

class GreenApple extends Apple{ private $color = 'green';

public function getColor() { return $this->color; }

public function getName() { return $this->getColor() . ' ' . parent::getName(); }}

Page 19: PHP Advanced

Исключенияtry { $age = rand(0, 200); if ($age > 150) { throw new Exception('Immortal human detected'); }} catch (Exception $e) { echo $e->getMessage() . '<br>';} finally { echo 'age is: ' . $age;}

Page 20: PHP Advanced

СессииСпособ ассоциации информации с пользователям при нескольких последовательных запросах. К данным можно получить доступ через массив $_SESSION.session_start() - начинает новую или продолжает старую сессию.

session_destroy() - уничтожает все данные в сессии.

Page 21: PHP Advanced

Паттерн Singletonclass Singleton{ static private $instance = null;

private function __construct(){}

public static function getInstance() { if (self::$instance == null) { self::$instance = new self(); } return self::$instance; }}

Page 22: PHP Advanced

Паттерн фабричный метод

Page 23: PHP Advanced

Спасибо за внимание.