-
06 АПР 20171
-
05 АПР 20170
-
04 АПР 20170
paragonie/PHP-Cookie - скрипт для безоспасной работы с кукми на php7+
$cookie = new \ParagonIE\Cookie\Cookie('SID'); $cookie->setValue('31d4d96e407aad42'); $cookie->setMaxAge(60 * 60 * 24); // $cookie->setExpiryTime(time() + 60 * 60 * 24); $cookie->setPath('/~rasmus/'); $cookie->setDomain('example.com'); $cookie->setHttpOnly(true); $cookie->setSecureOnly(true); $cookie->setSameSiteRestriction('Strict'); // echo $cookie; $cookie->save();
https://github.com/paragonie/PHP-Cookie -
03 АПР 20170
wapmorgan/MediaFile - php ридерд метаданных с аудио и видео файлов
try { $media = wapmorgan\MediaFile\MediaFile::open('123.mp3'); // for audio if ($media->isAudio()) { // calls to AudioAdapter interface echo 'Duration: '.$media->getAudio()->getLength().PHP_EOL; echo 'Bit rate: '.$media->getAudio()->getBitRate().PHP_EOL; echo 'Sample rate: '.$media->getAudio()->getSampleRate().PHP_EOL; echo 'Channels: '.$media->getAudio()->getChannels().PHP_EOL; } // for video else { // calls to VideoAdapter interface echo 'Duration: '.$media->getVideo()->getLength().PHP_EOL; echo 'Dimensions: '.$media->getVideo()->getWidth().'x'.$media->getVideo()->getHeight().PHP_EOL; echo 'Framerate: '.$media->getVideo()->getFramerate().PHP_EOL; } } catch (wapmorgan\MediaFile\Exception $e) { // not a media or file is corrupted if ($e instanceof wapmorgan\MediaFile\FileAccessException) echo 'File '.$file.' is not a media file'.PHP_EOL; else { echo 'File is propably corrupted: '.$e->getMessage().PHP_EOL; } }
https://github.com/wapmorgan/MediaFile -
27 МАРТ 20170
14. Коротко ООП PHP - Что осталось
Тестирование - тесты дают уверенность, что ваша программа работает как задумано. Такие тесты можно запускать многократно. Успешное выполнение тестов покажет разработчику, что его изменения не сломали ничего, что ломать не планировалось
Тесты делят на:
— приёмочные — проверяют конечный результат, как правило в браузере. Это тесты, которые могут быть выполнены не техническим специалистом. Это может быть ваш тестировщик, менеджер или даже клиент/заказчик
Инструменты аналогичны функциональным
— функциональные — проверяют почти то же самое, но на более низком уровне. Зачастую используют эмуляторы браузеров.
Инструменты
Selenium
Mink
Codeception
— интеграционные — отдельные модули, комбинируются и тестируются, как группа
Инструменты аналогичны модульным
— модульные (юнит) — позволяет удостовериться, что функции, классы и методы работают, как ожидается с момента начала и до конца разработки
Инструменты
SimpleTest
Enhance PHP
PUnit
atoum
Тестирование происходит снизу вверх от модульных и заканчиваются приемочными.
Рефакторинг — это контролируемый процесс улучшения кода, без написания новой функциональности. Результатом рефакторинга является чистый код и простой дизайн
https://refactoring.guru/ru/refactoring
-
24 МАРТ 20170
-
23 МАРТ 20170
12. Коротко ООП PHP - Примеры
Шаблон фасад Паттерн фасад определяет интерфейс более высокого уровня, который упрощает использование подсистем.<?php class Stringify { public function __construct($str) { $this->str = $str; $this->_AddText(); $this->_AddDigits(); $this->_AddObject(new Stuff); echo $this->str; } private function _AddText() { $this->str .= ' | Adding Text'; } private function _AddDigits() { $this->str .= ' | Adding Ditgits: 402 '; } private function _AddObject(Stuff $stuff) { $this->str .= $stuff->WriteCrap(); } } class Stuff { public function WriteCrap() { return __CLASS__ . ' Writing Stuff'; } } new Stringify('Intro Text');
Шаблон декоратор
Сущность работы паттерна декоратор заключается в "оборачивании" готового объекта новым функционалом, при этом весь оригинальный интерфейс объекта остается доступным (декоратор переадресует все запросы объекту).<?php class Player { public $Data = array(); public function __construct(array $info) { $this->Data = $info; } } abstract class Player_Decorater { abstract public function Add($int); } class Player_Str_Decorate extends Player_Decorater { public function __construct(Player $p) { $this->Player = $p; $this->Player->Data['str'] += 5; } public function Add($int) { $this->Player->Data['str'] += $int; } } class Player_Dex_Decorate extends Player_Decorater { public function __construct(Player $p) { $this->Player = $p; $this->Player->Data['dex'] += 25; } public function Add($int) { $this->Player->Data['dex'] += $int; } } $P = new Player(array('str' => 10, 'dex' => 20)); echo $P->Data['str']; echo $P->Data['dex']; echo '<hr/>'; $Str = new Player_Str_Decorate($P); echo $Str->Player->Data['str']; $Dex = new Player_Dex_Decorate($P); $Dex->Add(55); echo $Dex->Player->Data['dex'];
Цепочка методовclass Cupcake { public $Cupcake = array(); public function Frosting($str) { $this->Cupcake['Frosting'] = $str; return $this; } public function Nuts($int) { $this->Cupcake['Nuts'] = (int)$int; return $this; } public function Sprinkles($int) { $this->Cupcake['Sprinkles'] = (int)$int; return $this; } } $cupcake = new Cupcake(); $cupcake->Nuts('10')->Frosting('chocolate')->Sprinkles('200'); print_r($cupcake->Cupcake);
-
22 МАРТ 20170
11. Коротко ООП PHP - Инструменты
IDE: PhpStorm, Visual Studio Code, Notepad++, Eclipse, Atom, Sublime Text и много других
Composer - менеджер зависимостей для PHP
- Список композер пакетов по популярности: https://packagist.org/explore/popular
PHP Code Similarity Analyzer - инструмент анализа сходства php кода
PHP Code Sniffer - инструмент обнаруживает нарушения определенного набора стандартов кодирования
PHP CS Fixer - инструмент автоматически исправит код под стандарт
PHP Parallel Lint - проверка синтаксиса
PHP Mess Detector - (обнаружитель беспорядков), пытается выявить ошибки, которые не находит компилятор, не оптимальные алгоритмы, переусложнённый код, не используемые выражения и другие подобные проблемы.
PHPLOC - инструмент для быстрого измерения размера и анализируя структуру PHP проекта
PHPDCD - инструмент для определения мертвого кода ( declared функции и методы )
PHPCPD - инструмент для определения дубликатов кода
PHPUnit - фреймворк для юнит тестирования
CodeCeption - фреймвор для тестирования на базе BDD
Security Advisories Checker - инструмент для проверки ваших библиотек на уязвимости
Gulp - сборщик пакетов можно использовать и для php нужд https://www.npmjs.com/search?q=php
phpqa https://github.com/jmolivas/phpqa - библиотека собирающая в кучу большинство из этих инструментов.
XDebug - отладчик позволяет вам отследить исполнение вашего кода и контролировать содержимое вашего стека.
Запуск окружения: virtualbox, vagrant, контейнеры docker, openserver, denver, xampp.
Конечно инструментов намного больше их просто тьма, но тот кто захочет начать этого предостаточно.
Категории:
Оставить на заметку в: