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
メソッド名や変数名は全体的に良くできていると思います👍
このくらいの規模なら問題ないんですが、早めにコメントを書く癖をつけておくと良いと思います!コメントには分かりにくい部分の説明やなぜそう実装したのかなどを書くのがオススメです。
分かりにくい部分の説明
なぜそう実装したのか
前にも少し話しましたが、クラス名は大文字始まりのキャメルケースで記述するのが一般的です。 また、モデルは単数形でテーブル名は複数形にするのが一般的です。
インスタンス変数だとどこかで値が変更されてしまう可能性があるので、テーブル名のような不変な値はオブジェクト定数を使うのがオススメです。 https://www.php.net/manual/ja/language.oop5.constants.php
モデルは基本的にテーブルに合わせるのがオススメです。 今回の場合は中間テーブルを除いた Article, User, Image, Tag, Thumbnail の5つがあると良いかなと思います。
ここはpublicよりもprotectedの方が良いかなと思います。publicだとコントローラーなどから$pdo経由でデータベースにアクセスできてしまいますが、protectedなら自身と継承したクラスのみに限定できます。
kenshu-back/app/models/model.php
Line 7 in b2b2275
エラーの場合に直接exit()していますが、終了する前に以下のことができるとより良いと思います。
ユーザーのパスワードを現在そのままDBに保存していますが、万が一不正アクセスによってデータが盗まれた場合にパスワードが漏洩してしまいます。 これを防ぐためにパスワードは復号できないようにハッシュ化して保存しておくのが一般的です。 ログインの際にはハッシュ値同士で比較してパスワードの正当性を検証します。
kenshu-back/app/models/user.php
Line 48 in 20f6c08
いくつかの箇所でドキュメントルートの/var/www/htmlを直接記述しているところがありますがサーバーが変わってドキュメントルートが変わった場合に変更が面倒なので 、$_SERVER["DOCUMENT_ROOT"]を使うか定数としてどこかにまとめておくと便利かと思います。(今回はVirtualHostを使っているので$_SERVER["DOCUMENT_ROOT"]は使えないかもしれないです)
/var/www/html
$_SERVER["DOCUMENT_ROOT"]
kenshu-back/html/features/article/upload.php
Line 6 in b2b2275
Webを支える技術で既に読まれたかと思いますがステータスコードは成功系だけでもいろいろあるので、リソースの作成時には201を返すなど適切なステータスコードを設定できるとより良いと思います。 https://developer.mozilla.org/ja/docs/Web/HTTP/Status
The text was updated successfully, but these errors were encountered:
No branches or pull requests
共通
メソッド名や変数名は全体的に良くできていると思います👍
このくらいの規模なら問題ないんですが、早めにコメントを書く癖をつけておくと良いと思います!コメントには
分かりにくい部分の説明
やなぜそう実装したのか
などを書くのがオススメです。前にも少し話しましたが、クラス名は大文字始まりのキャメルケースで記述するのが一般的です。
また、モデルは単数形でテーブル名は複数形にするのが一般的です。
models
インスタンス変数だとどこかで値が変更されてしまう可能性があるので、テーブル名のような不変な値はオブジェクト定数を使うのがオススメです。
https://www.php.net/manual/ja/language.oop5.constants.php
モデルは基本的にテーブルに合わせるのがオススメです。
今回の場合は中間テーブルを除いた Article, User, Image, Tag, Thumbnail の5つがあると良いかなと思います。
ここはpublicよりもprotectedの方が良いかなと思います。publicだとコントローラーなどから$pdo経由でデータベースにアクセスできてしまいますが、protectedなら自身と継承したクラスのみに限定できます。
kenshu-back/app/models/model.php
Line 7 in b2b2275
https://www.php.net/manual/ja/language.oop5.visibility.php
private, protected, publicをうまく使い分けて最小限のアクセス権限で実装できるとより安全で良い設計になります。
エラーの場合に直接exit()していますが、終了する前に以下のことができるとより良いと思います。
ユーザーのパスワードを現在そのままDBに保存していますが、万が一不正アクセスによってデータが盗まれた場合にパスワードが漏洩してしまいます。
これを防ぐためにパスワードは復号できないようにハッシュ化して保存しておくのが一般的です。
ログインの際にはハッシュ値同士で比較してパスワードの正当性を検証します。
kenshu-back/app/models/user.php
Line 48 in 20f6c08
features
いくつかの箇所でドキュメントルートの
/var/www/html
を直接記述しているところがありますがサーバーが変わってドキュメントルートが変わった場合に変更が面倒なので 、$_SERVER["DOCUMENT_ROOT"]
を使うか定数としてどこかにまとめておくと便利かと思います。(今回はVirtualHostを使っているので$_SERVER["DOCUMENT_ROOT"]
は使えないかもしれないです)kenshu-back/html/features/article/upload.php
Line 6 in b2b2275
https://www.php.net/manual/ja/reserved.variables.server.php
Webを支える技術で既に読まれたかと思いますがステータスコードは成功系だけでもいろいろあるので、リソースの作成時には201を返すなど適切なステータスコードを設定できるとより良いと思います。
https://developer.mozilla.org/ja/docs/Web/HTTP/Status
The text was updated successfully, but these errors were encountered: