Разделы
Теги | RSS © 2008 – 2017
Контакты
email: igor@veselov.sumy.ua
skype: utz0r2
» » » Страница 9

14. Коротко ООП PHP - Что осталось


Тестирование - тесты дают уверенность, что ваша программа работает как задумано. Такие тесты можно запускать многократно. Успешное выполнение тестов покажет разработчику, что его изменения не сломали ничего, что ломать не планировалось
Тесты делят на:

приёмочные — проверяют конечный результат, как правило в браузере. Это тесты, которые могут быть выполнены не техническим специалистом. Это может быть ваш тестировщик, менеджер или даже клиент/заказчик
Инструменты аналогичны функциональным

функциональные — проверяют почти то же самое, но на более низком уровне. Зачастую используют эмуляторы браузеров.
Инструменты
Selenium
Mink
Codeception

интеграционные — отдельные модули, комбинируются и тестируются, как группа
Инструменты аналогичны модульным

модульные (юнит) — позволяет удостовериться, что функции, классы и методы работают, как ожидается с момента начала и до конца разработки
Инструменты
SimpleTest
Enhance PHP
PUnit
atoum

Тестирование происходит снизу вверх от модульных и заканчиваются приемочными.

Рефакторинг — это контролируемый процесс улучшения кода, без написания новой функциональности. Результатом рефакторинга является чистый код и простой дизайн
https://refactoring.guru/ru/refactoring

callmecavs/gotem - js скрипт копирования в буфер на современных браузерах


import gotem from 'gotem'

// a trigger and target node are required
const nodes = {
  trigger: document.getElementById('trigger'),
  target: document.getElementById('target')
}

// when the trigger is clicked,
// the text of the target will be copied to the clipboard
gotem(nodes.trigger, nodes.target)

// if an object with callback functions (success, error) is passed,
// the appropriate function, based on the result of executing the copy command, will be fired if it exists
gotem(nodes.trigger, nodes.target, {
  success: () => console.log('Copy command succeeded'),
  error: () => console.log('Copy command failed, BUT the text to copy has still been selected.')
})

https://github.com/callmecavs/gotem

botman - фреймворк для создание чат-ботов


Включает в себя поддержку Slack, Telegram, Microsoft Bot Framework, Nexmo, HipChat, Facebook Messenger and WeChat
use Mpociot\BotMan\BotManFactory;
use Mpociot\BotMan\BotMan;

$config = [
    'hipchat_urls' => [
        'YOUR-INTEGRATION-URL-1',
        'YOUR-INTEGRATION-URL-2',
    ],
    'nexmo_key' => 'YOUR-NEXMO-APP-KEY',
    'nexmo_secret' => 'YOUR-NEXMO-APP-SECRET',
    'microsoft_bot_handle' => 'YOUR-MICROSOFT-BOT-HANDLE',
    'microsoft_app_id' => 'YOUR-MICROSOFT-APP-ID',
    'microsoft_app_key' => 'YOUR-MICROSOFT-APP-KEY',
    'slack_token' => 'YOUR-SLACK-TOKEN-HERE',
    'telegram_token' => 'YOUR-TELEGRAM-TOKEN-HERE',
    'facebook_token' => 'YOUR-FACEBOOK-TOKEN-HERE',
    'facebook_app_secret' => 'YOUR-FACEBOOK-APP-SECRET-HERE', // Optional - this is used to verify incoming API calls,
    'wechat_app_id' => 'YOUR-WECHAT-APP-ID',
    'wechat_app_key' => 'YOUR-WECHAT-APP-KEY',
];

// create an instance
$botman = BotManFactory::create($config);

// give the bot something to listen for.
$botman->hears('hello', function (BotMan $bot) {
    $bot->reply('Hello yourself.');
});

// start listening
$botman->listen();

https://github.com/mpociot/botman

phpqa - анализатор CLI


phpqa - анализатор CLI

Представляет из себя скрипт объединяющий такие средства анализа кода:
PHP Parallel Lint
PHP Coding Standards Fixer
PHP_CodeSniffer
PHPMD - PHP Mess Detector
PHPLOC
PHPDCD - PHP Dead Code Detector
PHPCPD - PHP Copy/Paste Detector
PHPUnit
https://github.com/jmolivas/phpqa

latitude - php конструктор запросов SQL


Пример SELECT
use Latitude\QueryBuilder\SelectQuery;

$select = SelectQuery::make()
    ->from('users');

echo $select->sql();
// SELECT * FROM users

https://github.com/shadowhand/latitude

tmpfile - класс для работы с временным файлом на PHP альтернатива функции tmpfile


<?php

require __DIR__ . '/vendor/autoload.php';

// Создать временный файл
$tmpfile = new tmpfile;

// Сразу с контентом
$tmpfile = new tmpfile('Hello, world!');

/* ... */

// Записать в файл
$tmpfile->write('abc');

// Дописать в конец
$tmpfile->write('def', FILE_APPEND);

// Способ короче
$tmpfile->puts('def');

// Прочитать весь файл
$tmpfile->read();

// Какую-то часть
$tmpfile->read(7, 5);

// Удалить файл
$tmpfile->delete();

/* ... */

// Передать URI в объект
new SplFileInfo($tmpfile);

// Переместить в другую папку
rename($tmpfile, __DIR__ . '/picture.jpg');

// Проверить на наличие
file_exists($tmpfile);

https://github.com/denisyukphp/tmpfile
«»
Вверх