Основные функции

1) Эффективность

Используя возможности узловых потоков, gulp обеспечивает быструю сборку без записи промежуточных файлов на диск.

2) Высокое качество

Применяя строгие правила для плагинов, мы гарантируем, что плагины останутся простыми и будут работать так, как ожидалось.

3) Простота в использовании

Предпочитая код конфигурации, gulp делает вещи простыми и делает сложные задачи управляемыми.

4) Легкий в освоении

Используя передовые методы работы с узлами и поддерживая минимальную поверхность API, ваша сборка работает именно так, как вы себе представляете.

Введение

1) Помимо javascript, Gulpfile.js также можно использовать для автоматизации некоторых ваших задач .Net/c#.

2) Вы также можете использовать его в проектах php.

3) Gulp поддерживает php, так как находится в начальной фазе, пока рано комментировать, что выбрать - › grunt или gulp.

4) Минимальное требование для наличия Gulp.js:

а) установить пакет узла

я. npm install –g gulp

II. npm install — save-dev gulp (это добавляет пакеты в node-modules, т.е. записи делаются в package.json модуля, установленного в dev-зависимостях)

б) наличие файла gulpfile.js в корне папки вашего проекта.

c) Создание «package.json» и определение в нем всех необходимых зависимостей и dev-зависимостей.

Команда -›npm init

Build wars — Grunt против Gulp

· Разницу между Gulp.js и Grunt.js можно особенно заметить при работе над большими проектами с огромным количеством файлов.

· Использование Gulp узла и его модулей сделало код более простым и легким для отладки.

· В gulp концепция каналов позволяет выполнять базовый процесс непрерывной интеграции с помощью одной задачи.

· Gulp — это «код над конфигурацией», т. е. сценарий CI содержит простое «что» процесса, а конфигурации могут быть разделены на отдельные файлы, которые можно легко использовать в качестве модулей.

· Чтобы понять Gulp, вам нужно понять Node Streams. Все плагины Gulp работают только через потоки, которые считывают данные и выводят данные. Все может обрабатываться в памяти, при этом вывод одного потока передается в качестве ввода для другого, как конвейеры Unix.

Это дает Gulp огромное преимущество в скорости перед Grunt, потому что операции ввода-вывода очень дороги по сравнению с операциями в памяти. Кроме того, Grunt должен скомпилировать все файлы, даже если изменился только один, что увеличивает время сборки.

В Grunt мы должны записывать промежуточные файлы на диск

В Gulp мы передаем промежуточные файлы в памяти другим потокам

Полный CI

1) Создать проект-директорию.

2) Создайте package.json и определите dev-зависимости.

Команда -› инициализация npm

3) Установите gulp в каталог проекта.

Команда -›npm install — сохранить –dev gulp

4) Создайте файл phpunit.xml для модульного тестирования и добавьте его в каталог проекта.

5) Установите композитор в каталог проекта (для использования таких пакетов, как phpdox, phpunit, phpcs и т. д.)

Команда -> sudo curl — sS https : // getcomposer.org/installer|php

6) Создайте файл composer.json в каталоге проекта.

Command -› инициализация композитора

Примечание. В интерактивном режиме добавьте пакеты (phpcs, phpunit, phpdox, phpcpd, sonar) в composer.json.

7)Command -› composer require — -dev «squizlabs/php-codesniffer»

Это создает папку vendor/bin со всеми необходимыми исполняемыми файлами пакетов (phpcs, phpunit, phpdox, phpcpd и т. д.).

8) Создайте gulpfile.js и выполните модульное тестирование, покрытие кода и статический анализ кода, добавляя и проверяя выполнение задач одну за другой.

9)Задача «gulp-PHPCS»

Выполнить команду -›

npm install — — save-dev gulp-phpcs(добавьте dev-зависимость phpcs в package.json)

Добавлено задание -›

// PHP CodeSniffer

gulp.task('checkstyle', function () {

//возврат gulp.src([‘./src/**/*.php’])

вернуть gulp.src(config1.all)

.pipe(phpcs({bin: ‘vendor/bin/phpcs’, стандарт: ‘PSR2’,

warningSeverity: 0}))

.pipe(phpcs.reporter(‘log’));

});

Выполнить команду -›

стиль проверки gulp

Примечание -›Чтобы проверить правильность работы phpcs, создайте файл, который нарушает стандарты кодирования.

10) Задача «gulp-PHPUNIT»

Выполнить команду -›

npm install — — save-dev gulp-phpunit(добавьте dev-зависимость phpunit в package.json)

Добавлено задание -›

//PHPUnit-phpunit.xml

gulp.task('phpunit', function() {

gulp.src('phpunit.xml')

.pipe(phpunit('', {notify: true}));

});

Выполнить команду -›

проглотить phpunit

Примечание ->

· Выполнены модульные тесты

· покрытие кода выполняется с созданием папки под названием «coverage», содержащей сведения о покрытии,

· Создаются отчеты — clover.xml, crap4j.xml и junit.xml.

11) "gulp-sonar"Задача

Выполнить команду -›

npm install — — save-dev gulp-sonar(добавьте dev-зависимость сонара в package.json)

Добавлено задание -›

//глоток-сонар

gulp.task('sonar', function () {

var options = {

сонар: {

хост: {

ссылка: «http://172.27.59.62:9080»

},

jdbc: {

URL-адрес: ‘jdbc:mysql://172.27.59.62:3306/sonar’,

имя пользователя: «sonar»,

пароль: «sonar»

},

projectKey: ‘sonar:gulp-sonar-runner:1.0.0’,

Название проекта: «Паллави-глоток»,

версия_проекта: ‘1.0.0’,

// строка исходных каталогов с разделителями-запятыми

источники: ‘src’,

язык: ‘php’,

кодировка источника: ‘UTF-8’,

javascript: {

лков: {

Путь_отчета: ‘./sonar_report/lcov.info’

}

}

}

};

// источник gulp не имеет значения, все файлы указаны в объекте параметров выше

вернуть gulp.src([‘./src/**/*.php’])

.pipe(sonar(options))

.on('ошибка', util.log);

});

Выполнить команду -›

глоток сонара

***Примечание. › Шаг по настройке sonarQube и запуску службы

· При создании файла composer.json сонар должен быть интерактивно добавлен к нему как требуемый пакет.

· После добавления зависимости сонара в package.json необходимо создать базу данных сонара с помощью следующих команд-›

mysql –uroot –ppassword

СОЗДАТЬ БАЗУ ДАННЫХ sonar SET CHARACTER UTF8 COLLATE utf8 generalci;

СОЗДАЙТЕ ПОЛЬЗОВАТЕЛЬСКИЙ «сонар», ИДЕНТИФИЦИРОВАННЫЙ «сонаром»;

ПРЕДОСТАВИТЬ ВСЕ НА сонаре .* КОМУ "sonar" @ "%", ИДЕНТИФИЦИРОВАННО "sonar";

СБРОС ПРИВИЛЕГИЙ;