SlideShare a Scribd company logo
PHP開発で使う

タスクランナー GULP
第86回 PHP勉強会
YUUKI TAKEZAWA
ytake
自己紹介
なまえ: 竹澤 有貴(ytake)
twitter: @ex_takezawa
blog: http://blog.comnect.jp.net
GitHub: https://github.com/ytake
php, node.js, RDBMS, NoSQL, NewSQL
Laravel JPユーザー
Laravel答えないマン
ytake
すこしだけLaravel
Laravel5でるでる詐欺
たぶんそろそろベータかすっ飛ばして突然出そう
ファサードあまり使わなくなるよ

使えなくなる訳ではない!
インターフェースを理解してる人としてない人の差がすん
ごい出る
Laravelレシピ日本語版 ver5 用意中
ytake
本日は
PHPの話は
ほとんどしません
ytake
ytake
フロントエンドも自動化
してますか?
ytake
タスクランナー
ご存知ですか?
ytake
ytake
ytake
覚えてもすぐ新しいものがでるじゃん!
と思っていました
少し覚えるだけ
node.jsはトモダチ(ありがとう phpstorm)
angular, backboneなど使う機会が多くなった
React.js便利過ぎた(ブラウザでコンパイル嫌だ
sass, lessとかなんか増えてきた
ytake
ytake
どっちが良い、悪いではなくて
単純に好みの話です
なので今日はgulp
こんな経験ありませんか?
jsライブラリ落としたら

依存パッケージ足りなくて動かなかった
css, jsフレームワークのバージョンアップが

ついていけない
パスがバラバラで辛い
解決しようと手動でやってたら残業してた
ytake
ytake
phpに関わっている以上、
この問題は常に・・・
タスクランナー
導入すべし
ytake
ytake
フロントエンドはphpよりも進化が早い
ytake
node.jsが普及し、
フロントエンドでも使われ始めた
ytake
bower
フロントエンドパッケージ管理(twitter製)
Yeomanの普及もあり常識的なものに
足りない、動かないからの解放
node.js, bower.json
bower_componentsファイルをvendorに

移動すれば綺麗(.bowerrc設置)
ytake
ytake
{

"ignore": [

"**/.*",

"node_modules",

"bower_components",

"test",

"tests"

],

"dependencies": {

"jquery": "*",

"bootstrap": "*",

"react": "*"

}

}
ytake
phpのあれと同じ
ytake
使うには?
ytake
node.jsインストール
npm install -g gulp
npm install -g bower
package.json
ytake
{

"devDependencies": {

"bower": "1.*",

"gulp": "3.*"

}

}

$ npm install
タスク書いてみよう
ytake
タスクの作り方
ytake
gulpfile.jsに書く
タスク名を付けてその中に書く
よくわからなければサンプル見てみよう
stream云々色々あるので気になったら

調べてみてください(今回はそこまで触れません)
以上
ytake
var gulp = require('gulp'),

bower = require('bower’);
!
gulp.task('bower', function () {

return bower.commands.install(
[],
{save: true},
{})

.on('end', function (data) {

console.log(data);

});

});
$ gulp bower
インストール後に
所定のディレクトリに配置して
URLのパスをシステムに合わせて書き換えて
圧縮
ytake
ytake
gulp.task('publish', ['bower'], function () {

var jsFilter = gulpFilter('**/*.js');

var cssFilter = gulpFilter('**/*.css');

var fontFilter = gulpFilter([

'**/*webfont*',

"**/Font*",

"**/glyphicons-*"

]);

var imageFilter = gulpFilter(['**/*.png', "**/*.gif"]);

return gulp.src(

mainBowerFiles({

paths: {

bowerDirectory: 'vendor/bower_components',

bowerrc: '.bowerrc',

bowerJson: 'bower.json'

}

})

)

.pipe(jsFilter)

.pipe(gulp.dest('public/assets/js'))

.pipe(jsFilter.restore())

.pipe(cssFilter)

.pipe(urlAdjuster({

replace: ['../fonts/', ''],

prepend: '/assets/fonts/'

}))

.pipe(minifyCSS({keepBreaks:true}))

.pipe(gulp.dest('public/assets/css'))

.pipe(cssFilter.restore())

.pipe(fontFilter)

.pipe(gulp.dest('public/assets/fonts'))

.pipe(fontFilter.restore())

.pipe(imageFilter)

.pipe(gulp.dest('public/images'));

});
少しPHPの開発でも
ありがたくなってきました
ytake
ファイルの変更を監視
ytake
node.jsの得意分野
ytake
ファイルの変更などを監視してリアルタイムにタス
ク実行
shellもOK
phpunitも実行可能
ブラウザの更新も自動でやらせる
PHPビルトインサーバも必要であれば
ytake
gulp.task("phpunit", function () {



var options = {

debug: false,

notify: true

};

return gulp.src('tests/*Test.php')

.pipe(plumber())

.pipe(phpunit('', options))

.on('error', notify.onError(testNotification('fail', 'phpunit')))

.pipe(notify(testNotification('pass', 'phpunit')));

});
phpunit + 通知付き
ytake
ブラウザシンク
gulp.task('browserSync', function () {

browserSync({

open: true,

port: 3001,

proxy: "127.0.0.1:" + configure.php_server.port,

notify: false

});

});



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

browserSync.reload();

});

