Help us understand the problem. What is going on with this article?

Laravel5 + AngularJS で作るSPA(目次)

More than 5 years have passed since last update.

Laravel+Angularで作るSPA

AngularとLaravelでSPAを作ってみる。

正直に何か決まった答えを話しているより、自分も正解がわかっていない状況なので内容は常に更新されると思います。
そして、もっといいやり方があったら積極的に適用したいので、Feedbackも歓迎です。

FeedbackはTwitterでやってもらったらすぐすぐ返信できると思います。

目次

  1. Initialize
  2. Cors setting
  3. Simple restful api
  4. Routing with ui-router
  5. jwt authentication
  6. (On working) REST API Testing & Resource Handling

概要

  1. RESTAPIだけが使えるLaravelサーバ
  2. Static Pageを見せるだけのサーバ

理由

  1. PHPとAngularJSの統合テストがまだ面倒 : 一緒にテストをしようとするとE2Eテストになるけど、Browserを用いらなきゃならないので、非常に重い。 そして、まだ、二つを合わせてテストができるTestFrameworkがないので、分離してテストしないとかなり苦労すると思う。
  2. システムの柔軟性が確保できる : BackendとFrontendの部分が完全に分けられているので、 今回作ったBackendはLaravelではなくてもFrontendはそのまま使える。
  3. コストも下げれる : TemplatingをBackendがする必要がないので、Backendの負担が減る。 そして、AngularJSのFrontendはRestAPIが使える 固定ページ なのでS3に乗せることでもう心配はないと思う。

開発方向

やはり現時点の動向を見ると既存のMVCPatternは全然いけていない。
しかし、LaravelのIoCとORM、CLIとSaaSとの連動などはかなり素晴らしいと思う。
そういう意味で、BladeやSessionなどのRESTful APIに不必要な要素だけを取り除く形で進む。LaravelをForkすることも考えてみたが、正直にServiceProviderとMiddleware幾つかを呼ばないだけで十分であるので、まだ先だと思う。

そして、AngularのFrontend部分は、Laravelの既存のAPIを真似するスタンスに進んだ方がいいと思う。ただし、自分の実力と時間の制限で簡単に手を出せるのは難しいので、すぐにはできないよう。

Laravelの軽量版Lumenが出たので、Backendを今後Lumenに変えようと思っている。(2015/4/14)

Git Repositories

GitはTagを一応つけておいたけど、昔の資料の内容もずっと変わったりするのであまり依存しないほうがいいと思う。
だから、現在のコードの状況が見たいだけに使って、普通に開発するときは「目次」を踏みながら開発してほしい。

Frontend

https://github.com/laravelfanatic/laravel-angular-app

Backend

https://github.com/laravelfanatic/laravel-angular-server

fluke8259
九州大学 工学部機械航空学科 航空宇宙コース 学部3年 / MAISIN&CO. CTO兼取締役 / Dick Choi / サイ / No Food, No Sleep, Just Coding / Boost開発者 / JS, Python主に使います / 彼女ほしいです
https://github.com/rokt33r
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away