no_name-no-***

ぷろぐらみんぐ的なことと趣味的な日常を少々

day8

 土日挟むと完全にあかん

前の自分なら完全に放置を再開していただろう。

Bladeのdirectiveを拡張したけど使われないっぽい

いい勉強になったからよし。

@以下の引数をごにょっているんだけど本家のやり方って結構めんどいやり方してた。

最近よくLaravelのコアな箇所を読むんだけど色々と参考になる。

PHPとしても一プログラミング言語としても  

実際引数は文字列として認識されるけどもBlade側では使用できる変数が文字列になっているだけだからそのまま文字列を返却しつつ期待通りになるように書いてあげるだけ。

あとはなんだ。微妙なハマりポイントがLaravelのCollection操作で使うeachだ。

こやつコールバックの引数が複数になると直感的な入り方してくれなくてくそやんって思ったのは内緒。俺がくそなだけだと思うようにした。

ちなみに@以下の引数を実処理側で展開したい場合は、オススメしないけどevalがいい。

オススメしないのは、任意の悪意あるコードも強制的にPHPとして動作せることが可能なため

Generatorをごにょる

PHPには、Generatorがデフォで存在してて今回は、こやつを使って処理を書いた。

yield自体は、jsで触ったことあるしまぁー色々とみかける単語でもあるしイメージも持っているからどんなんかは、理解できた。

がGeneratorを使って対象レコードが存在したら処理続行 対象レコードが存在したら処理終了

って感じの処理だったわけです。

単純に以下のように使えるわけでございます。

<?php
declare(strict_types=1);

class Sample

    public function example(int $userId): bool
    {
        $generator = $this->generatorRecords($userId);
        if (is_null($generator->current())) {
            // 処理
        } else {
            // 処理
            return false;
        }
        return true;
    }

   private function generatorRecords(int $userId): Generator
   {
        // 取得処理
        while(!is_null($users)) {
            yield $users;
        }
   }

的な

実際にはこれとは違う形で書きましたがこれにプラスして再帰呼び出しも加えひとまず完了としました。

なんかこうもっっっっっと良さげな書き方があるとおもうんだ。

phpでタイプヒンティングを使い、型を意識して書くようになってからプログラミングが楽しくなってきた。

typescriptとHanamiで書いているのも進捗が悪いけども ※Lumenと悩んできたけども。

Reactともう少し戯れてjsの型にもなれ関数型を意識した書き方がそれとなくできるようになりたいその際はRustをもう一度勉強する。

Rustかっこいいじゃん名前。

いつになったらroutes/web.phpを分割して管理するようになるのだろう。

たぶん分割して管理した方が保守運用にも向いている気がする。