ytake
あとはよろしく!


gulp.task('default', ['browserSync', 'publish'], function () {

gulp.watch(['src/**/*.php'], ['phpunit']);

gulp.watch(['src/**/*.php'], ['browserReload']);

});

パターンにマッチした
ファイルが変更されたら
勝手に実行してくれます
実際に動かしてみよう
ytake
https://github.com/ytake/gulp-tutorial
まとめ
ytake
こんなのできるかな?と思ったら大体ある
タスクランナーってすごい
楽になったのでjsフレームワークの勉強 る
開発効率が上がりました
早く帰れる様になりました
おわり
ytake

More Related Content

PDF
Laravel / Lumen 次の一歩
PDF
LaravelとMVCの先へ
PDF
Laravel_オープンソースカンファレンスhokkaido_JP_2014
PPTX
PHPで並列処理する ライブラリを作った
PDF
はじめてLaravelさわった 第86回php勉強会
PDF
Laravel5.1 Release
PDF
Laravel 5.1 LTSでサービスを作る
PPTX
今日から始めるLaravel
Laravel / Lumen 次の一歩
LaravelとMVCの先へ
Laravel_オープンソースカンファレンスhokkaido_JP_2014
PHPで並列処理する ライブラリを作った
はじめてLaravelさわった 第86回php勉強会
Laravel5.1 Release
Laravel 5.1 LTSでサービスを作る
今日から始めるLaravel

What's hot (20)

PPTX
Phpフレームワーク 「laravel」でブログを作ろう
PDF
フレームワークを使うべき 3 つの理由
PDF
Laravelのパッケージのテストに便利なパッケージ
PDF
PHPデプロイツールの世界
PDF
Laravel の学び方と得られる学び
PDF
魔法少女 Laravel
PDF
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
PDF
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
PDF
PHPとJavaScriptの噺
PPTX
活動報告9 laravel5入門-
PDF
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
PDF
魔法少女 Laravel 2014
PPTX
PHP x AWS でスケーラブルなシステムをつくろう
PDF
PHPの今とこれから2015
PDF
Laravelから学びレガシーと闘いはじめた
PDF
いまどきのPHP開発現場 -2015年秋-
PDF
flyingV Laravel & AWS 經驗分享
PPTX
Behat Driven Development
PDF
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
PDF
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
Phpフレームワーク 「laravel」でブログを作ろう
フレームワークを使うべき 3 つの理由
Laravelのパッケージのテストに便利なパッケージ
PHPデプロイツールの世界
Laravel の学び方と得られる学び
魔法少女 Laravel
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
PHPとJavaScriptの噺
活動報告9 laravel5入門-
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
魔法少女 Laravel 2014
PHP x AWS でスケーラブルなシステムをつくろう
PHPの今とこれから2015
Laravelから学びレガシーと闘いはじめた
いまどきのPHP開発現場 -2015年秋-
flyingV Laravel & AWS 經驗分享
Behat Driven Development
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
Ad

Similar to php開発で使うタスクランナー gulp (20)

PPTX
Laravelチュートリアルを作ってみた。
PDF
Laravel5.1&homesteadで楽々ローカル環境構築
PDF
PHP フィールドインジェクションに挑戦する PHP勉強会2014
PDF
Laravel4で運用するサービス,そしてlaravel5へ
PPT
20090801phpstudy Sanemat
PPTX
簡単便利!Laravel Homestead
PDF
PHPでセキュリティを真面目に考える
PDF
Laravel meetup5(Laravel meet NewSQL/VoltDB )
PDF
いまどき(これから)のPHP開発
PDF
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
PDF
Laravel shibuya 3 Laravel Beginner IRT
PDF
Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1
PPTX
PHP AV BINDING
PDF
Hashicorpツールズ
PDF
筋トレ大事
PDF
PHPerのためのpostgresqlチューニングmini
PDF
Laravelのすごいと思うところを 初級レベルで語ってみる。
PPTX
Laravelを使ってみた
PDF
PHP&NewSQLで考える次世代アプリケーション
PDF
Word pressのテーマは firephpでハックすれば 良かったのか
Laravelチュートリアルを作ってみた。
Laravel5.1&homesteadで楽々ローカル環境構築
PHP フィールドインジェクションに挑戦する PHP勉強会2014
Laravel4で運用するサービス,そしてlaravel5へ
20090801phpstudy Sanemat
簡単便利!Laravel Homestead
PHPでセキュリティを真面目に考える
Laravel meetup5(Laravel meet NewSQL/VoltDB )
いまどき(これから)のPHP開発
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
Laravel shibuya 3 Laravel Beginner IRT
Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1
PHP AV BINDING
Hashicorpツールズ
筋トレ大事
PHPerのためのpostgresqlチューニングmini
Laravelのすごいと思うところを 初級レベルで語ってみる。
Laravelを使ってみた
PHP&NewSQLで考える次世代アプリケーション
Word pressのテーマは firephpでハックすれば 良かったのか
Ad

php開発で使うタスクランナー gulp