勉強日記

チラ裏

Laravel

LaravelでFanoutパターン

ユースケース ソリューション Laravel用ライブラリ サンプルアプリケーション 処理の流れ ユースケース あるアプリケーションで発火した1つのイベントを複数のアプリケーションでサブスクライブしたい CQRSとかで ソリューション AWS SNS + AWS SQS の Fanou…

Laravel Shibuya 6 IRTまとめ + 個人的所感・補足等

IRT1 PHP Track 自分の職場はテストを書く文化がないんですが、テストやCIといったツールを会社に広めて導入につなげていったような体験談とか、うかがってみたいです。 IRT2 Laravel Track みんなが思うlaravelのいい!こと、うーん?なところ bladeテンプ…

【没】コントローラアクションでtimetravelするやつ

参考: ミドルウェアでtimetravelするやつ モチベーション つくった 振り返り 12/28追記 セッションが切れちゃうので何らかの対策を講じる必要がある 例: LIFETIMEを1000年くらいにする 参考: ミドルウェアでtimetravelするやつ nextat.co.jp 本格的 というか…

Laravelのテストを高速化した話 (Laravelアドベントカレンダー20191217)

速さこそ有能なのが、 文化の基本法則 (ストレイト・クーガー) この記事について DBのテスト高速化: RefreshDatabaseトレイトのハック 対象読者 TL;DR DBテストの開始には時間がかかりがち 理由 -- migrate:fresh で毎回テーブルをdrop/createしている migra…

Laravel5.5 ログ出力内容をテストする

