Post

laravel

2017-09-25 23:08:23

OSSをはじめてみた話

概要 Rubel 数ヶ月前くらいからOSSとしてソースコードをgithubに公開しながらCMSを開発しています。何の目的で始めたかについてダラダラとかきます。 OSSとは OSSの定義についてWikipediaを参照してみます。 オープンソースソフトウェア(英: Open-source software, 略称: OSS)とは、ソースコードが利用可能で、著作権保持者がどんな目的のためでもソフトウェアを、学習、変更、そして配布するための権利を提供するというライセンスに基づいたソフトウェアである[1]。オープンソースソフトウェアは何れも共同で開発されている。オープンソースソフトウェアは最も著名な...

ポエム

oss github cms laravel react

2017-09-26 20:59:26

FormRequestのrulesメソッ...

複数のフォームがある状況で、「フォームリクエストのクラスは一つに絞って、rulesメソッド内で分岐したい」なんて思う日があるかもしれません。(私はRest APIつくっているときにありました。) 案外同じことを考えている人がいたようで、リファレンス漁るよりも先に結果が出ました。 Multiple Forms, Multiple Requests? FormRequestのrulesメソッド内でゴニョゴニョします。 /** * Get the validation rules that apply to the request. * * @return array...

プログラミング

laravel

2017-09-26 21:03:53

Laravel リポジトリパターン...

DB操作に関連するスマートな実装パターンであるリポジトリパターンについてかいてみようかと思います。 リポジトリパターンとは データの操作に関連するロジックをビジネスロジックから切り離し、抽象化したレイヤに任せることで保守や拡張性を高めるパターンです。(必ずしもDB操作のロジックのみを留めるパターンというわけではないそうです。) Laravelにリポジトリパターンを取り入れることで、 テストがしやすくなる DBエンジンの変更に対応しやすくなる データ操作のロジックが1箇所にまとまり、管理しやすくなる といったメリットを得ることができます。 リポジトリパターンの実装 Modelと同じ単位でRe...

ポエム

laravel repositorypattern

2017-09-26 21:07:08

Laravel+React+Supera...

表題の通りです。Laravel+React+SuperagentでAjaxなフォームを実装します。 AjaxライブラリとしてSuperagentを採用しているのは、jQueryから脱却したいのと、jQueryのAjaxよりも分かりやすかったからです。プロミスとかいう難しい概念があるらしいですが、それは横に置いておいてもとりあえずは使えそうです。 Web標準の観点からするとFetchAPIがイケてるらしいのですが、各ブラウザベンダーの実装にばらつきがあるようなので避けました。 フロントエンドってつくづくカオスだなーとボヤキつつも話を進めていきたいと想います。 やること LaravelでAPIを...

プログラミング

laravel react ajax superagent

2017-09-26 21:08:38

Laravel5.2にNotificat...

Laravel5.3がリリースされましたが、あえてLaravel5.2でNotificationを使う話です。 環境 Laravel5.2(または5.1) Notificationをインストール Notificationとはナンゾヤ? Laravel.com - NotificaionsLaravel Notification Channel Laravel5.3以前では通知の管理などはEventとListenerを活用することで何とかゴニョゴニョやっていたかと思います。 それがNotificationによって、より便利に通知管理を行えるようになりました。※名前の通り、通知に特化したものな...

プログラミング

laravel

2017-09-26 21:13:47

Laravel5.3で自作artisa...

今携わっているプロジェクトでRepositoryパターンを導入しているのですが、Repository関連のファイルを自動で生成するコマンドがあったら便利だなと思い、作ってみました。 コマンドを生成 php artisan make:command Repository /CommandsにRespository.phpというコマンド用のファイルが生成されます。 コマンドファイルを編集 Repository.phpを編集します。handleメソッド部分はCreating file using Artisan Command in Laravel 5.1のコードをお借りして、少しカスタマイズしまし...

プログラミング

laravel repositorypattern artisan

2017-10-01 15:56:31

Laravel5.4でsqliteを使...

概要 Laravel5.4でsqliteの使ってテストをかく準備をします。 前提 Laravelの基本 マイグレーションファイルの用意 phpunit.xmlを編集 以下3行を追加します。 sqliteのインメモリ機能を使います。 <php> <env name="APP_ENV" value="testing"/> <env name="CACHE_DRIVER" value="array"/> <env name="SESSION_DRIVER" value="array"/>...

プログラミング

laravel sqlite test

2017-09-26 21:15:10

Laravelでajaxの際にCsrf...

Laravel+React+SuperagentでAjaxを実装していたら、500エラーがでて、「いやいやまさかTokenじゃないっしょ〜 そんなの知ってるもん〜」と捻くれていたら、CsrfTokenが原因でした。 解決方法 ヘッダにTokenを含める方法もありますが、ハードコーディング感があるので、VerifyCsrfToken.phpで該当URLを除外する方法がスマートだと思うのでそちらを記載します。 <?php namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfT...

プログラミング

ajax laravel react superagent

2017-09-26 21:15:56

LaravelでCORS対応

概要 LaravelでCORS(Cross-Origin Resource Sharing)に対応する方法をまとめました。クライアントサイドはReact, axiosを使用します。前提知識としては、CORSのリクエスト形態、シンプルなリクエスト方法と、preflightを使用するリクエスト方法の違いを抑えておけば良いかと思います。RESTfulAPIの場合は基本的にはpreflightを使用するリクエスト形式かと思います。この記事では、preflightを使用するリクエストに対応する例を取り上げます。 環境 CORSなので当たり前ですが、apiとwebでドメインを用意しています。 api.ho...

プログラミング

laravel cors

2017-09-26 21:16:56

LaravelでEventを使う

ユーザー登録時や退会時など特定のイベントの時に発火させたいメソッドを管理したい時はイベントリスナーを使うと便利です。 今回は基本的なイベントとリスナーの定義の仕方についてはすっ飛ばし、一つのリスナークラスで複数のイベントを設定できるイベント購読について扱います。 環境 laravel5.2 ディレクトリ app\Events・・・イベント名=クラス名としたクラスを置く(厳密な命名規則はないです) app\Listeners・・・イベントごとの処理(リスナー)とsubscribeメソッドの実装(後述)したクラスを置く app\Providers・・・イベント購読で使用するリスナーを登録する...

プログラミング

laravel