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

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


Дмитрий Порожняков
  • Репутация: 62
  • Сниппеты: 15
  • Ревизии: 0
sudo mysqlbinlog -v --start-position={START_POS} --base64-output=DECODE-ROWS {FULL_PATH_TO_BINLOG_RELAYLOG_FILE} > {FULL_PATH_TO_DECODED_FILE}

Далее можно открыть DECODED_FILE через vim:

  1. :set hlsearch - включаем подстветку результатов поиска
  2. /# at - по такому паттерну перемещаемся между statements
  3. n - следующее совпадение; N - предыдущее совпадение
Gravatar image
Hector68
  • Репутация: 2
  • Сниппеты: 1
  • Ревизии: 0

Актуально, в частности для работы над Magento

 git log
 ....
 git archive -o ../latest.zip some-commit $(git diff --name-only earlier-commit some-commit)
FullZero
  • Репутация: 7
  • Сниппеты: 6
  • Ревизии: 0
const randomColor = () => {
  return `#${((1<<24)*Math.random()|0).toString(16)}`;
}
console.log(randomColor());
Сниппет,  Bash

Enable Docker Remote API

alex912004
  • Репутация: 8
  • Сниппеты: 3
  • Ревизии: 0

Открываем конфиг, редактируем параметры запуска демона, перезапускаем сервис

vi /etc/init/docker.conf 
> DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'
service docker restart

При запуске через systemctl:

vi /lib/systemd/system/docker.service
> ExecStart=/usr/bin/dockerd daemon -H fd:// -H tcp://0.0.0.0:2373
systemctl daemon-reload
Дмитрий Порожняков
  • Репутация: 62
  • Сниппеты: 15
  • Ревизии: 0

CPU:

lscpu

Memory:

less /proc/meminfo

Hard Drive:

sudo fdisk -l | grep Disk

Network:

ifconfig -a
ethtool {interface name} | grep -i speed
dignityinside
  • Репутация: 26
  • Сниппеты: 21
  • Ревизии: 1

Проверяем установленую версию:

git --version
git version 1.7.12.4 (Apple Git-37)

Устанавливаем git с помощью brew:

brew install git

Добавляем в ~/.bash_profile новую строчку:

export PATH="/usr/local/bin:$PATH"

Применяем изменения:

source .bash_profile

Проверяем версию:

git --version
git version 2.11.1
Gravatar image
egorsmkv
  • Репутация: 9
  • Сниппеты: 1
  • Ревизии: 0

Стандартный класс LinkPager генерирует HTML-код постраничной навигации, который неправильно отображается с Bootstrap 4. Этот сниппет исправляет эту проблему.

<?php

namespace app\components;

use Yii;
use yii\helpers\Html;
use yii\widgets\LinkPager;

class BootstrapLinkPager extends LinkPager
{
    /**
     * @inheritdoc
     */
    public function init()
    {
        parent::init();

        // In Bootstrap 4 no div's "next" and "prev", so you need to overwrite the default values
        $this->prevPageCssClass = 'page-item';
        $this->nextPageCssClass = 'page-item';

        // Change the location and size of block
        // https://v4-alpha.getbootstrap.com/components/pagination/#alignment
        // https://v4-alpha.getbootstrap.com/components/pagination/#sizing
        $this->options['class'] = 'pagination justify-content-center';

        // Change standard arrows "«" and "»"
        $this->nextPageLabel = Yii::t('app', 'Next');
        $this->prevPageLabel = Yii::t('app', 'Previous');

        // Default div for links
        $this->linkOptions['class'] = 'page-link';
    }

    /**
     * @inheritdoc
     */
    public function run()
    {
        if ($this->registerLinkTags) {
            $this->registerLinkTags();
        }

        if ($this->pagination->getPageCount() > 1) {
            echo Html::tag('nav', $this->renderPageButtons());
        }
    }

    /**
     * @inheritdoc
     */
    protected function renderPageButton($label, $page, $class, $disabled, $active)
    {
        $options = ['class' => empty($class) ? 'page-item' : $class];
        $linkOptions = $this->linkOptions;

        if ($active) {
            Html::addCssClass($options, $this->activePageCssClass);
        }

        if ($disabled) {
            Html::addCssClass($options, $this->disabledPageCssClass);
            $linkOptions['tabindex'] = '-1';
        }

        return Html::tag('li', Html::a($label, $this->pagination->createUrl($page), $linkOptions), $options);
    }
}

Использовать просто: вместо LinkPager при вызове используйте BootstrapLinkPager.

Сниппет,  PHP

Layout

dignityinside
  • Репутация: 26
  • Сниппеты: 21
  • Ревизии: 1

Установить другой шаблон:

$this->layout()->setTemplate('layout/new-layout');

Добавить новый шаблон для сайдбара:

$view = new ViewModel();
$sideView = new ViewModel();
$sideView->setTemplate('content/sidebar');
$this->$layout->addChild($sideView, 'side-view');
return $view;

Отключить шаблон:

$view = new ViewModel();
$view->setTerminal(true);
return $view;

Разные файлы шаблона для разных контролеров:

//module.php
public function init(ModuleManager $moduleManager){
    $sharedEvents = $moduleManager->getEventManager()->getSharedManager();
    $sharedEvents->attach(__NAMESPACE__, 'dispatch', function($e) {
        $controller = $e->getTarget();
        if ($controller instanceof Controller\FrontEndController) {
            $controller->layout('layout/front');
        }
    }, 100);
}

Получить доступ к объекту View в модули:

public function onBootstrap($e){
  $app = $e->getApplication();
  $viewModel = $app->getMvcEvent()->getViewModel();
}

Получить значение представления в Layout:

$viewModel = $this->viewModel()->getCurrent();
$children = $viewModel->getChildren();
$viewModel = $children[0];
$viewModel->foo;
Сниппет,  PHP

View Model

dignityinside
  • Репутация: 26
  • Сниппеты: 21
  • Ревизии: 1

Переопределить шаблон для View:

$view = new ViewModel();
$view->setTemplate('my-template.phtml');

Передать переменные в представление:

$view = new ViewModel();
$view->setVariables(['var' => 'foo']);

Добавление нескольких объектов View Model и передача их в представления:

$view = new ViewModel();
$sidebarView = new ViewModel();
$sidebarView->setTemplate('content/sidebar');
$view->addChild($sidebarView, 'sidebar');
return $view;

Отключить представления (view):

$response = $this->getResponse();
$response->setStatusCode(200);
return $response;

Вернуть Json ответ (response):

$view = new JsonModel(['success' => '1','data'=>'foo']);
return $response;