Skip to content

Instantly share code, notes, and snippets.

@sagittaracc
sagittaracc / Graph.php
Created May 1, 2021 10:33
Работа с графами
<?php
/**
* Работа с графами
*
* @author sagittaracc <[email protected]>
*/
class Graph
{
/**
@sagittaracc
sagittaracc / unique-visits-downloads.php
Last active April 8, 2021 14:33
Счётчик уникальных посещений на примере скачивания дистрибутива (PHP)
<?php
/**
* ListInterface это интерфейс для классов IPIgnoreList, UserAgentIgnoreList и SearchBotList
*
* Должен реализовать метод `has($item)` для определения принадлежности пользователя к реализуемому списку
*/
interface ListInterface
{
/**
@sagittaracc
sagittaracc / Dataset.php
Last active March 31, 2021 10:24
Lagrange interpolation PHP Decorator (Интерполяционные полиномы Лагранжа на PHP Декораторе)
<?php
interface Dataset
{
public function output();
}
@sagittaracc
sagittaracc / readme.md
Last active March 16, 2021 20:11
Магазин пива (перенесено)
@sagittaracc
sagittaracc / factory-method-pattern.php
Last active March 13, 2021 16:40
Паттерн проектирования "Фабрика" (пример на php). Реализация логирования в системный лог, базу данных, или файловую систему.
<?php
// Фабрика
abstract class LogFactory
{
// Фабричный метод - создает конкретные продукты фабрики
abstract public function getLog(): Log;
// Метод реализующий основное назначение продуктов фабрики (в данном случае запись в лог)
public function write($data): void
@sagittaracc
sagittaracc / index.html
Last active July 31, 2020 12:53
Chatbox HTML CSS
<!doctype html>
<html>
<head>
<title>Chatbox</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="chat-box">
<div class="elder">Load earlier messages</div>
<div class="sender">
@sagittaracc
sagittaracc / simple-pagination-with-three-dots.js
Last active July 24, 2020 14:24
Simple pagination with three dots
function Pagination(countPages, maxLength) {
if (maxLength < 5) return;
if (countPages < maxLength) maxLength = countPages;
this.countPages = countPages;
this.maxLength = maxLength;
this.currentLength = 0;
this.currentPage = this.firstPage = 1;
this.lastPage = this.countPages;