Разделы
Veselov CV | vvShop © 2008 – 2017
Контакты
email: igor@veselov.sumy.ua
skype: utz0r2

idg - геренартор картинок ( быстрее чем html->pdf->image )


Требования Imagick. Можно создавать такие изображения:
idg - геренартор картинок ( быстрее чем html->pdf->image )

<?php

require_once __DIR__ . '/vendor/autoload.php';
// font for example
$fontRegular = 'RobotoCondensed-Regular.ttf';

$idg = new \Idg\Idg(1000, 3000, null, new ImagickPixel('#fff'));
$idg->beginDocument(40, 30, 40, 30);
 $idg->beginRow();
        $idg->beginColumn(300);
            $idg->image('test_image.jpg');
            $idg->beginBlock()->setLeft(20);
                $idg->text('Figure 1. Dolore eu fugiat nulla pariatur.')
                ->setFont($fontRegular)->setFontSize(14)->setTextColor('#555');
            $idg->endBlock();
        $idg->endColumn();
        $idg->beginColumn(600);
                $idg->text('Lorem ipsum dolor sit amet, 
                consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate 
                velit esse cillum dolore eu fugiat nulla pariatur. 
                Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.')
                    ->setFont($fontRegular);
        $idg->endColumn();
        $idg->endRow();
$idg->endDocument();
$idg->compose();

header('Content-Type: image/' . $idg->getCanvas()->getImageFormat());
print $idg->getImageBlob();

https://github.com/NikitchenkoSergey/idg

Как разместить 11 000 000 элементов в памяти PHP


Как разместить 11 000 000 элементов в памяти PHP

<?php
pack('LLLc', 'user');
$key = '/var/www/test/visits/shmop.php';
$shm_key = ftok($key, 'v');
$shm_id = shmop_open($shm_key, "c", 0644, 13*11000000);
$i = 1;
while ($visitsData = @file_get_contents("data/visits_$i.json")) {
    $visitsData = json_decode($visitsData, true);
    foreach ($visitsData['visits'] as $k => $row) {
        $data = pack('LLLc', $row['user'], $row['location'], $row['visited_at'], $row['mark']);
        shmop_write ($shm_id , $data, $row['id']*13);
    }
    $i++;echo "$i\n";
}
unset($visitsData);
//$data = shmop_read($shm_id , $row['id']*13, 13);
//$data = unpack('Luser/Llocation/Lvisited_at/cmark', $data);
sleep(3600);

https://github.com/morozovsk/php-arrays-in-memory-comparison

Винтажная дос тема для Twitter Bootstrap


Винтажная дос тема для Twitter Bootstrap

https://github.com/kristopolous/BOOTSTRA.386

uppy - современный файловый загрузчик



https://uppy.io/

hutnikau/job-scheduler - планировщик задач на пхп


$executionTime = new \DateTime('2017-12-12 20:00:00');
//run monthly, at 20:00:00, 5 times
$rule          = new \Scheduler\Job\RRule('FREQ=MONTHLY;COUNT=5', $executionTime);
$job           = new \Scheduler\Job\Job($rule, function () {
    //do something
});

https://github.com/hutnikau/job-scheduler

hyperapp - js библиотека для создания фронтенда


import { h, app } from "hyperapp"

const state = {
  count: 0
}

const actions = {
  down: () => state => ({ count: state.count - 1 }),
  up: () => state => ({ count: state.count + 1 })
}

const view = (state, actions) => (
  <main>
    <h1>{state.count}</h1>
    <button onclick={actions.down}>-</button>
    <button onclick={actions.up}>+</button>
  </main>
)

export const main = app(state, actions, view, document.body)

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