Laravel4でこなすプログラム術 Getting Stuff Done
Laravel4でこなすプログラム術 Getting Stuff Done
ホットで最新のフレームワークを使い、アプリケーション設計と開発の旅に出かけよう
本書について
PHPコミュニティーを騒がせているフレームワークについて学びましょう。この実践的なガイドブックは、あなたにアプリケーション設計とコンソールアプリケーション、Webアプリケーションの作成を経験させてくれます。中級の開発者にピッタリですが、初心者でも理解できます。「Laravel4でこなすプログラム術 Getting Stuff Done」で楽しくLaravelを学べます。最後まで学習すれば、あなたのワークフローにピッタリとあった道具を手に入れることができるのです。「仕事をこなす」ためにです。
購入金額の10%がLaravelプロジェクトへ寄付されます。
この本は典型的な参考書ではありません。設計を重視した手順書です。どのようにアプリケーションを設計するかの真の姿をお見せすることに焦点を置き、実装の最初から最後までを説明しています。今回のアプリケーションに必要ないLaravelコンポーネントには触れていません。もし、皆さんがLaravelを使った開発の正直な一冊を探し求めているのでしたら、この本こそ正にぴったりです。
(翻訳者追記:この書籍はバージョン4.1の頃に出版され、4.2でも動作します。2014年にリリースされるLaravel5.0では、ディレクトリー/ファイル構造が変更されるため、パスが大きく変更になります。そのため、書籍の内容と一致しない部分が発生します。予め、ご了承ください。)
目次
-
- 謝辞
-
改訂履歴
- 感謝の辞
-
協力のお願い
- 翻訳
- Github上のソースコード
-
ようこそ
-
第1章 この本の目的
- この本で行わないこと
- では、何を教えるのでしょう。
- 第2章 読んでいるのは、誰ですか?
- 第3章 私は誰でしょう?
- 第4章 Laravelって、何?
- 第5章 Laravel使用の正当性
- 第6章 なぜプログラマーはLaravelを好むのか
- 第7章 Wordpress:良い点、悪い点、ひどい点
-
第8章 本書の規約
- どんなOSを使用しているか?
-
第1章 この本の目的
-
パート1 設計哲学と原則
- 第9章 ヤッハー!カウボーイコーディングは最高だぜ
-
第10章 プログラマーは全員違う
- 素早い試金石
-
第11章 分離は素敵
- 全ては脱毛のために
- シンプルな分離の例
- 第12章 WETプログラムを行うな
-
第13章 依存注入
- ステップ1 依存の決定をクラスのレベルへ移動する
- ステップ2 手動で注入する
- ステップ3 自動注入を使用する
-
第14章 制御の逆転
- 一般的な例
- IoCコンテナ
-
第15章 契約としてのインターフェイス
- インターフェイスはコードを隠す
-
第16章 堅牢(SOLID)なオブジェクト設計
- 単一責任原則
- 開放/閉鎖原則
- リスコフ置換原則
- インターフェイス分離原則
- 依存逆転原則
-
第17章 設計の汚い、小さな秘密
- 小説家のようにプログラミングする
-
パート2 アプリケーションの設計
-
第18章 どんなアプリケーションを作成するのか?
- アプリケーションの名前
- GTDとは何?
-
第19章 Laravelのインストール
- プロジェクトを作成する
- プロジェクトの構成
- 不必要なディレクトリーを削除する
- ソースディレクトリーを作成する
- Composerをupdateする
- インストール結果を確認する
-
第20章 ToDoリストを設計する
- データーを設定する
- Laravelの設定と環境
- ToDoリストはどの様な感じになるのか
- 最初のリストとタスクオブジェクト
- TodoRepositoryInterface
-
第21章 タスクについて考える
- TodoTaskInterface
- TaskCollectionInterface
- 素晴らしきFacadeの世界
-
第22章 TaskListInterfaceの作成
- TaskListInterface
- 小さな再利用
-
第23章 テキストファイルのフォーマット
- ファイルフォーマットのルール
- リスト上のタスクのルール
- それぞれのリストをどう分類するか
-
第24章 アプリケーションの機能
- 機能のながーーいリスト
- Todoファサードの使用
-
第25章 ファサードの計画
- ファサードの要素
- Todoファサードクラスシェル
- Todoファサードの実装
- Todoファサードの実装をテストする
- 一緒にする
- Todoファサードをテストする
-
第26章 途中のリファクタリング
- 霧立ち込める森林の中で
- TaskListInterface
- TaskCollectionInterface
- TodoTaskInterface
- テストで締めくくる
-
第27章 TodoManagerクラスに取りかかる
- TodoManager::makeList()
- Mockeryのインストール
- TodoManager::makelist()をテストする
-
第28章 TodoManagerクラスを仕上げる
- TodoManager::allLists()を作成する
- TodoManager::allLists()をテストする
- TodoManager::get()を作成する
-
第29章 ListInterfaceを実装する
- TodoListシェルを作成する
- ListInterfaceを結合する
- The TodoList::__construct()
- TodoList::save()の実装
- TodoList::set()とTodoList::get()を実装する
- TodoList::set()とTodoList::get()をテストする
- TodoList::save()をテストする
-
第30章 TodoListクラスを仕上げる
- 「リスト属性」メソッドを完了させる
- TodoList::load()の削除
- TodoList::archive()の実装
- TodoList::taskAdd()の実装
- 最後の3つ、TodoList::tasks()、TodoList::taskSet()、Todo::taskRemove()
-
第31章 タスクコレクションとタスククラス
- TaskCollectionクラス
- Taskクラス
- インターフェイスを結合する
-
第32章 TaskCollectionとTaskクラスをテストする
- Taskクラスをテストする
- Taskクラスの中の間違いを修正する
- タイムゾーンの設定を修正する
- TaskCollectionクラスをテストする
-
第33章 TodoRepositoryの実装
- リファクタリングを少々
- TodoRepository
- テストデーターを作成する
- リポジトリーのテスト
-
第18章 どんなアプリケーションを作成するのか?
-
パート3 コンソールアプリケーション
-
第34章 Artisanをスッキリさせる
- 30秒でArtisan
- コマンドはどこにあるの?
- デフォルトのコマンドを取り除く
-
第35章 コマンドの計画
- 計画の計画…メタ計画
- アプリケーションのコマンドリスト
- 新しいリストを作成する
- 全リストのリスト
- リストを編集する
- リストのアーカイブ
- リストのリネーム
- タスクの追加
- タスクを完了にする
- タスクの一覧
- タスクの編集
- タスクの削除
- タスクの移動
- 最終的な全コマンドの一覧
-
第36章 擬似コーディング
- リスト作成擬似コード
- リスト削除擬似コード
- 全リスト一覧表示擬似コード
- リスト編集擬似コード
- リストアーカイブ擬似コード
- アーカイブの解除擬似コード
- リスト名変更擬似コード
- タスク追加擬似コード
- タスク実行擬似コード
- タスク一覧表示擬似コード
- タスク編集擬似コード
- タスク削除擬似コード
- タスク移動擬似コード
- 擬似コードで最後に考えたこと
-
第37章 ヘルパー関数を使用する
- よく使われる関数
- ヘルパー関数を作成する
- ヘルパー関数のユニットテスト
- pick_from_list()の作成
- pick_from_list()をテストする
-
第38章 ListAllCommand
- 計画
- ListAllCommandの作成
- ArtisanにListAllCommandについて知らせる
- fire()メソッドを少し肉付けする
- Symfonyのテーブルヘルパーを使用する
- taskCount()のリファクタリング
- リストIDのソート
-
第39章 CreateCommand
- 計画
- CreateCommandの作成
- all_null()ヘルパーを追加する
- CommandBaseを拡張する
- fire()の実装
-
第40章 UncreateCommand
- 計画
- UncreateCommandを作成する
- コマンドのスタックトレースを取得する
- 実在するリストのため、askForListId()を実装する
- 小さなクリーンアップ
- ユニットテストの修正
-
第41章 EditListCommand
- 計画
- CommandBaseの使用
- EditListCommandを作成する
- ArtisanにEditListCommnadを知らせる
- EditListCommandの事前テスト
- EditListCommand::fire()を仕上げる
-
第42章 ファイルと設定のリファクタリング
- 設定をリファクタリングする
- LaravelのFileクラスを使用するようにリファクタリングする
-
第43章 AddTaskCommand
- 計画
- AddTaskCommandの作成
- fire()メソッドにコードを追加する
- 手動テスト
-
第44章 DoTaskCommand
- 計画
- DoTaskCommandを作成する
- CommandBaseを更新する
- DoTaskCommandをテストする
- バグを潰す
-
第45章 ListTasksCommand
- 計画
- ListTasksCommandを作成する
- ListTasksCommandをテストする
-
第46章 自分のドックフードを食べる
- 「自分のドックフードを食べる」とは何ですか?
- gsd ToDoリストの準備
-
第47章 EditTaskCommand
- 計画
- str2bool()ヘルパーを追加する
- EditTaskCommandを作成する
- TodoList save()のリファクタリング
- EditTaskをテストする
- ドッグフードする
-
第48章 ArchiveListCommandとUnarchiveListCommand
- 計画
- コマンドを作成する
- ArchiveListCommandを更新する
- CommandBaseのバグ修正
- UnarchiveListCommandを修正する
- ドッグフードする
-
第49章 RenameListCommand
- gsd:listのタイトル後の空行
- RenameListCommandの計画
- RenameListCommandを作成する
- ListInterface::delete()を実装する
- ドッグフードする
-
第50章 もう一度、リファクタリング
- CommandBase::abort()を追加する
- askForListId()への追加
- gsdヘルプの整合性を確認する
- ListInterface::delete()を使用する
- 変更したファイル
- ドッグフードする
-
第51章 RemoveTaskCommand
- 計画
- RemoveTaskCommandを作成する
- ドッグフードする
-
第52章 MoveTaskCommand
- 計画
- MoveTaskCommandを生成する
- ドッグフードする
-
第53章 リスト間のタスク一覧
- 計画
- ListAllCommandの更新
- ドッグフードする
-
第54章 コマンドの別名とgsdシェルスクリプト
- コマンドの別名
- エイリアスとマクロの計画
- 別名の実装
- Bashスクリプト
- ドッグフードする
- 第55章 コンソールアプリの次は何?
-
第34章 Artisanをスッキリさせる
-
パート4 Webアプリケーション
-
第56章 Webサーバーを準備する
- Webサーバーのパーミッション
- Apacheを使用する
- Nginxを使用する
- PHPの組み込みサーバーを使用する
- You have arrived
-
第57章 Webアプリケーションの計画
- 最初のアイデア
- AJAXコールの計画
- Javascriptオブジェクトの設計
- ドッグフードする
-
第58章 Webページをモックアップする
- Bootstrapを用意する
- 基本的なテンプレート
- モックアップのために、テンプレートを拡張する
- ドックフードする
-
第59章 ユーザーへのフィードバックを追加する
- ビューの構造
- スケルトンを構築する
- gsdのスタイルとJapvascriptを追加する
- メッセージボックスの追加
- メッセージボックスを関数にする。
- エラーメッセージ関数を実装する
- ドックフードする
-
第60章 AJAXルートのセッテング
- リソースコントローラーを使用する
- ルートを完成させる
- コントローラーを作成する
- ListControllerスケルトンを完成させる
- ListControllerメソッドをテストする
- ドッグフードする
-
第61章 トップナビバーを追加する
- パーシャルビューを作成する
- デフォルトリストをロードする
- ナビバーを構造化する
- 最初のAJAX呼び出しを作成する
- サーバーサイドでREST対応する
- ドックフードする
-
第62章 トップナビバーを仕上げる
- ナビバーにJavascript関数を結びつける
- 結果をナビバーにロードする
- ドッグフードする
-
第63章 サイドナビゲーション
- レイアウトを更新する
- サイドバーを作成する
- AJAXの呼び出しを完成させる
- Javascriptを更新する
- ドッグフードする
-
第64章 タスク
- 反復 No.1 基本構造
- 反復 No.2 アクティブなタスクを表示する
- 反復 No.3 完了済みタスクの表示
- ドッグフードする
-
第65章 タスクの削除
- TaskInterfaceのリファクタリング
- コントローラーを更新する
-
doDelete()
Javascriptメソッドの更新 - 完了フラッグを切り替える
- ドッグフードする
-
第66章 タスクの追加と編集
- モーダルタスクフォーム
- Javascript
- taskboxSaveを仕上げる
- ドックフードする
-
第67章 リストのアーカイブとアーカイブ解除
- AJAX archiveメソッドを実装する
- AJAX archive()メソッドを呼び出す
- AJAX unarchiveメソッドの実装
- AJAX unarchive()メソッドを呼び出す
- ドッグフードする
-
第68章 リストの作成とリネーム
- リストモーダルを追加する
- リスト生成Javascriptを追加する
- AJAX storeを呼び出す実装
- 名前変更Javascriptの実装
- AJAX rename呼び出しの実装
- ドックフードする
-
第69章 移動と、それから…
- タスク移動コマンド
- 次はどこへ行くのでしょうか
- 最後に、ありがとうございました。
-
第56章 Webサーバーを準備する
-
追補
- 追補1 Composer
- 追補2 PHP Unit
-
追補3 Apacheの準備
- Apacheのインストール
- パーミッションの修正
- 名前付き仮想ホストの使用
- Ubuntu/Mintで仮想ホストを設定する
-
追補5 Nginxの準備
- Nginxのインストール
- パーミッションを修正する
- Ubuntu/Mintで仮想ホストを準備する
Leanpubは無条件かつノーリスクで100%の満足を保証します
Leanpubでお買い上げいただいた書籍は、ご購入後60日以内であれば全額返金いたします。払い戻しはわずか2クリックで完了します。払い戻し処理は手作業で行うため、完了まで数日かかる場合があります。詳しくは利用規約をご覧ください。
10ドルの購入で8ドル、20ドルの購入で16ドルを稼ぐ
私たちは7.99ドル以上の購入で80%のロイヤリティを支払い、0.99ドルから7.98ドルの購入には80%のロイヤリティから50セントの定額料金を差し引いた金額を支払います。10ドルの販売で8ドル、20ドルの販売で16ドルを稼ぐことができます。したがって、20ドルで本を5000冊売却し、返金されなかった場合、80,000ドルを稼ぐことができます。
(はい、すでにLeanpubでそれ以上の収益を上げた著者もいます。)
実際に著者はLeanpubで1,300万ドル以上を書き、出版し、販売して稼いでいます。
Leanpubでの執筆について詳しく知る
無料更新。無料アップデート。 DRMフリー。
Leanpubの本を購入すると、著者が本を更新している限り、無料で更新されます!多くの著者は、Leanpubを使用して、執筆中の書籍を出版しています。いつ本を購入したか、いくら支払ったかに関係なく、すべての読者は無料のアップデートを入手できます(無料も含む)。
Leanpubの本はPDF(コンピューター用)、EPUB(iPad用)、MOBI(Kindle用)のフォーマットに対応してます。本に含まれるフォーマットは、このページの右上隅に表示されます。
Leanpubの本には、DRMコピー防止のナンセンスがないため、サポートされているデバイスで簡単に読むことができます