Skip to content

Instantly share code, notes, and snippets.

View gist:afda988bc6d03d5c5fff4a11002d9580
Создание модульных и интеграционных тестов
Создано и настроено окружение для использования Codeception как надстройки над PhpUnit, теперь мы можем писать тесты (не только модульные на чистом PhpUnit, но и интеграционные, требующие запущенного приложения), а ещё получать статистику по тому, какой процент кода у нас покрыт этими самыми тестами.
Команды:
vendor/bin/codecept run - запустить все тесты
vendor/bin/codecept run unit --coverage-html='coverage' - сформировать отчёт по степени покрытия кода тестами
Контроллеры тонкие, их тестировать не нужно, да и нет возможности, потому что тесты запускаются в консоли, а там нет: веб-сервера, урла, сессий, куков и т.п. Проект запускается как консольное приложение. Так что всё сошлось.
@morozVA
morozVA / sort.php
Created Oct 24, 2018
php sorting data in a multidimensional array
View sort.php
usort($res, function ($a, $b)
{
return strcmp($a["LastName"], $b["LastName"]);
});
@morozVA
morozVA / regexp.php
Created Jul 23, 2018
php regexp получить подстроку между скобками
View regexp.php
preg_match('/\((.+)\)/', $str, $m);
echo $m[1];
@morozVA
morozVA / latin.js
Created May 23, 2018
js запретить печатать кириллицу в input
View latin.js
function Latin(obj) {
if (/^[a-zA-Z0-9 ,.\-:"()]*?$/.test(obj.value))
obj.defaultValue = obj.value;
else
obj.value = obj.defaultValue;
}
<input onkeyup="Latin(this);">
@morozVA
morozVA / starRating.html
Created May 22, 2018
fractional star rating on css
View starRating.html
<div class="star-ratings-sprite">
<span style="width:90%" class="star-ratings-sprite-rating"></span>
</div>
.star-ratings-sprite {
background: url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/2605/star-rating-sprite.png") repeat-x;
font-size: 0;
height: 21px;
line-height: 0;
overflow: hidden;
@morozVA
morozVA / php mb_strimwidth.php
Created May 5, 2018
php обрезать строку и добавить многоточие
View php mb_strimwidth.php
$title = mb_strimwidth($title, 0, 85, "...");
@morozVA
morozVA / module.php
Created Apr 14, 2018
evo пример модуля отзывов
View module.php
?>
<h1>Отзывы</h1>
<ul id="tabs">
<li><a title="tab1" href="#">Опубликованные отзывы</a></li>
<li><a title="tab2" href="#">Неопубликованные отзывы</a></li>
</ul>
<div id="content">
<?php
@morozVA
morozVA / module.php
Created Apr 14, 2018
evo пример модуля "Телефонные коды"
View module.php
?>
<style>
#content{
width:820px;
}
ul{
margin: 0;
border: 1px solid #d8d8d8;
padding-left: 0;
@morozVA
morozVA / payment.php
Created Mar 26, 2018
Подключение платежных систем - пример webpay и bepaid
View payment.php
Подключение эквайринга
Необходимо получить от клиента доступы в кабинет пользователя нужной платежной системы.
Для webpay сначала дается доступ к тестовому кабинету. В нем проверяется правильность подключения и деньги не списываются при оплате. Когда все готово и работает – клиент пишет в webpay, и ему дают доступы от рабочего кабинета.
Для bepaid кабинет один.
Произвести необходимую настройку в кабинете пользователя платежной системы.
Для webpay - задать секретный ключ, прописать страницы error, success, notify. Забираем из кабинета id магазина.
Для bepaid надо в кабинете настроить данные тестового платежа – срок действия тестовой карточки и прочее. Также забираем id магазина.
@morozVA
morozVA / anti-spam.php
Created Mar 23, 2018
modx анти-спам проверка
View anti-spam.php
Для eForm (evolutionCMS).
Создаем сниппет checkSpamTime, вставляем в него код:
<?php
if ($_SESSION['now'])
{
$_SESSION['lt'] = $_SESSION['now'];
}
$_SESSION['now'] = microtime(true);