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の60日間100%満足保証
購入後60日以内であれば、たった2クリックでLeanpubでの購入について100%返金を受けることができます。
技術的には、本やコースのファイルはお手元に残るため、これは私たちにとってリスクとなります。しかし、私たちは自社の製品やサービス、そして著者と読者を深く信頼しているため、販売する全ての商品に対して全額返金保証を喜んでご提供しています。
何かの良し悪しは実際に試してみないとわかりません。100%返金保証があるため、試すことに全くリスクはありません!
ですから、カートに追加するボタンをクリックしない理由はないですよね?
利用規約の詳細を見る...
$10の購入で$8、$20の購入で$16を獲得
$7.99以上の購入に対して80%のロイヤリティを、$0.99から$7.98までの購入に対して50セントの定額手数料を差し引いた80%のロイヤリティをお支払いします。$10の売上で$8、$20の売上で$16を獲得できます。つまり、あなたの本が$20で5000部返品なしで売れた場合、$80,000を獲得できます。
(はい、すでに多くの著者がLeanpubでそれ以上を稼いでいます。)
実際、著者たちはLeanpubでの執筆、出版、販売を通じて1,400万ドル以上を獲得しています。
Leanpubでの執筆についてさらに詳しく
無料アップデート。DRMフリー。
Leanpubの本を購入すると、著者が本を更新し続ける限り、無料でアップデートを受け取ることができます!多くの著者は執筆中の本をLeanpubで公開しています。全ての読者は、購入時期や支払額(無料も含む)に関係なく、無料アップデートを受け取ることができます。
ほとんどのLeanpubの本は、PDF(コンピュータ用)とEPUB(スマートフォン、タブレット、Kindle用)で利用できます。本に含まれるフォーマットは、このページの右上に表示されています。
さらに、Leanpubの本にはDRMによるコピー保護は一切ないため、対応デバイスで簡単に読むことができます。