Skip to content

Instantly share code, notes, and snippets.

View craftsman-expert's full-sized avatar

Igor craftsman-expert

  • Moscow
  • 11:37 (UTC +03:00)
View GitHub Profile
@igorjs
igorjs / rest-api-response-format.md
Last active April 11, 2025 12:51
REST API response format based on some of the best practices
@HueJack
HueJack / gist:76b0f8ce0c257c2777fac89a878e2396
Last active January 16, 2020 20:38
Удаленная отладка xdebug + phpStorm
1. Устанавливаем xdebug;
2. В php.ini включаем xdebug и настраиваем удаленное подключение:
zend_extension="/usr/lib64/php/modules/xdebug.so"
xdebug.profiler_enable = 0
xdebug.remote_enable = 1
xdebug.remote_host = 127.0.0.1 #именно 127.0.0.1, а не localhost, иначе может не сработать
xdebug.remote_port=9000 #смотрим свободный, через netstat -tnlp | grep 900
xdebug.remote_handler=dbgp
xdebug.idekey=PHPSTORM #ключ по желанию
@zmts
zmts / tokens.md
Last active April 21, 2025 07:44
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Last major update: 25.08.2020

  • Что такое авторизация/аутентификация
  • Где хранить токены
  • Как ставить куки ?
  • Процесс логина
  • Процесс рефреш токенов
  • Кража токенов/Механизм контроля токенов
@toddlers
toddlers / Dockerfile
Created July 27, 2016 11:24
using envsubst in Dockerfile
FROM ubuntu:trusty
RUN \
apt-get update \
&& apt-get -y install gettext-base \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
ENV VALUE=foo
ENV VALUE1=boo
COPY config.txt source_config.txt
@maestrow
maestrow / repository.md
Last active April 2, 2025 11:07
Паттерн репозиторий

Паттерн репозиторий

Репозиторий - это слой абстракции, инкапсулирующий в себе всё, что относится к способу хранения данных. Назначение: Разделение бизнес-логики от деталей реализации слоя доступа к данным.

Паттерн Репозиторий стал популярным благодаря DDD (Domain Driven Design). В противоположность к Database Driven Design в DDD разработка начинается с проектирования бизнес логики, принимая во внимание только особенности предметной области и игнорируя все, что связано с особенностями базы данных или других способов хранения данных. Способ хранения бизнес объектов реализуется во вторую очередь.

Применение данного паттерна не предполагает создание только одного объекта репозитория во всем приложении. Хорошей практикой считается создание отдельных репозиториев для каждого бизнес-объекта или контекста, например: OrdersRepository, UsersRepository, AdminRepository.

Пример

@mayconbordin
mayconbordin / progress_bar.php
Created June 2, 2012 23:55
PHP CLI progress bar in 5 lines of code
<?php
function progress_bar($done, $total, $info="", $width=50) {
$perc = round(($done * 100) / $total);
$bar = round(($width * $perc) / 100);
return sprintf("%s%%[%s>%s]%s\r", $perc, str_repeat("=", $bar), str_repeat(" ", $width-$bar), $info);
}