エンジニアのひよこ_level10

【毎日更新!】新卒2年目エンジニアブログです! プログラムだけじゃなく、マネジメントとかも書いていきたい!

Laravel

【登壇レポ】新卒2年目のLaravel JP Conference初参加レポート【493日目】

Laravel JP Conferenceの記事です 前夜祭感想・参加のすすめ 登壇時のお話 他の登壇・交流のお話(ここ) Laravel JP Conferenceって? conference2019.laravel.jp PHPのフレームワークであるLaravelをメインテーマとした技術カンファレンスです。「Laravel JP…

【登壇レポ】新卒二年目のLaravel JP Conference登壇レポート【492日目】

Laravel JP Conferenceの登壇記事です 前夜祭感想・参加のすすめ 登壇時のお話 (ここ) 他の登壇・交流のお話 Laravel JP Conferenceって? conference2019.laravel.jp PHPのフレームワークであるLaravelをメインテーマとした技術カンファレンスです。「Larav…

【登壇レポ】新卒二年目のLaravel JP Conference前夜祭レポート【491日目】

登壇してたあいつです! 皆さんこんばんは、はじめましての方はじめまして! いつも見てくださってる方、いつもありがとうございます(´;ω;`) Laravel JP Conference では、コントリビュート怖くないよ!って話してた新卒二年目の人です!(わーぱちぱちー…

【Laravel】Collectionのpluckと、クエリビルダのpluckの違い【490日目】

まずお詫びです 今日コード読んでいたら、この記事で書いたこと間違っていました!!! www.nyamucoro.com どう違うかは、該当記事で説明させていただきます。 Collectionのpluckと、クエリビルダのpluck? クエリビルダでgetした後にできるCollectionに対し…

【Laravel】変数にhtmlタグを直書きしそうになった時にはviewを使おう【481日目】

コードを書いていたらタグを直書きそうになった const HTML_TAG = '<p>hogehogefugafuga</p>'; const LONG_TAG = <<<EOL <ol> <li>hoge</li> <li>fuga</li> <li>piyo</li> </ol> EOL; こんな感じの書いてた。 いやいや、それよりもいいのがあるだろと。 bladeに移そう xxx.blade.php <ol> <li>hoge</li> <li>fuga</li> <li>piyo</li> </ol> 呼び出…

【Laravel】jQueryのajaxでpostする時に、トークン書くのが面倒な方へ【480日目】

jQueryでajax使ったpost Laravelは、csrfのトークンをpost処理に入れないと、postをすることが出来ないです。 JavaScript(jQuery)使ってpostするときは、なんとかしてそのトークンを混ぜないといけない。 でも、それを毎回JavaScriptに書くのは面倒・・・ aj…

【Laravel】サービスプロバイダーのファイル名パターン【472日目】

サービスプロバイダーのファイル名迷う インターフェースの実装のためにbindとか、サービスプロバイダーでいろいろやることはあると思いますが、 全部AppServiceProviderのみにするかとか迷いますよね。 で、PHPユーザー会の方に質問したら、わかりやすい説…

【Laravel】遅延プロバイダのキャッシュ対策【467日目】

遅延プロバイダの開発してました サービスプロバイダを新しく定義する開発をしていました。 そのサービスプロバイダは、インターフェースと実装をbind結合させるだけの簡単なものだったのですが・・・ レビューしたら、動かない。コード書いた人はテストして…

【Laravel】stringやnumericのバリデーションのときにnullでエラー出る対策【465日目】

こんなときに使う Laravelのバリデーションのときに 'name' => 'string', 'age' => 'numeric' こんな感じにバリデーションをかけたとき。 これ、値が空にして送信されたら、nullが来ますね。『文字列じゃないよ!』ってエラーが出ます nullableを追加する 'n…

【Laravel】Collectionのpluckのreturn値が異なるパターン【462日目】

まずお詫びです コード読んでいたら、この記事で書いたこと間違っていました!!! 訂正記事書きました。 www.nyamucoro.com 間違い内容 EloquentのCollectionと、SupportのCollectionが異なるのは間違いないですが、 このpluckの違いは大きく差はなく、 Elo…

【Laravel】エディタでFacadeもメソッドジャンプができるようにする【449日目】

ide-helperの導入 ide-helperなるものが作られているので、それを使ってみましょう。 composerで一個追加して、コマンド一つで出来ますよ! github.com composerに追加 composer require barryvdh/laravel-ide-helper これで、ide-helperを作るためのツール…

友人がLaravelコントリビュートしました!!+個人的感想【447日目】

プルリク github.com 内容 以前書いた記事で内容を書いています。 クエリビルダのorderByで、desc ascを誤字した場合、強制的にdescになるものです。 www.nyamucoro.com ことの流れ 私がコードレビューでたまたま仕様見つける 友人達と雑談する 友人が食付き…

【Laravel】エディタやIDEでメソッドジャンプできる理由【441日目】

Laravelでメソッドジャンプなぜ出来るー メソッド名をクリックしたりすると、該当の関数をすぐ開けるとかよくありますよね。 なんで出来るんだろう?コードを追って出来るのもあるけど、 どうやらこういうファイルもあるらしい。 _ide_helper.php composer i…

【Laravel】ヘルパ関数で呼び出されているクラスがわかりやすいコード【440日目】

Laravelの元コード読んでみた github.com この該当コード、ここらへん読むと、aliasが書かれてる。 ヘルパ関数の引数とかの挙動は? github.com ここで処理してるよ。 私がLaravelコントリビュートしたのも、ここのコードの修正だよ。 ぼそっと .oO(昨日、ま…

【テスト】dataProviderで分岐で読み込む関数名をチェックする【439日目】

概要 XxxService public function func($flag) { if($flag) { return $this->user_repository->xxx(); } return $this->user_repository->yyy(); } こんなとき、xxxとyyyが読み込まれる場合をチェックしたい コード public testFunc($flag, $function_name) …

【Laravel】モデルインスタンスのフィールド値を変えたときの対応【434日目】

モデルインスタンスのフィールド値を変えた public function __construct(User $user) { $this->user = $user; } public function updateUser() { $this->user->timestamps = false; // update_atを更新させない $this->user->where('id', '=', $user_id) ->…

【Laravel】コンソールコマンドを実装時に、引数のヘルプを作成する【427日目】

Laravelのコマンドを実装するとき /** * コンソールコマンドの名前と引数、オプション * * @var string */ protected $signature = 'update:user {--user_id}'; /** * コンソールコマンドの説明 * * @var string */ protected $description = ’ユーザー情報…

【Laravel】データベースから日付データ取ったら、文字列でデータが来た時の対応【426日目】

モデルの時間を取ろうとしたら、文字列・・・ User::where('id', 5)->start_at->gte(Carbon::now()); usersテーブルの日付データを使って、時間の比較をしようとしたら、 start_atが文字って言われた(T_T) どうせなら、日付データはCarbonとかで取ってきてほ…

【Laravel】初心者も出来た!Laravelの中身を読んでコントリビュートしよう

Laravelアドベントカレンダー12日目の記事です この記事は、Laravelアドベントカレンダー2018の12日目の記事です。 qiita.com 読者対象 PHP、Laravel初心者。 Laravelにプルリク出してみたい人。 初心者PHPerです! はい!私PHP歴1.5年の初心者です! そんな…

【個人サイト制作記2】Bootstrapを使って簡単TOPページ【420日目】

この記事はなに? 個人サイトを作るときになにをしたかを書いてるよ。 似た手順を踏めば、いつか私のサイトと似たレベルなら作れるかも? 前回 GCPでいろいろ頑張った www.nyamucoro.com 今回のゴール 前回でLaravelのTOPページが出たので、 ここまで。 何を…

【個人サイト制作記1】GCPを使ったLaravel環境構築まで【416日目】

個人サイトを作ってみよう nyamucoro.com ってことで、作ってます! その過程でなにをしたかを少しずつ書いておきます! こんな感じに作ったのかーとか、これじゃまずくね?みたいなご指摘とか。 ほっこり楽しんでもらえると嬉しいです。 私としては、これが…

【Laravel】Modelクラスでクエリビルダが動く理由【409日目】

モデルでクエリビルダ? モデルのクラスって、テーブルのレコードをオブジェクトにしたようなイメージでした。 でも、以下のようなコードを見ることがあると思います。 User::select('id')->first(); あれ?selectってクエリビルダだよな・・・ このUserって…

【Mockery】メソッドチェーンで繋がった関数をモックする【404日目】

こんなとき プログラムで、テストを書こうと思った。 \Validator::make($data, [ 'email' => 'unique:users,email', ])->fails(); これ、Validatorのmakeをモックしたとしても、その後のfailsもモックできていないと、うまくテストできない。 makeとfailsを…

【Mockery】テスト対象のメソッド内で、app関数で値が呼び出されているとき【403日目】

こんなとき class Hoge { public function fuga() { return app('some_class')->someMethod(); } } class SomeClassProvider extends ServiceProvider { public function register() { $this->app->singleton('some_class', function () { return new SomeCl…

【Mockery】テスト対象のメソッド内で、別クラスがnewされてる時のモック【402日目】

こんなとき使う テスト対象の関数で、以下のように新しいインスタンスが作成されてる。 class Hoge { public function fuga() { return new SomeClass()->someMethod(); } } 作成されたSomeClassのsomeMethodを、どうにかしてモックしたい。 overload テスト…

【Laravel】ファサードのモックでCannot redeclare Mockeryが出る対応【399日目】

ファサードをモックしようとした テストを書こうと思って、ファサードでモックしようとした。で、こう書いたら・・・ $mockClass = Mockery::mock(‘Validator’)->shouldReceive(‘make’); エラーがこれ Cannot redeclare Mockery_0_Illuminate_Support_Facade…

Laravelでリポジトリを書くメモ【397日目】

注意 メモです。 こんなふうにコード書いていきたい(願望) 慣れたらサイト作って、それをgithubに上げたい(願望) リポジトリ class XxxRepository implements XxxRepositoryInterface { } リポジトリを呼び出すサービス class XxxService { private $xxx…

DBでcreateするときに、ControllerとServiceとRepositoryに書く内容【395日目】

注意 リポジトリパターンを学び始めの初心者なので、これが当たり前!って感じではないです! 合ってる!間違っている!等ありましたら教えていただけると嬉しいです! 一旦理想を考える 以下、ServiceとRepositoryで呼び出しの理想形を書いてみる。 Service…

【Laravel】Controller等の動作前後に動くプログラム。Middleware【389日目】

こんなときに使う ページ見に来た。 リクエストの情報を使って、コントローラーを動かしたいけど、 コントローラーを動かす前にちょっとデータを操作したい。 Viewの内容を毎回ちょっといじるとか。 毎回コントローラーに同じ処理をするとか面倒だしね。 ど…

【Laravel】ミドルウェアの指定を一個にまとめる【388日目】

こんなときにつかう protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'bindings' => \Illuminate\Routing\Middleware\SubstituteBind…