【2023最新】「laravel」のおすすめ本!人気ランキング
2017年刊行後大好評の『PHPフレームワークLaravel入門』が2019年9月リリースのバージョン6に対応した改訂版! PHPフレームワークのロングセラー定番解説書が、新バージョン対応で改訂! 本書は、Laravelのインストールから、フレームワークの中心になるModel-View-Controller(MVC)の使い方、開発に役立つ各種機能をわかりやすく解説した入門書です。新しいディレクティブ(@csrf/@error)、バリデーションルール(増補解説+自作)、Bootstrapによるぺジネーションリンク、Auth(Laravel/uiパッケージ)の使い方などの項目を追加しました! Chapter 1 Laravelを準備する 1-1 PHPフレームワークとLaravel PHP開発の問題点 フレームワークの導入 Laravelの特徴 Laravelのサイト Composerについて Laravelをインストールする Laravelのバージョンについて 1-2 Laravelを使ってみる Laravel開発の手順 プロジェクトの作成 アプリケーションを実行する XAMPPにデプロイする 指定のアドレスで公開する Chapter 2 ルーティングとコントローラ 2-1 ルーティング アプリケーションの構成 「app」フォルダについて ルーティングと「routes」フォルダ ルート情報の記述 トップページのルート情報 ルート情報を追加する HTMLを出力する ヒアドキュメントを使う ルートパラメータの利用 必須パラメータと任意パラメータ 2-2 コントローラの利用 MVCとコントローラ コントローラの作成 HelloController.phpをチェックする アクションを追加する ルートパラメータの利用 複数アクションの利用 シングルアクションコントローラ リクエストとレスポンス RequestおよびResponse Chapter 3 ビューとテンプレート 3-1 PHPテンプレートの利用 ビューについて PHPテンプレートを作る ルートの設定でテンプレートを表示する コントローラでテンプレートを使う 値をテンプレートに渡す ルートパラメータをテンプレートに渡す クエリー文字列の利用 3-2 Bladeテンプレートを使う Bladeを使う フォームを利用する CSRF対策について アクションの用意 POSTのルート設定 3-3 Bladeの構文 値の表示 @ifディレクティブ 特殊なディレクティブ 繰り返しのディレクティブ @break と @continue $loopによるループ変数 @phpディレクティブについて 3-4 レイアウトの作成 レイアウトの定義と継承 @sectionと@yield ベースレイアウトを作成する 継承レイアウトの作成 コンポーネントについて コンポーネントを作成する サブビューについて @eachによるコレクションビュー 3-5 サービスとビューコンポーザ ビューコンポーザとは? サービスとサービスプロバイダ HelloServiceProviderを作成する クロージャでコンポーザ処理を作る サービスプロバイダの登録 ビューコンポーザを利用する ビューコンポーザクラスの作成 Chapter 4 リクエスト・レスポンスを補完する 4-1 ミドルウェアの利用 ミドルウェアとは? ミドルウェアを作成する HelloMiddlewareクラス HelloMiddlewareを修正する ミドルウェアの実行 ビューとコントローラの修正 リクエストとレスポンスの流れ レスポンスを操作する グローバルミドルウェア ミドルウェアのグループ登録 4-2 バリデーション ユーザー入力時の問題 バリデーションを利用する バリデーションの基本処理 エラーメッセージと値の保持 フィールドごとにエラーを表示 @errorディレクティブを使う バリデーションの検証ルール 4-3 バリデーションをカスタマイズする フォームリクエストについて フォームリクエストの作成 HelloRequestクラスの基本コード メッセージのカスタマイズ バリデータを作成する クエリー文字列にバリデータを適用する エラーメッセージのカスタマイズ 条件に応じてルールを追加する オリジナルバリデータの作成 HelloValidatorを作成する HelloValidatorのルールを使用する Validator::extendを利用する バリデーションルールを作る Myruleを使ってみる 4-4 その他のリクエスト・レスポンス処理 CSRF対策とVerifyCsrfToken クッキーを読み書きする リダイレクトについて Chapter 5 データベースの利用 5-1 データベースを準備する モデルとデータベース Laravelのアプローチ SQLiteデータベースを準備する DB Browser for SQLiteの導入 DB Browserのインストール DB Browserを起動する データベースファイルを作る テーブルを作成する SQL利用の場合 ダミーのレコードを追加する DB利用のための手続き SQLiteの設定 MySQL/PostgreSQLの設定 .envの環境変数について 5-2 DBクラスの利用 DBクラスとは? パラメータ結合の利用 DB::insertによるレコード作成 DB::updateによる更新 DB::deleteによる削除 SQLクエリがすべて? 5-3 クエリビルダ クエリビルダとは? DB::tableとget 指定したIDのレコードを得る 演算記号を指定した検索 whereとorWhere whereRawによる条件検索 並び順を指定する「orderBy」 offsetとlimit insertによるレコード追加 updateによるレコード更新 deleteによるレコード削除 5-4 マイグレーションとシーディング マイグレーションとは? マイグレーションファイルの生成 マイグレーション処理について テーブル生成の処理 テーブルの削除処理 マイグレーションを試す シーディングについて シーダーファイルの作成 シーディング処理について シーダーファイルの登録 シーディングを実行する Chapter 6 Eloquent ORM 6-1 Eloquentの基本 ORMとは? モデルを作成する モデルクラスのソースコード PersonControllerを作成する index.blade.phpを作成する Personモデルで全レコードを得る Personクラスにメソッドを追加する IDによる検索 6-2 検索とスコープ whereによる検索 スコープの利用 ローカルスコープについて nameをスコープにする スコープを組み合わせる グローバルスコープについて グローバルスコープを作成する Scopeクラスを作成する ScopePersonクラスを作る 6-3 モデルの保存・更新・削除 モデルの新規保存 モデルを修正する add.blade.phpを作成する addおよびcreateアクションを追記する 保存処理の流れ モデルを更新する editおよびupdateアクションを追記する モデルの削除 モデルとDBクラスの共通性 6-4 モデルのリレーション モデルのリレーションとは? boardsテーブルを利用する マイグレーションの作成 モデルの作成 BoardControllerの作成 テンプレートの作成 2つのテーブルの関係について has One結合 has Many結合 belongs To結合 関連レコードの有無 withによるEagerローディング Chapter 7 RESTfulサービス/セッション/ペジネーション/認証/テスト 7-1 リソースコントローラとRESTful RESTfulとは? マイグレーションの作成 モデルの作成 シードの作成 シードの実行 RESTコントローラの作成 リソースコントローラについて indexおよびshowを作成する レコードの追加 フォームを/hello/restに埋め込む RESTfulサービスにするために 7-2 セッション セッションについて セッションを利用する セッション利用アクションを作る データベースをセッションで使う セッションの保存先をデータベースに変更する セッション用マイグレーションの作成 7-3 ペジネーション ペジネーションとは? DBクラスとsimplePaginate ページの表示を作成する DBクラスとモデル ソート順を変更する paginateメソッドの利用 リンクのテンプレートを用意する Bootstrapの利用について 7-4 ユーザー認証 認証機能とAuth Authをセットアップする Userモデルクラスについて /helloでログインをチェックする Authの認証関係ページ 特定ページの保護 ログイン処理の実装 7-5 ユニットテスト ユニットテストとPHPUnit テスト用データベースの準備 ダミーレコードの用意 ユニットテストのスクリプト作成 一般的な値のテスト 指定アドレスにアクセスする データベースをテストする ユニットテスト以外のテスト 7-6 今後の学習 フロントエンドとの連携 サービス関連 キューとジョブおよびタスク Artisanコマンドの開発
デジタルハリウッドの講師が教えるLaravel入門書の登場! デジタルハリウッド・ジーズアカデミー人気講師直伝! PHPの人気フレームワークLaravel(ララベル)で Webアプリ開発に挑戦しよう! 【本書の概要】 デジタルハリウッド・ジーズアカデミーなどでLaravel講座をもつ著者が、多くの受講生の声を反映して執筆したLaravelの入門書です。 サンプル作りを通して、LaravelによるWebアプリの設計・作成の基本、ルーティング、リエクスト処理、ビュー、認証、ページネーション、モデルのリレーション、ファイルアップロードの基本などを一通り学ぶことができます。 【Laravelとは】 LaravelはMicrosoftの.NETの開発に関わっていたTaylor Otwell氏によって開発され、 PHPの世界で最も人気のあるフレームワークの1つです。 【本書の開発環境について】 本書の開発環境はAWS Cloud9を利用しています。 WindowsもしくはmacOSでLaravelの環境を作ろうとすると、環境構築に1、2時間を要してしまうことがかなりあります。 その点、ブラウザだけで開発できるAWS Cloud9を利用すれば、開発環境を手軽に設定できるため非常に効率よく学習することができます。 【Laravelのバージョン】 Laravel 6.x(LTS) 【読者対象】 LaravelによるWebアプリ開発初心者 【本書のゴール】 本書を読み終わった後、基本的なLaravelの利用方法を習得できることを目的としています。 【著者プロフィール】 山崎大助(やまざき・だいすけ)ジーズアカデミー学校長。デジタルハリウッド大学大学院 教授。 専門はフロントエンド、Webアプリケーション。 2013年 全世界で9人しかいないMicrosoft MVP(Bing Maps Development)の1人として受賞、 現在もMicrosoft MVP(Developer Technologies)を受賞している。 著書に『レスポンシブWebデザイン「超」実践デザイン集中講義』(SBクリエイティブ)、 『jQueryレッスンブック jQuery2.X/1.X対応』(ソシム)がある。 公開しているWebサービスに『LaravelDB.com』『BingMaps GO!』がある。 Chapter 1 PHPフレームワーク「Laravel」とは 01 Laravelフレームワークとは 02 まとめ Chapter 2 開発環境の準備 01 Laravelの開発環境について 02 AWS Cloud9を利用する 03 まとめ Chapter 3 Laravelのインストール 01 本書でよく使うコマンドやコードについて 02 AWS Cloud9の環境準備 03 Laravelフレームワークの準備 04 毎回使うコマンド 05 データベース環境の準備 06 MySQLを使用しない場合(SQLiteを選択する) 07 Laravelのルートディレクトリ:フォルダ構成について 08 まとめ Chapter 4 練習アプリ:本管理アプリを作る 01 練習アプリ「本管理アプリ」を作る流れ 02 AWS Cloud9の設定を変更する:隠しファイルを表示する 03 MySQLデータベースとの接続を設定する 04 AWS Cloud9の設定を変更する:自動保存の設定にする 05 まとめ Chapter 5 本管理アプリ:データベースにテーブルを作成する 01 テーブルを定義するマイグレーションファイルについて 02 マイグレーションファイルでbooksテーブルを定義する 03 まとめ Chapter 6 本管理アプリ:モデルを作成する 01 Eloquent(エロクイント)モデルを利用する 02 モデルのルールを変更する方法 03 まとめ Chapter 7 本管理アプリ:ルート定義を作成する 01 ルート定義について 02 ルート定義のスケルトンを作成する 03 まとめ Chapter 8 本管理アプリ:ログイン認証機能を追加する 01 ログイン画面とレジスター画面を確認する 02 ログイン機能とレジスター機能を実装する 03 ログイン実装用のコマンドについて 04 まとめ Chapter 9 本管理アプリ:レイアウトとビューを作成する 01 ビューについて(レイアウト・テンプレート) 02 レイアウトとビューを作成する 03 Bladeテンプレートの変数について 04 「JavaScript&CSS」ファイルの配置場所は「public」フォルダになる 05 まとめ Chapter 10 本管理アプリ:本の追加登録処理を作成する 01 本の追加登録処理を作成する 02 送信データの確認を行う/本の登録処理を作成する 03 まとめ Chapter 11 本管理アプリ:本を一覧表示する機能を作成する 01 登録している「本」を一覧表示する機能を作成する 02 Bladeテンプレートの制御構文について 03 まとめ Chapter 12 本管理アプリ:本のデータ削除機能を作成する 01 本のデータ削除機能を作成する 02 課題1(課題1.1、1.2) 03 課題1(課題1.1、1.2)の解答について 04 課題1.1の解答 05 課題1.2の解答 06 まとめ Chapter 13 本管理アプリ:ルート定義以外の各処理をコントローラに移動する 01 ルート定義からコントローラに各処理を移動する 02 コントローラについて 03 ルーティング・コントローラ・ビューの流れ 04 BooksControllerを作成(更新処理)する 05 コントローラへ登録処理を追加する 06 課題2(課題2.1、2.2、2.3) 07 課題2.1の解答 08 課題2.2の解答 09 課題2.3の解答 10 まとめ Chapter 14 本管理アプリ:ページネーションを使用する 01 ページネーションを使用する 02 まとめ Chapter 15 本管理アプリ:SESSIONを利用する 01 SESSIONの仕組み 02 SESSIONを利用する 03 まとめ Chapter 16 本管理アプリ:ログイン認証機能を追加する 01 ログイン認証の処理を追加する 02 Route::groupを使ったログイン認証について 03 ログイン認証したユーザー情報を取得する 04 ログイン認証したユーザーが登録した情報のみを表示させる 05 まとめ Chapter 17 本管理アプリ:ファイルのアップロード機能を追加する 01 ファイルのアップロード機能を追加する 02 まとめ Chapter 18 本管理アプリ:モデル記述コードのチェック(tinker)・テストデータの自動生成(Seeder)を行う 01 tinkerコマンドでモデルの記述コードを確認する 02 Seeder(テストデータを自動生成)による処理を実装する 03 まとめ Chapter 19 本管理アプリ:バリデーションメッセージを日本語化する 01 英語のバリデーションメッセージを日本語化する 02 まとめ Chapter 20 本管理アプリ:デバッグ用ヘルパー関数を利用する 01 デバッグ用のddd()関数を利用する 02 まとめ Chapter 21 本管理アプリ:phpMyAdmin管理ツールをインストールする 01 phpMyAdmin管理ツールをインストールする 02 まとめ Chapter 22 モデルで利用できる便利なメソッド 01 モデルのメソッド 02 まとめ Chapter 23 Eloquentリレーションから見るモデルとリレーションの関係 01 Eloquentリレーションについて 02 まとめ
2017年9月刊行の『PHPフレームワークLaravel入門』を補足する続編。「これも知りたかった」という声に応えました! アプリケーション開発には、基本のMVC以外の機能実装が非常に重要になります。本書は、既刊『PHPフレームワーク Laravel入門』を読み終わった方に向けて、もっと知りたいという要望の高かったMVC以外の機能実装の手法を解説します。コア機能の詳細から、サービス、DBクラスとEloquent、ジョブ管理、フロントエンド(Vue.js、React、Angular)との連携、ユニットテスト、Artisanコマンドまで詳細にわかります。Laravel5.8.9準拠。 Chapter 1 Laravelのコア機能を考える 1-1 ルーティング ベースプロジェクトの用意 ルートの基本 名前付きルートについて whereによる正規表現ルート HTTPステータスコードによるエラー表示 ルートグループについて ミドルウェアの適用 名前空間とグループルート ルートとモデルの結合 1-2 設定情報と環境変数 設定情報とConfigクラス 設定情報を更新する 環境変数の利用 1-3 ファイルシステム Storageクラスについて ファイルアクセスの実際 localとpublic publicディスクにアクセスする ファイル情報を取得するメソッド ファイル情報取得メソッドでファイル情報を表示する ファイルのコピー・移動・削除 ファイルのダウンロード ファイルのアップロード処理メソッド(putFile) ディレクトリの管理 filesystem.phpについて 「logs」ディスクを用意する FTPディスクを作成する 1-4 リクエストとレスポンス Requestについて フォームをまとめて処理する Responseと出力コンテンツ フォームの必要な項目のみ利用する フォーム値の保管とold関数 クエリパラメータの利用 クエリパラメータを指定したリダイレクト Chapter 2 サービスとミドルウェア 2-1 サービスコンテナと結合 DIとサービスコンテナ サービスとしてのクラスを用意する 明示的にインスタンスを生成する 引数が必要なクラスのインスタンス取得 サービスコンテナへの結合 サービスとシングルトン MySerivceをシングルトンで結合する 引数を必要とする結合 インターフェイスを利用した粗な結合 MyServiceInterface実装クラスを作成する 結合時のイベント処理について 2-2 ファサードの利用 サービスとサービスプロバイダ サービスプロバイダを作成する ファサードとは? MyServiceファサードを作成する ファサードを登録する MyServiceファサードを使う 2-3 ミドルウェアの利用 リクエストを拡張するミドルウェア MyMiddlewareミドルウェアを作る MyMiddlewareミドルウェアの利用 beforeとafterについて after処理を追加する ミドルウェアの利用範囲と設定 グローバルミドルウェアの利用 Chapter 3 データベースの活用 3-1 DBクラスとクエリビルダ DB::selectの利点と欠点 クエリビルダを使う tableとselectを使う whereメソッドによる検索条件 あいまい検索はどうする? whereRawは書き方に注意! 最初・最後のレコード取得 指定IDのレコード取得(find) 特定のフィールドだけ取得(pluck) chunkByIdによる分割処理 orderByとchunkを使う 一定の部分だけを抜き出して処理する さまざまなwhere 3-2 ペジネーション paginateによるペジネーション ナビゲーションリンクの表示 Eloquent利用の場合 カスタムナビゲーションリンクの作成 Paginatorのメソッド ナビゲーションリンクのタグについて 3-3 EloquentとCollection Eloquentとモデルクラス モデルの基本ルール Personモデルの基本形 モデルとコレクション コレクションの機能:rejectとfilter コレクションの機能:diffによる差分取得 コレクションの機能:modelKeysとonlyおよびexcept コレクションの機能:mergeとunique mapによるコレクション生成 3-4 モデルの拡張 カスタムコレクションの利用 アクセサについて 既存のプロパティを変更する ミューテータについて 配列でデータを保存する JSON形式でのレコード取得(toJson) JavaScriptからアクセスする 3-5 Scoutによる全文検索 Scoutとは? 全文検索を利用する インデックスの操作 TNTSearchを利用する toSearchableArrayの実装 Chapter 4 キュー・ジョブ・イベント・スケジューラ 4-1 キューとジョブ キューとは何か? ジョブを作成する ジョブ用プロバイダを作成する MyJobをディスパッチする データベースにアクセスする 非同期に対応させる ワーカを実行する キューテーブルを確認する ワーカ実行コマンドについて 特定のキューを指定する クロージャをキューに登録する 4-2 イベントの利用 イベントとは? EventServiceProviderについて PersonEventについて PersonEventListenerについて PersonEventを発行する 購読について イベントディスカバリについて キューを利用してイベントを発行する ジョブか? イベントか? 4-3 タスクとスケジューラ タスクを実行する /app/Console/Kernel.phpについて Scheduleクラスの「コマンドの実行」:execとcommandメソッド Artisanコマンドを実行する「command」メソッド クロージャで処理を実行する invoke実装クラスをcallする ジョブをinvoke化する jobメソッドによるジョブ実行 Chapter 5 フロントエンドとの連携 5-1 Vue.jsを利用する Vue.jsのセットアップ コンポーネントを利用する コンポーネントを作成する axiosでJSONデータを取得する 5-2 Reactの利用 React利用のセットアップ package.jsonについて Reactを利用する アプリケーションを実行する Exampleコンポーネントについて MyComponentを作る クライアント=サーバー通信について 5-3 Angularの利用 LaravelはAngular未対応! Angularコンポーネントを利用する AngularアプリとLaravelアプリのビルド Angularの開発手順について コンポーネントを作成する axiosでサーバー通信する Chapter 6 ユニットテスト 6-1 コントローラーのテスト Laravel開発とテスト 設定ファイルphpunit.xmlについて 2つのテスト用スクリプト /tests/Unit/ExampleTest.phpについて /tests/Feature/ExampleTest.phpについて コントローラーをテストする 6-2 モデルのテスト テスト用データベースの準備 マイグレーションの用意 シーディングの用意 モデルのテストを行う モデルを利用する テーブルの初期化について シードを利用する 6-3 ファクトリの利用 ファクトリを作成する ファクトリを使ってテストする ステートを設定する ステートを利用する コールバックの設定 6-4 モックの活用 ジョブをテストする クロージャでディスパッチ状況をチェックする イベントをテストする コントローラーでイベントを発行させる キューをテストする 特定のキューを調べるには? サービスをテストする クラスをモックする PowerMyServiceをモックする Chapter 7 Artisan CLIの開発 7-1 Artisanコマンドの利用 Artisanコマンドについて dump-serverの利用 dump-serverを起動する Tinkerの利用 Tinkerの設定ファイルの作成 7-2 スクリプト内からArtisanを使う Artisanクラスの利用 実行結果を受け取るには? オプションを設定する 7-3 Artisanコマンド開発 Artisanコマンドを作成する MyCommand.phpの内容を確認する シグネチャと説明を用意 コマンドの出力を作成するhandleメソッド 引数を利用する 可変長引数の利用 オプションの利用 インタラクティブな操作 複数項目の選択 出力の形式について テーブル出力について クロージャコマンドについて