We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
現状基本的にBlogsModelなどから取得する「インスタンス」はfetchした行なので、記述されているデータが自明でないことが多く、見通しがよく有りません。
例として、以下は「ランダムに1件ブログを取得する」メソッドですが、この返り値はblogsテーブルの1行配列ですが、コードからどのようなカラムがあるのかは類推できません。
blogs
blog/app/src/Model/BlogsModel.php
Lines 215 to 224 in 22e993c
一般的に、カラムに対応するプロパティをクラスとして書き換えることで見通しがよくなります。
ただ、既存コードが配列に強く依存しているため、全体の書き換えはかなりの工数がかかります。
ArrayInterface、およびIteratableを実装した配列としてアクセス可能なクラスを実装し、各種返り値を可能なタイミングでそれに差し替え、順次型をつけて見通しがよくするステップをふむことで、コードを長期間フリーズせずに順次移行ができるかなと考えております。
移行中はArrayとRowクラス混在してしまうのは難点ですが、とりあえずその場合でもArrayとしてあつかって書いておいてもらえれば動くには動くのと、現状のテーブル数は13なので作るだけ作るのは可能と考えております。
とりあえずビジネスロジックはかえず、要所にアノテーションを追記する形で静的解析をきかせてバグを減らし、開発の省力化ができます。
なお、典型的にはModelという命名が多いですが、これはすでにつかわれているので、Model\Row\BlogRowなどの命名になる想定です。
Model
Model\Row\BlogRow
現状、暗黙になっている以下のようなコードが
Lines 354 to 363 in 2c92beb
public function switchTemplate(BlogRow $blog_template, string $blog_id) { $device_type = $blog_template->device_type; // device_typeはBlogRow内でintと型定義
などと型付けができるようになることを想定しています。
たとえば、以下のようなものは当座そのまま配列にしておく予定です。(データ量が大きくなるかもしれないですし、しぼりこんでいるものを広げると、なにか悪影響があるかもしれませんので)
Lines 182 to 193 in 2c92beb
The text was updated successfully, but these errors were encountered:
@uzulla 可能な箇所から、明確な型付けを強制する様にお願いします。
Sorry, something went wrong.
@fc2dev ご検討ありがとうございます、では折を見て実行したいと思います。
add new User model. fc2blog#267 fc2blog#84
af5c28b
User、PasswordResetToken、EmailLoginTokenにて実装をしてみた。 問題がなければこのような形で置換していく。
uzulla
No branches or pull requests
現状基本的にBlogsModelなどから取得する「インスタンス」はfetchした行なので、記述されているデータが自明でないことが多く、見通しがよく有りません。
例として、以下は「ランダムに1件ブログを取得する」メソッドですが、この返り値は
blogs
テーブルの1行配列ですが、コードからどのようなカラムがあるのかは類推できません。blog/app/src/Model/BlogsModel.php
Lines 215 to 224 in 22e993c
一般的に、カラムに対応するプロパティをクラスとして書き換えることで見通しがよくなります。
ただ、既存コードが配列に強く依存しているため、全体の書き換えはかなりの工数がかかります。
提案
ArrayInterface、およびIteratableを実装した配列としてアクセス可能なクラスを実装し、各種返り値を可能なタイミングでそれに差し替え、順次型をつけて見通しがよくするステップをふむことで、コードを長期間フリーズせずに順次移行ができるかなと考えております。
移行中はArrayとRowクラス混在してしまうのは難点ですが、とりあえずその場合でもArrayとしてあつかって書いておいてもらえれば動くには動くのと、現状のテーブル数は13なので作るだけ作るのは可能と考えております。
とりあえずビジネスロジックはかえず、要所にアノテーションを追記する形で静的解析をきかせてバグを減らし、開発の省力化ができます。
なお、典型的には
Model
という命名が多いですが、これはすでにつかわれているので、Model\Row\BlogRow
などの命名になる想定です。改修後は
現状、暗黙になっている以下のようなコードが
blog/app/src/Model/BlogsModel.php
Lines 354 to 363 in 2c92beb
などと型付けができるようになることを想定しています。
一部はそのまま配列にする予定です
たとえば、以下のようなものは当座そのまま配列にしておく予定です。(データ量が大きくなるかもしれないですし、しぼりこんでいるものを広げると、なにか悪影響があるかもしれませんので)
blog/app/src/Model/BlogsModel.php
Lines 182 to 193 in 2c92beb
The text was updated successfully, but these errors were encountered: