Post

プログラミング

2016-12-15 16:01:50

Laravelのredirect('hoge')とredirect()->to('hoge')の違い

些細な事ですが、気になったので調べてみました。 public function getIndex() { return redirect()->to('hoge'); } 今まで何となくこっちを使っていましたが、 public function getIndex() { return redirect('hoge'); } こっちでも問題なく動作するのでredirectヘルパーの実装について調べてみました。 redirectヘルパーの実装if (!function_exists('redirect')) { /** * Get an instance of...

プログラミング

laravel

2016-06-27 16:02:30

Laravelのデバッグツールlaravel-debugbarをつかってみる

Laravelのlaravel-debugbarというデバックツールについて紹介します。 github-laravel-debugbar laravel5.1でも5.2でも使えました。 composerでlaravel-debugarを導入composer require barryvdh/laravel-debugbar --dev からの composer install facadeで使えるようにするインストールするだけでもデバッグツールとして問題なく使えますが、より詳細にデバッグしたい場合はfacadeで使えるようにしておくと便利です。 app.phpのproviderとalias部...

プログラミング

laravel

2017-03-20 16:03:43

Laravelのフォームリクエストでバリデーションされる値をカスタマイズする

概要Laravelのフォームリクエストで、バリデーションされる値をカスタマイズする方法です。APIのエンドポイントが/post/:id/deleteの時に、ルートパラメーターにフォームリクエストのバリデーションをかけたい・・なんて時に有効かもしれません。 validationDataメソッドをいじるLaravel APIにあるvalidationDataをいじります。 ルートパラメーターのidにバリデーションをかける例です。 <?php namespace App\Http\Requests\Api\v1\Category; use Illuminate\Foundation\Htt...

プログラミング

laravel

2016-10-03 16:04:12

Laravelの多対多のリレーションでテーブル名を規則から外す時

多対多のリレーションを設計するときに、ドキュメント通りやっていたと思ったらちょっとした勘違いをした話です。 ここに3つのテーブルがあるじゃろ?今回のテーブル events event_tags event_tag_event←pivotテーブル 通常のテーブルは events tags tag_event って感じでデフォルトの規則通りリレーションを貼ればいいのですが、ちょっと癖のある名前にすると少し気をつけるところがあるようです。 ドキュメントを見てみるLaravel 5.1 Eloquent:リレーション ほうほう第2引数をもたせてあげればいいんだなー public functio...

プログラミング

laravel

2016-05-15 16:05:02

Laravelをinstallerでカンタンインストール

Laravelをインストールする時、composerを使って毎回面倒なコマンドをうっていたのですが、インストーラを使ったほうが楽でした(今更感)。 準備 composer MacOS インストーラをグローバルインストールcomposer global require "laravel/installer" パスを通す MacOSならこれでいけると思います。(Winは知りません・・・) export PATH="~/.composer/vendor/bin:$PATH" 新規プロジェクト作成laravel new PROJECTNAME 最新版のLara...

プログラミング

laravel

2016-12-08 16:13:11

PHPで学ぶデザインパターン - Adapter ~APIを変更する~

Adapter パターンとは?API(互換性のないインターフェース)同士を適合させるためのパターンです。既存のコードの変更をせずに、再利用することで新しい機能を提供するというものです。再利用するコードには変更を加えないというのが特徴です。主にコードを再利用するためという後天的理由から成り立っているパターンです。(設計段階でラッパーを用意するパターンはBridgeパターンです。) 構造##TargetClassAPI(インターフェース)の定義をします。 AdapteeClassTargetClassに適合させる既存のAPIを提供します。 AdapterClassAdapteeClassのAPIを...

プログラミング

php adapter デザインパターン

2016-12-04 16:13:57

PHPで学ぶデザインパターン - Singleton ~いくつ作るかを制限~

Singleton パターンとは?インスタンス生成のコストを制御するために、インスタンスが1つしかないことを保証するパターンです。 構造SingletonClasspriavateのコンストラクタとインスタンスを1つだけ返すstaticメソッドと自分自身のインスタンスを保持するためのstatic変数を用意するだけです。 メリットインスタンスへのアクセスを制御できるSingletonパターンが保持する自分自身へのアクセスをprivateに制限しているためクライアント側のコードからのアクセスを制御することができます。 インスタンス数を変更することができる生成されるインスタンスの数を2つ以上に変更す...

プログラミング

デザインパターン php singleton

2016-12-02 16:14:48

PHPで学ぶデザインパターン - Template Method ~処理の穴埋め~

Template Method パターンとは?似たような処理を枠組み(型)としてスーパークラスで定義し、より具体的な処理内容をサブクラスで実装するというパターンです。単なる継承ではなく、具体的な処理内容を抽象メソッドとして定義することで、スーパークラスのメソッドの実装を保証し、クラスの振る舞いをサブクラスによって定義させる継承を利用したパターンです。 構造AbstractClass処理の枠組みを定義するクラスで、枠組みを定義するメソッド(template method)とそれを利用するメソッドを含みます。 ConcreteMethodAbstractClassを継承するサブクラスで、Abstr...

プログラミング

デザインパターン php templatemethod

2016-12-01 16:17:16

PHPで学ぶデザインパターン - オブジェクト指向の基礎

概要今は絶版になっているPHPによるデザインパターン入門を教科書にして、PHPでデザインパターンを学びます。(※Amazonで中古がありますが、定価の倍以上の値段が付いているようです。) 本連載で扱うコードはgithubにまとめていきます。 本来であれば、OOPの先駆けである言語でデザインパターンを学びたいところでしたが、PHP以外の言語の素養がなかったことと、PHPでデザインパターンを解説している本に出会ったことから、PHPでデザインパターンを学んでみることにしました。 参考   PHPによるデザインパターン入門    Do You PHP はてな   Github shimooka/Php...

プログラミング

デザインパターン php oop

2016-10-03 16:18:00

React Tag Autocompleteを使ってサジェスト付きタグ機能を実装する

タグ機能をフルスクラッチで開発しようと思っていたのですが、便利なReact Componentが沢山見つかったのでそちらを利用してみました。 環境 React Babel Browserify React Tag Autocomplete npm 導入npmでReact Tag Autocompleteを導入します。 npm install --save react-tag-autocomplete インクルードの仕方は色々あるかと思いますが、今回の環境ではrequireを使います。 var ReactTags = require('react-tag-autocomplete&#3...

プログラミング

react

2016-10-03 16:18:43

React+marked+highlight

wysiwygエディタではなく、マークダウンエディタをReactでつくってみました。 ソースコードの大部分はReact入門を参考にさせていただきました。 雑なgifサンプルはこちら(:3」∠) 環境 React marked(github)・・・マークダウンパーサー highlight.js(highlightjs.org)・・・シンタックスハイライト bower・・・上記全てのパッケージ管理に使用 準備markedとhighlight.jsをbowerでインストール bower install markedbower install highlightjs それぞれご自分の環境にインストー...

プログラミング

es6 react highlightjs markdown marked

2016-11-23 16:19:22

React+Reduxのディレクトリ構成検討

React+Reduxをアプリケーションに導入しようとするときに、そのディレクトリ構成について悩んでいたのですが、良さ気な記事を見かけたのでまとめてみました。 A Better File Structure For React/Redux Applications Reduxの構成に従うパターンシンプルかつベタなパターンです。SPA開発ならこれが定番でしょうか。 actions/ CommandActions.js UserActions.js components/ Header.js Sidebar.js Command.js Command...

プログラミング

es6 react redux

2017-04-03 16:22:50

React+react-redux+react-router+ES6+webpackで作るSPAホ...

概要Reactで作るSPAの簡易的なボイラープレートをつくりました。最近のフロントエンドには何とかついていくだけで精一杯なため、ソースに自信はありませんが、一応形にはなっていると思いますと言い訳だけしておきます(_) 環境モジュール axios lodash react react-dom react-router react-redux redux redux-promise ビルド周り babel-core babel-loader babel-preset-es-2015 babel-preset-react babel-preset-stage-0 webpack webpack-d...

プログラミング

boilerplate es6 react react-router redux webpack

2016-10-03 16:23:52

Reactでrequireしてたら、[BABEL] Note: The code generato...

ReactでComponentをrequireしてたら見慣れないエラーがでました。 環境 Laravel Elixir Babel Browserify ファイルでかいぞ![BABEL] Note:The code generator has deoptimised the styling of "D:/path/to/hoge.js" as it exceeds the max of "100KB" というエラーなわけですが、babelを使っていてファイルが大きすぎると発生するエラーのようです。 What does “The code generat...

プログラミング

react

2016-10-03 16:24:29

Reactでフォローボタンをつくってみる

つくるものツ◯ッターのフォローボタンをパクったリスペクトしたものをつくります。仕様はだいたい同じだと思いますが、仕組みは異なります。クリックでフォロー/フォロー中とテキストが切り替わる、フォロー中の時にホバーした場合は解除というテキストを出す。これだけです。やや装飾にこだわって全体に無駄なCSSが設定されていますが、その辺は適宜スタイルシートを調整してください。 必要な知識 Reactの導入方法及び簡易的なコンポーネント作成方法 jsxとbabelについての多少の知識と理解 環境 React・・・v15.3.0 babel・・・コンパイラ(jsxもコンパイルしてくれるそうです) html...

プログラミング

react

2016-10-03 16:24:56

Reactで複数のinputを扱うフォームを実装する

Reactでフォームを実装するのはちょっと癖があります。 まずReactのフォームにはcontrolled formとuncontrolled formという2つのパターンがあることを先に理解しておくと良いかもしれません。参考:React ドキュメント 私はまだ理解が及んでいないところも多々ありますが、Reactの実装例が少ないので少しでも刺激になればという感じで記事を公開したいと思います。(もっと楽なやり方とかこうした方がいいといった指摘があると幸いです。) 今回の実装にあたり色々ググったのですが、inputが一つしかない実装例ばかりで結構しんどかったです。。。 やること 複数のinputを...

プログラミング

react

2017-02-25 16:25:24

ReactとReduxでSPAを構築するために参考にした記事

雑メモです。ReactとReduxでSPAで作ろうとした時に参考にしたリポジトリや記事です。 Reduxというアーキテクチャの概念を理解するには、日本語情報がそこそこ充実していました。実際につくりたいモノの参考になりそうなソースを探すには少し手間がかかりました。js仕様の違い、コンパイラやタスクランナーなどビルド環境の違い、Reactそのもののバージョンの違い、関連パッケージのバージョンの違いなどペチパー一筋だった自分には中々しんどかったです。。。 色々調べてみてようやく手を動かせるようになったので、その時参考になったリポジトリや記事をリストアップしておきます。 ※都度更新していきますー 参考...

プログラミング

react redux spa

2017-03-18 16:26:00

redux-formのサーバーサイドバリデーションでpromissをいじってたら「Unc...

概要redux-formでサーバーサイドのバリデーションを実装している時に、promissをいじってredux-formのSubmissionErrorを投げていたらUncaught (in promise) errorと怒られた話です。 解決策returnがなかっただけでした。 修正前 class Categories extends Component { onSubmit(props) { const {createCategory, fetchCategories, reset} = this.props; createCategory(props).then((...

プログラミング

react redux redux-form

2016-10-03 16:30:03

VagrantでVirtualHostを使う

VagrantBoxを作りっぱなしでほったらかしな仮想環境を維持してきたのですが、今更ながらVirtualHostの設定をしました。 やること vagrant-hostupdaterのインストールとVagrantfileの設定 Apacheのconfファイルの設定(VirtualHostの設定) やらないこと vagrantのインストール symbolic linkの設定とか面倒なこと 環境 Vagrant vagrant-hostsupdater・・・今回インストールするvagrantのpluginです。 CentOS6系 Apache Hosts・・・インストールしておくとMACの環境...

プログラミング

vagrant

2017-01-27 16:31:05

Vagrantを1.7.4から1.9.1に一気にアップデートしたら「Bringing up in...

Vagrantのバージョンが1.7.4というちょっと古いバージョンだったのでアップデートしてみたらネットワーク周りでエラーがでてハマった話です。 エラー詳細"/etc/udev/rules.d/70-persistent-net.rules" is not a file ==> default: Configuring and enabling network interfaces... The following SSH command responded with a non-zero exit status. Vagrant assumes that this means the...

プログラミング

apache vagrant virtualbox