Edited at

Laravel5 + AngularJS で作るSPA(目次)

More than 3 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