PHP
RAII: Resource Acquisition Is Initialization PHPのデストラクタ PHPでRAIIを試す RAII: Resource Acquisition Is Initialization 「リソース取得は初期化時に」 C++のSTLコンテナやスマートポインタが則っている概念 一般にLoan Patternと呼ばれるものの…
この組み合わせの資料が見当たらず、若干詰まったのでメモ書き サンプルリポジトリ リモートデバッグを動かすまで 俯瞰図 WSL2のIPアドレス取得 Xdebugの設定 リモートデバッグが動くことを確認 ストレスなくデバッグを進めるための設定 geben-path-mappings…
速さこそ有能なのが、 文化の基本法則 (ストレイト・クーガー) この記事について DBのテスト高速化: RefreshDatabaseトレイトのハック 対象読者 TL;DR DBテストの開始には時間がかかりがち 理由 -- migrate:fresh で毎回テーブルをdrop/createしている migra…
きっかけ 作ったイメージ Dockerfile 学び きっかけ https://packagist.org/packages/phan/phan こーゆーのでいいんだよ、こーゆーので… pic.twitter.com/PjBb3bq1PS— っどさん (@tadsan) 2019年11月29日 @tadsanさんがphan/phanのイメージを作っていた 初め…
動線の存在のアサート phpunit_constraints/HtmlAssertions.php at master · wand2016/phpunit_constraints · GitHub 否定形のアサート phpunit_constraints/HtmlAssertions.php at master · wand2016/phpunit_constraints · GitHub モチベーション 画面遷移…
Constraint phpunit_constraints/HtmlNodeAttribute.php at master · wand2016/phpunit_constraints · GitHub Assertion phpunit_constraints/HtmlAssertions.php at master · wand2016/phpunit_constraints · GitHub モチベーション HTML要素のアトリビュー…
書いたやつ sieve( $this->sequence() ->filter($this->gte…
assertTrue(true); } public function dataProvider(): array { return [ [ 1 ],…
テストコード Laravel PHPUnitのdataProviderでFacadeやfactory等のヘルパ関数を使う方法 - Qiita ↑より拝借、若干変更
背景 テストコード 実行結果 遅延評価じゃない方: ダメ 遅延評価: OK 背景 qiita.com Laravel フレームワークにて、PHPUnitのdataProvider内でFacadeやfactoryが使えないのはよく知られている通り parent::setUp()の中で$this->createApplication()される前…
8/31に2月を作ろうとしたら3月になった例 どうしてこうなった 2019年8月31日に実行 Carbon::create(...$args)は大丈夫 Carbon::createFromFormat($format, $datetimeStr)が危険 回避方法 -- Ymd使え 8/31に2月を作ろうとしたら3月になった例 3月!? どうし…
Added BEAR.Sunday contributors https://t.co/1xzI0ign2M @wand2016 https://t.co/RDW0BEFlPY Arigato! pic.twitter.com/2BoB8b2EOG— BEAR.Sunday (@BEARSunday) August 28, 2019 アイコンで草生える issue github.com PR github.com 反省点 静的解析を回さ…
martinfowler.com Splitting the Phases of Calculation and Formatting Separated Into Two Files 英語 Splitting the Phases of Calculation and Formatting 1/3 でコード構造化した結果からスタート repos
martinfowler.com The Starting Point 【補】テスト書く Decomposing the statement Function Refactoring 2nd EditionはJavaScriptで書かれている コードを読める人口がもっとも多いであろう、という理由から 「JavaScriptのリファクタリングの本」ではない…
【composer】アノテーションでfriendとかpackage-privateとかをエミュレートするライブラリを作った WandTa/Annotation-Visibility Objective: 非標準のアクセス制御を使いたい Solution: アノテーションでオレオレアクセス制御子を定義する Sample 1. Layer…
IRT 1 -- PHP traitについて いつ使う・使わない テストで使いました 認証が必要なテストで、認証コードとテストデータだけtrait化 プロダクトコードではオブジェクトの委譲のほうがうまくいった 特定のメソッドだけmockしたいときに、無名クラスを普通に注…
背景 困ったこと やったこと サーバ側でCSV生成 フロントエンド側でBlob生成 踏んだ文字化けのパターン 背景 Laravel + Vue.jsアプリケーション JWT認証のSPA つまり、すべてのリクエストのAuthorizationヘッダにJWTを載せている axios.defaults.headers.com…
メモ LaravelTokyo Eloquentに別れを告げるタイミングについて考えた / 吉田あひる ORM x Active Record x Domain Model 【補】Domain Modelではなくないか Domain LayerのことをDomain Modelって言ってるのかな Eloquentの功罪 功 高機能 罪 クエリ最適化 s…
TL;DR 動機 構成 phpDocumentor実行、エラー出る alpineベースだとうまく動かないよう debianベースのcomposerイメージ作る phpDocumentorさえ使えればいい場合 TL;DR alpineベースだとうまく動かないのでdebianベース等使え 動機 composerとかがなかった太…
個人開発とチーム開発の違い ブルックスの法則 GitHubを使った課題の「見える化」 Issueの作成 Issueの基本的な書き方 新機能の書き方の例 不具合修正の書き方の例 フォーマット Issueの発展的な使い方 Assign機能 Label機能 Milestone機能 コメント機能 Git…
なぜ継続的インテグレーションが必要なのか 継続的インテグレーションとは CIによって得られるもの Economics of Test Automation -- 自動化テストの経済性 CIツールとは CIツールの種類、選び方 CIを利用してみる Travis CIとは Travis CIの導入 Travis CI…
なぜツールを使うのか PHP_CodeSniffer: コーディング規約チェックツール 使い方 実践的なPHP CSの利用 PHPStan: コード解析ツール 使い方 実践的なPHPStanの利用 なぜツールを使うのか 三大美徳が1つ、怠慢 再現可能性 人間は、昨日の自分のコードが他人の…
コードレビューの必要性 Pull Requestを利用したコードレビュー Pull Requestとは? GitHub Flow Git Flow Pull Requestをつくってみよう Pull Requestの作り方 title description inline comment Pull Requestのコードレビューの流れ コードレビューをしよ…
weeyble-php.connpass.com 3/25勉強会資料 そもそもCollectionって何 配列データ操作の比較 手続き型 for文使う例 「わちゃっ」としている例 ステップ分けた例 関数型 (PHP組み込み) 高階関数 array_map array_reduce array_filter 実装例 一時変数あり 一時…
LaravelのfactoryがEloquent ORM依存で、自前のDTOクラスに使えなくて困ったので自前ファクトリを作った コード app/Util/Fabrik.php
JWT認証ミドルウェア定義部分 JWT認証ミドルウェア 認証ファサードクラス JWTAuth インタフェースAuthInterface, 実装クラスIlluminateAuthAdapter \JWTAuth::authenticate($token)で自前のUserクラスのオブジェクトが返ってくるようにしたい \Auth::user()…
JWTAuthライブラリ JWT: JSON Web Tokenを捏造してテストする テスト アプリケーション JWT: JSON Web Token JWTAuthライブラリ tymondesigns/jwt-auth JWT: JSON Web Tokenを捏造してテストする APIの機能テストにおいて、 「所持しているJWTトークンが認証…
環境 init.el flycheckの設定部分 phpcs phpstan が……駄目っ……! 環境 Emacs 25.2 init.el ;; require前に書く必要があるらしい (setq php-mode-coding-style 'psr2) (when (require 'php-mode nil t) ;; 拡張子phpのファイルを開いたときにphp-modeに。 ;; …
CakePHP環境つくるやつ つくるだけなので要所のみ Dockerfile sedのデリミタは/以外も使えるんですね composer早くするやつも入れた FROM php:7.2-apache ENV APACHE_DOCUMENT_ROOT /var/www/html/app/webroot RUN sed -ri -e 's!/var/www/html!${APACHE_DOC…
環境 Xdebug 有効化 設定 geben 導入 つかう 環境 emacs 25.2 laradock環境 Xdebug PHPをステップ実行したりブレーク貼ったりできる 有効化 laradockではフラグひとつでxdebugが入る laradock/.env ... WORKSPACE_INSTALL_XDEBUG=true ... PHP_FPM_INSTALL_X…