柳屋

ソースコードのリファクタからよもやままで

Lumenで継承を使ってAPIをサクッと作ってみた

LumenでAPIを作ったんですが、APIってCRUDベースで作れば事足りる機能がほとんどかなと思い、継承を使ってサクッと作ってみました。 継承を使えば記述量もぐっと減るし、うまく使えれば大変便利です それにバシーっと決まれば個人的にめっさ気持ち良いですよ…

ネストされたvue routerを別ファイルで管理する

Vue.jsでSPAを作っていると、ルーティングを機能単位で分けたくなります 例えば、ユーザに関する機能があったとして、ユーザの登録、更新、削除、詳細(所謂 CRUD )それぞれにルーティングを設定する必要があり、それを一つの機能としてルーティングもまと…

Cloud9にPHP7 + Lumenをインストール

PHPでAPIを作りたかったので LARAVEL ベースの軽量フレームワーク『Lumen』を使いました。 今回はAPIだけなのでマイクロフレームワークを選択しました Cloud9にはデフォルトではPHP5系がインストールされているので7系をインストールしLumenをインストールし…

VueJS + AdminLTEで管理画面を作る

管理画面を作る事になったんですが、せっかくなのでSPAでやってみたいなってなったのでVueJSで作ることにしました。 HTML CSSはサクッと作りたいなと思ったので、管理画面作成に特化したBootstrapベースの AdminLTE を使うことにしました VueJS環境作成 yana…

Cloud9でvue-cli環境を作る

最近、開発はめっきりcloud9でやってます。 Cloud9便利ですよね。 環境構築する必要がないのですぐ試せるし クラウドなのでPCさえあればどこでも同じ環境ですぐ実行できます さらに現在の現場ではプロキシかまされててGitHub等にpushできないんですが、Cloud…

Rails5で都道府県、市区町村のマスターデータをワンライナーで作成

郵便局が提供している郵便番号データから都道府県と市区町村のMySQLのマスタデータをワンライナーで作成します 処理の流れ 郵便番号データを郵便局のサイトからダウンロード ダウンロードしたZIPファイルを解凍し保存 保存したCSVファイルを読み込みMySQLに…

Lumenでクロスドメインアクセス設定

現在 VueJSとLumenでSPAのサービスを作っているのですが クロスドメインに引っかかり一日がっつりハマったので備忘録も兼ねて 記述 結論 色々試行錯誤したのですが結局以下で出来ました。 Lumenのapi/public/index.phpに以下を追記 header('Access-Control-A…

Vue.jsでlazyloadを実装

意外に自作するコードが少なかったので、書いてみました。 ソース <div id="vue-instance"> <img src="loading.gif">// ローディング画像 <img src="hoge.jpg" v-on:load="hideLoading">// 表示させたい画像 </div> var vm = new Vue({ el: '#vue-instance', methods: { hideLoading: (event) => { event.target.previousElementSibling.remove(); } } }); 画像…

Google Homeとヨドバシ.comを連携させてみた【サーバサイド編】

前回に引き続き、Google Homeとヨドバシ.comを連携させてみましたのサーバサイド編です。 前回の記事はこちら yanagiya.hatenadiary.com GitHub github.com 構成 さくらVPS Docker NodeJS CasperJS(PhantomeJS) SQLite Docker さくらVPS等にDockerがインスト…

MySQLで外部キーの制約があるテーブルをtruncateする方法

MySQLで外部キーが設定されているテーブルでtruncateしようとすると Cannot truncate a table referenced in a foreign key constraint ・・・ が表示されることがあるので、そうなった場合は 一時的に外部キーの制約を外してtruncateします set foreign_key…

Google Homeとヨドバシ.comを連携させてみた

流行りに乗ってGoogle Homeを買いました。 なんですかね。この近未来感 年代なのか、やはり声で操作できるってのは無条件ですごいですよね。 と言いながらまだ何ができるかよくわかってなく、もっぱら朝のラジオとアラームに終始しています ただそれだけでは…

rails5で中間テーブルの登録

rails5で中間テーブルの登録時にハマったので備忘録として書いておきます モデルの関係は以下前提とします Item <=> ItemCategory <=> Category Activerecodeの設定 それぞれのモデルに多対多の設定をします item.rb class Item < ApplicationRecord has_man…

Javascriptをリファクタしてみました2

今回は入力値を時間 + 分表記に変更するjavascriptです コードのボリュームがあったので少し長くなりました。 javascript var SAMPLE = {}; SAMPLE.ConvertInputTime = function(trigger) { this.$trigger = trigger; this.init(); }; SAMPLE.ConvertInputTi…

rubyをリファクタしてみました

今回は打って変わってrubyです Problem 4 - PukiWiki こちらの問題をrubyで書いてみたそうです。 元々はPHPとJavascriptをやってたのででrubyはあまり得意ではないので 間違ったところがあればご容赦を def calc?(num) num.to_s == num.to_s.reverse end p_a…

出来る風を装えるフロントエンドエンジニアのフレーズ集

現在都内でフリーランスとして某事業会社でフロントエンド業務に従事しております フロントエンドエンジニアの定義ってすごく曖昧ですよね。業務内容もフワフワしてる感じもあるし。 そんなん言うてる当の本人がいまいちよくわかってないので、周りの方から…

Javascriptをリファクタしてみました

ソースレビューしてると確かに機能面としては十分に満たしているんですが 設計部分でどうしても気になるところが多々あります。 ここまで言うたら細かいかなー。嫌われるかなーとか思いながらも 今後のことも考えて、レビューしているんですが。 なので気に…

;(function(document){ var pres = document.getElementsByTagName("pre") for(var i=pres.length; i--; ){  var el = makeOl(pres[i]) pres[i].appendChild(el) } function makeOl(pre){ if (pre.className.indexOf("gist") !== -1) { return } var ol = document.createElement("ol") , li = document.createElement("li") , df = document.createDocumentFragment() , br = pre.innerHTML.match(/\n/g) || 0 ol.className = "preLine" ol.setAttribute("role", "presentation") // no lang, no line-number if( pre.className && ! /lang-./.test(pre.className) ){ br.length += 1 } for(var i=br.length; i--; ){ var li2 = li.cloneNode(true) df.appendChild(li2) } ol.appendChild(df) return ol } })(document)