むららら

webエンジニア | php | Laravel | まなびのあれこれ | しごとのあ…

むららら

webエンジニア | php | Laravel | まなびのあれこれ | しごとのあれこれ

最近の記事

Laravel学習記録 #036 クラスの定数定義を試す

Laravelでクラスの定数定義を試したものをまとめています。 「定数」の扱いをLaravelの標準機能を使ってconfigに設定することがありますが、configで定数を管理するのはなぁ。。て時の別案です。 専用にクラスを作成し、定数を管理します。 定数クラスを試すクラス作成 app配下にConstsディレクトリを作成し、専用のクラスを配置します。 クラスのメンバ変数として定数を定義します。 /app/Consts/AppConst.php class AppCo

    • Laravel学習記録 #035 JSON返却を学ぶ

      LaravelのJSON返却について学習したものをまとめています。 LaravelでJSON形式で返却するにはいくつかの方法があるとのこと。 JSON返却の仕方jsonメソッドを使用する jsonメソッドを使用することで、配列をJSONへ変換できます。 ドキュメントにも以下のように説明されています。 public function index() { $data = [ 'id' => '1',

      • Laravel学習記録 #034 Hashファサードを学ぶ

        LaravelのHashファサードについて学習したものをまとめています。 Hashファサードについてパスワードの安全な保存や検証を簡単に行うことができる 標準でBcryptおよびArgon2(argon, argon2id)の2種類 Hashファサードのmakeメソッドでパスワードを生成 Hashファサードのcheckメソッドでパスワードを検証 試してみる簡単にパスワードの生成と検証を行なってみます。 設定 /config/hashing.php で行います。

        • Laravel学習記録 #033 routes/console.phpを学ぶ

          Laravelの routes/console.php ついて学習したものをまとめています。 routes/console.phpって何?標準でインストール時にroutes/console.phpがあるが いまいちこのファイル使い道がわからず 今まで見て見ぬふりしてました。 このファイルに定義することで artisanコマンドで呼べる処理を登録できるらしいです。 初期では以下が定義されてます。 Artisan::command('inspire', function

        Laravel学習記録 #036 クラスの定数定義を試す

          Laravel学習記録 #032 Like検索を学ぶ

          LaravelでLike検索について学習したものをまとめています。 Like検索について(Eloquent、クエリビルダ)likeメソッドはないのでwhereメソッドにlikeを指定して使います。 通常のSQL同様「%」がワイルドカードです。 $results = Hoge::where('column', 'like', '%keyword%')->get(); 検索するキーワードにワイルドカード「%」「_」が含まれる場合を考慮するとエスケープが必要ですね。あと「\」

          Laravel学習記録 #032 Like検索を学ぶ

          Laravel学習記録 #031 SQLインジェクション対策を学ぶ

          LaravelでのCSRF対策について学習したものをまとめています。 SQLインジェクションについてSQL文の組み立てに問題がある場合に起こる可能性がある 悪意のあるユーザーにデータベースを不正利用されてしまう データの盗み出し、データベースの変更など被害はさまざま ざっくり攻撃の流れ① 攻撃者がウェブアプリケーションの入力フォームやURLパラメータに不正なSQLクエリを入れます。 ② SQLインジェクションが成功すると、不正なSQLクエリがデータベースに送信されま

          Laravel学習記録 #031 SQLインジェクション対策を学ぶ

          Laravel学習記録 #030 CSRF対策を学ぶ

          LaravelでのCSRF対策について学習したものをまとめています。 CSRFについてログイン機能のあるwebアプリケーションで発生しうる 認証済みユーザーに代わって不正なコマンドを実行するサイバー攻撃 不正なリンクを踏ませることで、利用者が操作したかのようになる 不正な送金やパスワード、ユーザーの変更など身に覚えのないことが行われてしまう。 ざっくり攻撃の流れ①太郎くんがWEBアプリにログインします。 ②認証されてログイン状態になります。 ③悪意のあるユーザーによ

          Laravel学習記録 #030 CSRF対策を学ぶ

          Laravel学習記録 #029 ミドルウェアを学ぶ

          Laravelのミドルウェアについて学習したものをまとめています。 ミドルウェアについてHTTPリクエストを処理する際に前処理や後処理を含める グローバルミドルウェア: 全てのリクエストに適用される。 ルートミドルウェア: 特定のルートにのみ適用される。 グループミドルウェア: グループに適用される。 ミドルウェアを使ってみるグローバルミドルウェアとしてログの出力ミドルウェアを例に作成してみます。 ミドルウェアの作成 php artisan make:middl

          Laravel学習記録 #029 ミドルウェアを学ぶ

          Laravel学習記録 #028 ルーティングを学ぶ

          Laravelのルーティング機能について学習したものをまとめています。 Laravelでのルーティングについてルーティングはルーティングファイルに記述する routesディレクトリ内のweb.phpやapi.phpなどのファイルに定義 web.phpはWebアプリケーション用、api.phpはAPI用のルーティング HTTPメソッドに応じてリクエストを処理 特定のURIへのリクエストを対応するコントローラーのメソッドに紐づけられる ルートに名前を付けることができる

          Laravel学習記録 #028 ルーティングを学ぶ

          Laravel学習記録 #027 独自認証を試して学ぶ

          Laravelの認証機能について学習したものをまとめてます。 Laravel Breezeなどのスターターキットを使わずに独自でログイン機能を作成してみます。 独自のログイン機能を作成してみる独自のと言っても、Laravelに備わった機能の範囲で実現します。 ・認証テーブルをusersではなくaccountsにする ・emailの代わりに、アカウントIDにする ・パスワードはLaravel標準のハッシュを使う とします。 テーブルの作成 Userモデルの代わりとなるAc

          Laravel学習記録 #027 独自認証を試して学ぶ

          Laravel学習記録 #026 認証について学ぶ

          Laravelの認証機能について学習したものをまとめてます。 認証機能についてLaravelの認証機能は「ガード」と「プロバイダ」で構成される ガードは、ユーザーがアプリケーションにアクセスするたびに、そのユーザーが認証されたユーザーであることを確認する方法 プロバイダは、データベースなどの永続ストレージからユーザーを取得する方法 config/auth.phpで設定可能 スターターキットとしてLaravel Breeze、Laravel Jetstreamなどがあ

          Laravel学習記録 #026 認証について学ぶ

          Laravel学習記録 #025 メール送信について学ぶ

          Laravelのメール送信について学習したものをまとめてます。 Laravelでのメール送信標準でSMTPなどを介して電子メールを送信するためのドライバーが多数用意されている config/mail.phpに設定がある メールの内容や送信先などをカスタマイズするためにはMailableクラスを使う メール送信はファサードを介して行う 試してみるローカルの確認のためmailtrapというサービスを使ってメールの確認をします。 .envファイル設定 メールの設定を定

          Laravel学習記録 #025 メール送信について学ぶ

          Laravel学習記録 #024 自動テスト(DBを使ったケース)について学ぶ

          Laravelの自動テストについて学習したものをメモ程度にまとめてます。 今回はDBのデータを使って試す編です。 前提として、 以前の記事でやったように、マイグレーションを行わずDBを複製している程でいきます。 DBを使ったテストケース例メソッドにテストデータ挿入から確認までをまとめる例を考えます。 「インフォメーションテーブルにお知らせが登録されていれば表示する。」 という仕様を例にして作っていきます。 実際のコード まずは、実際のコードを簡単に作成していきましょ

          Laravel学習記録 #024 自動テスト(DBを使ったケース)について学ぶ

          Laravel学習記録 #023 自動テスト(単体テスト作成)について学ぶ

          Laravelの自動テストについて学習したものをメモ程度にまとめてます。 今回はテスト単体テスト作成編です。 テストファイル作成以下のコマンドでテストファイルを作成します。 tests/Featureディレクトリに作成 php artisan make:test HogeTest tests/Unitディレクトリに作成 php artisan make:test HogeTest --unit FeatureとUnitディレクトリの使い分けですが Featureに

          Laravel学習記録 #023 自動テスト(単体テスト作成)について学ぶ

          Laravel学習記録 #022 自動テストの準備について学ぶ

          Laravelの自動テストについて学習したものをメモ程度にまとめてます。 今回はテスト準備編です。 テスト準備Laravelで自動テストやろーってなったらざっくり以下が必要ですよね。 テストDBを作成 設定ファイル用意 テストデータ用意 テストコード用意(別でまとめます。) テストDBを作成 テスト実行時に既存のDBを汚染しないために、テスト用のDBを用意します。ローカルのDBでもドッカーでもなんでも。 今回はphpmyAdmin使って元のDBから構造のみをコピ

          Laravel学習記録 #022 自動テストの準備について学ぶ

          Laravel 学習記録 #021 キャッシュを学ぶ

          キャッシュとは?データを一時保存できる仕組み 保存しておくことで、レスポンスの速度が上がる→パフォーマンスUP 重めの処理の結果、DBから毎回取得するのはちょっとな。。なんて時に役立つやつ Cacheファサードで使える 使ってみるキャッシュの設定 config/cache.phpでデフォルトのキャッシュドライバを指定できます。 .envの値が読まれていますので、確認しましょう。 fileがデフォルトで設定されています。 // config/cache.php'de

          Laravel 学習記録 #021 キャッシュを学ぶ