モック?フェイク? (よくわかってない) github.com モチベーション ログ出力要件に対応する自動テスト ログイン成功時 例外発生時 環境 Laravel 5.5 LTS アプリケーションコード routes/web.php get('/', function () { Log::notice('アクセ…

LaravelでPDOのモックテスト2

【Laravel】DBエラー時のシナリオのテスト - 勉強日記の続き github.com モチベーション DBエラー時の雨の日シナリオのテストをしたい PDOモック作成・セット側

【Laravel】DBエラー時のシナリオのテスト

モック以外の方法では意図的に起こすことが難しいタイプの代替コース(雨の日シナリオ)のテスト PDOをモックする方法を試した 懸念 PDOをモックする方法を試した github.com ConnectionからPDOを引っこ抜き、MockeryでProxy Partial Mockにくるんで再set \PDO…

1つのform要素でGET/POSTのsubmitを共存

TL;DR 経緯 やったこと 考えうる別解 所感 TL;DR formmethod, formaction 属性使え GETリクエストにCSRFトークンが乗ってしまう問題は、2019時点でJSなしではたぶん解決不可能 ajax?なにそれおいしいの? 経緯 「条件を入力して帳票出力する」系の機能で、…

laravel.shibuya #4 IRTまとめ

IRT1 -- Laravel Track フレームワーク規定のもの以外のモジュール構成(名前空間、クラス名)をどうするか レスポンス速度改善 IRT2 -- PHP Track 手が遅い。何をして手が早くなったり業務に対して自信を付けられたりしたか IRT3 -- PHP Track APIのメジャ…

【Laravel6】LazyCollection触った (素数の無限シーケンス)

書いたやつ sieve( $this->sequence() ->filter($this->gte…

【Laravel6】PHPUnitのdataProviderの中でFacade等がそのまま使えるようになってた

テストコード Laravel PHPUnitのdataProviderでFacadeやfactory等のヘルパ関数を使う方法 - Qiita ↑より拝借、若干変更

【Laravel5.8】dataProviderでFacade等を使う/遅延評価でやってみる

背景 テストコード 実行結果 遅延評価じゃない方: ダメ 遅延評価: OK 背景 qiita.com Laravel フレームワークにて、PHPUnitのdataProvider内でFacadeやfactoryが使えないのはよく知られている通り parent::setUp()の中で$this->createApplication()される前…

【Laravel】configをテストするなどした

背景 サンプル テスト そもそもアンチパターンなのでは? 背景 /config/hoge.phpの中身を\Config::get('hoge.path.to.value')って感じに読み取れるアレ /config/配下のPHPはarrayを返しさえすれば何でも書ける Facadeとかは動かないけど 業務で、configの中…

Laravel輪読会 ch3 アプリケーションアーキテクチャ

www.socym.co.jp 3-1 MVCとADR 3-1-1 MVC(Model View Controller) MVCとLaravel Laravelにおけるコントローラ Laravelにおけるモデル トランザクションスクリプトパターン ドメインモデルパターン Laravelにおけるビュー 3-1-2 ADR(Action Domain Responder)…

【composer】アノテーションでfriendとかpackage-privateとかをエミュレートするライブラリを作った

【composer】アノテーションでfriendとかpackage-privateとかをエミュレートするライブラリを作った WandTa/Annotation-Visibility Objective: 非標準のアクセス制御を使いたい Solution: アノテーションでオレオレアクセス制御子を定義する Sample 1. Layer…

JWT認証アプリケーションで認可つきCSVダウンロードを実装した話

背景 困ったこと やったこと サーバ側でCSV生成 フロントエンド側でBlob生成 踏んだ文字化けのパターン 背景 Laravel + Vue.jsアプリケーション JWT認証のSPA つまり、すべてのリクエストのAuthorizationヘッダにJWTを載せている axios.defaults.headers.com…

LINEBotプロジェクト振り返り

プロジェクト概要 LINEBot よかった LINEBotの開発経験を積めた 静的なドキュメントをある程度書いた ERD PlantUMLを使用した メリット 差分管理できる デメリット 編集が面倒くさい 今度はMySQL Workbenchを使って比較検討してみよう ドメインモデル PlantU…

Laravel shibuya #2 IRTメモ

PHP テストコードについて学んだほうが良いのか Laravelはできるけど、PHPのOOPがわからない Laravel コード保守に秩序をもたらすには フルスクラッチノーF/Wべた書きPHPをLaravelに移行したい LaravelのAPI開発何を気をつける フロント PHP テストコードに…

Laravel Meetup Tokyo Vol.12 参加した

メモ LaravelTokyo Eloquentに別れを告げるタイミングについて考えた / 吉田あひる ORM x Active Record x Domain Model 【補】Domain Modelではなくないか Domain LayerのことをDomain Modelって言ってるのかな Eloquentの功罪 功 高機能 罪 クエリ最適化 s…

【Laradock】【Windows】workspaceコンテナの操作で "the input device is not a TTY" と怒られるのを回避する方法

環境 現象 回避方法 根本的解決方法 環境 Windows10 Docker Desktop for Windows Laradock cmdでもPowerShellでもないshell Emacs Shell GitBash 現象 GitBashやEmacs Shellなどの上で下記コマンドを実行する docker-compose exec --user=laradock workspace…

【LINE@ Laravel】 コールバックリクエストをモックして、LINEサーバと切り離してテストする

環境 LINE Botのおおまかなしくみ テストしたい 署名検証部分でエラー出る 署名検証部分をモックする 課題 検索用 LINEのBotを作るにあたり、テストで躓いたのでメモ 環境 laravel/framework 5.8.* linecorp/line-bot-sdk ^3.10 LINE Botのおおまかなしくみ …

Laravel.shibuya #1参加した

Laravel.shibuya #1 無事に終わりました!!参加して頂いた皆様ありがとうございました!!ペヤングソース焼きそば持って帰った方はしっかり食べて下さい〜!お疲れ様でした〜!! #laravelshibuya pic.twitter.com/BYn263R3wl— えんどぅー (@Fendo181) May …

JWT認証のお勉強

[秋葉原] ゆるふわLaravel勉強会 (認証/JWT) JWT担当資料 JWT認証の特徴 中身を覗ける例 JWTの仕様をちょっと追ってみる JWTヘッダ 例 エンコード済JWTヘッダ JWTクレームセット クレーム クレーム名 クレーム値 例 JWTペイロード エンコード済JWTペイロード…

docker-composeのenvの適用優先度

調査結果 laradockの.envは、同名の環境変数を複数設定した場合、後に設定したもので上書きされる 動機 laradockを使用している laradockの.envファイルをカスタマイズしている laradockがバージョンアップし、docker-compose.ymlとenv-exampleに更新があっ…

Laravel/Collection 勉強会資料 関数型プログラミングについて語る

weeyble-php.connpass.com 3/25勉強会資料 そもそもCollectionって何 配列データ操作の比較 手続き型 for文使う例 「わちゃっ」としている例 ステップ分けた例 関数型 (PHP組み込み) 高階関数 array_map array_reduce array_filter 実装例 一時変数あり 一時…

Eloquent ORM非依存のfactory作った

LaravelのfactoryがEloquent ORM依存で、自前のDTOクラスに使えなくて困ったので自前ファクトリを作った コード app/Util/Fabrik.php

Laravel/認証周りのコード追う

JWT認証ミドルウェア定義部分 JWT認証ミドルウェア 認証ファサードクラス JWTAuth インタフェースAuthInterface, 実装クラスIlluminateAuthAdapter \JWTAuth::authenticate($token)で自前のUserクラスのオブジェクトが返ってくるようにしたい \Auth::user()…

Laravel/JWTを捏造してテストする

JWTAuthライブラリ JWT: JSON Web Tokenを捏造してテストする テスト アプリケーション JWT: JSON Web Token JWTAuthライブラリ tymondesigns/jwt-auth JWT: JSON Web Tokenを捏造してテストする APIの機能テストにおいて、 「所持しているJWTトークンが認証…

Emacs + Laradock + Xdebug PHPステップ実行設定

環境 Xdebug 有効化 設定 geben 導入 つかう 環境 emacs 25.2 laradock環境 Xdebug PHPをステップ実行したりブレーク貼ったりできる 有効化 laradockではフラグひとつでxdebugが入る laradock/.env ... WORKSPACE_INSTALL_XDEBUG=true ... PHP_FPM_INSTALL_X…

localstackでS3をモックした

環境 localstack docker-compose.yml localstack storage_init localstack利用側のPHPコード Storageファサードでs3使う src/config/filesystems.php ハマりどころ 環境 laradock Laravel 5.7 localstack 公式 AWSのサービスをモックしてくれる有能 S3とか G…