Для получения полного доступа
зарегистрируйтесь.

Раздел:
Подраздел:
Языки:


Valentin Sayik
  • Репутация: 37
  • Сниппеты: 5
  • Ревизии: 0

API которое описанное в этом сниппете будет следовать следующим правилам:

  • Возвращает только JSON
  • Для любого запроса клиент должен пройти аутентификацию
  • Аутентификация производится через OAuth2, Grant Type = password.
  • Разные версии API будут храниться на поддоменах (например v1.api.example.com)

Для написания API было использовано php + Symfony 3 + следующие бандлы:

Продолжение »

dfatt
  • Репутация: 260
  • Сниппеты: 53
  • Ревизии: 7

К своему стыду обнаружил, что в классе Controller, фреймвока Symfony 3, есть следующие полезные методы. Если вы про это знаете, то листайте дальше, тут ничего нового не будет :)

json

Если нужно отдать Response в JSON, нам достаточно выполнить код:

$data = ['hello' => 'world'];
return $this->json($data);

file

Этот метод понадобиться, когда вам нужно отдать файл для скачивания:

return $this->file('/path/to/file.doc');

Продолжение »

Gravatar image
jumper423
  • Репутация: 58
  • Сниппеты: 9
  • Ревизии: 2

GitHub

Описание

Пакет создан для стандартизации всех сервисов по разгадыванию капч. У каждого сервиса есть свои особенности и теперь Вам надо будет всего лишь взглянуть на документацию конкретного сервиса чтобы правильно всё сделать. Так же пакет покрывает всю функциональсть сервисов. Если же Вам будет чего-то нехватать или будут предложения, я буду только рад их услышать.

Особенности

  • Подходит для всех сервисов по распознаванию капч
  • Можно легко добавить новый сервис, используя уже готовый движок
  • Быстрая и интуительно понятная настройка
  • Распознавание как по пути до файла, так и по ссылки
  • ReCaptcha v2 без браузера
  • Полная документация
  • Покрыт тестами

Продолжение »

dfatt
  • Репутация: 260
  • Сниппеты: 53
  • Ревизии: 7

Данная библиотека автоматически приводит код к нужному стандарту — PSR-1, PSR-2. На входе указываем файл или директорию, после этого, код будет отформатирован по указанному стандарту. Также есть возможность настроить форматирование через опции.

Установка

Скачиваем

curl -L https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.0.0/php-cs-fixer.phar -o php-cs-fixer

Переносим, для доступа к утилите, из любого места

sudo chmod a+x php-cs-fixer
sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer

Продолжение »

OKyJIucT
  • Репутация: 15
  • Сниппеты: 8
  • Ревизии: 0
<?php
function rgb2hex($rgb)
{
    $hex = "#";
    foreach ($rgb as $color) {
    	$hex .= str_pad(dechex($color), 2, "0", STR_PAD_LEFT);
    }
    return $hex;
}

$rgb = [175, 175, 175];
$hex = rgb2hex($rgb); // #afafaf
OKyJIucT
  • Репутация: 15
  • Сниппеты: 8
  • Ревизии: 0
<?php

$first_day = date('d.m.Y', strtotime(date("Y-m-01"))); // первый день текущего месяца и года
$first_day = date('d.m.Y', strtotime(date("2014-04-01"))); // день выбранного месяца и года

Сниппет,  PHP

Диапазон дат

OKyJIucT
  • Репутация: 15
  • Сниппеты: 8
  • Ревизии: 0
<?php

$from = new \DateTime('2014-01-01');
$to = new \DateTime('2014-12-30');

$period = new \DatePeriod($from, new \DateInterval('P1D'), $to);

$arrayOfDates = array_map(
    function ($item) {
        return $item->format('Y-m-d');
    },
    iterator_to_array($period)
);
dfatt
  • Репутация: 260
  • Сниппеты: 53
  • Ревизии: 7

Главной фичей CMS является то, что вам не нужна база данных (данные храняться в файлах), за счёт чего и достигается простота в установке. Для установки CMS, вы можете — либо просто распоковать *.zip-архтив, либо установить через Composer:

composer create-project getgrav/grav ~/webroot/grav

В состав CMS, входят следующие библиотеки:

  • Twig Templating
  • Markdown
  • YAML
  • Parsedown
  • Doctrine Cache
  • Pimple Dependency Injection Container
  • Symfony Event Dispatcher
  • Symfony Console
  • Gregwar Image Library
dfatt
  • Репутация: 260
  • Сниппеты: 53
  • Ревизии: 7

Плюсом данного фреймворка является то, что написав код для бота, он будет работать для множества платформ:

  1. Slack
  2. Telegram
  3. Microsoft Bot Framework
  4. Nexmo
  5. HipChat
  6. Facebook Messenger

Кроме того, вы можете определять как будет вести себя команда для определённого мессенджера. Например, так:

// Restrict to Slack and Telegram driver
$botman->hears('keyword', function(BotMan $bot) {
    // do something to respond to message
    $bot->reply('You used a keyword!');
})->driver([SlackDriver::DRIVER_NAME, TelegramDriver::DRIVER_NAME]);
corpsee
  • Репутация: 13
  • Сниппеты: 5
  • Ревизии: 0

В стандартной библиотеке есть функция str_getcsv для разбора CSV-строки в массив, но нет для нее пары, которая бы собирала массив в CSV-строку. Зато есть парные функции для сбора-разбора в файл - fputcsv / fgetcsv.

<?php
if (!function_exists('str_putcsv')) {
    /**
     * Format line as CSV string
     *
     * @param array  $fields      An array of values.
     * @param string $delimiter   [optional] The optional delimiter parameter sets the field delimiter (one character only).
     * @param string $enclosure   [optional] The optional enclosure parameter sets the field enclosure (one character only).
     * @param string $escape_char The optional escape_char parameter sets the escape character (one character only).
     * 
     * @return int the length of the written string or false on failure.
     */
    function str_putcsv(array $fields, $delimiter = ",", $enclosure = '"', $escape_char = "\\") {
        $fileHandler = fopen('php://temp', 'r+b');
        fputcsv($fileHandler, $handle, $fields, $delimiter, $enclosure, $escape_char);
        rewind($fileHandler);
        $csvString = rtrim(stream_get_contents($fileHandler), "\n");
        fclose($fileHandler);

        return $csvString;
    }
}