web-dev-qa-db-ja.com

Yii2 +単一のアプリケーションでのAngularJS-方法は?

Yii 2と AngularJS の両方の経験がありますが、別々です。 2つの質問があります。

Yii 2のビューでAngularJSを使用することは可能ですか?私はfeasibleではなくpossibleを求めています。なぜなら、ルーティングに問題が到着したのではないかと思うからです。

また、Yii 2とAngularJSを一緒に使用するのは(パフォーマンス上)十分ですか? (どちらもMVCであるため、モジュール式の管理可能なコードです。)

長い間検索しましたが、適切なリソースが見つかりませんでした。説明は何ですか!

25
Neel Shah

[〜#〜] yes [〜#〜]、異なるルート方法を実装した後、Yii 2ビューでAngularJSを使用できます。 開始するチュートリアル です。

しかし、[〜#〜] no [〜#〜]、そうすることはお勧めしません(一方、Yii 2AngularJSは両方とも素晴らしいです [〜#〜] rest [〜#〜] )のネイティブサポートを備えたフレームワーク。したがって、適切な方法は、AngularJSを使用してfrontendを構築し、Yii 2を使用して aサーバーAPI 。これを行うのに適した構造を次に示します。

this Stack Overflow postから@AlekseiAkireikinによる構造

   project/
     backend/        // Yii 2 application
       web/          // Public visible backend folder
         index.php   // Entry point
       config/
       controllers/
       models/
       ...
     frontend/
       app/          // Your AngularJS application here
         css/        // Styles (.less or .css)
         img/        // Images
         lib/        // Third-party libraries such as jQuery or AngularJS
         js/         // .js files (controllers, services, etc.)
         partials/   // Templates (.html)
         index.html
       tests/        // AngularJS tests
       node_modules/
       ...

Yii RESTful APIフレームワーク は、クリーンな [〜#〜] api [〜#〜] を提供します。これは、組み込みのAngularJSと通信できますアプリケーション、または将来のモバイルアプリ、または他のWebサイトやソフトウェアにリソースやサービスを提供することもあります。パフォーマンスに関心がある場合は、両方を使用してRESTを使用します。適切に構成されたRESTfulアプリケーションは、柔軟な戦略を備えた優れたキャッシュシステムを簡単に構築するのに最適です。バックエンドとデータベースをサーバー上でホストすることもできます( Amazon EC2 など)。最小帯域幅使用のためにJSON(および/またはXML)データのみを提供し、フロントエンドを最適化された [〜#〜] cdn [〜#〜] (Amazon S3や他のCDNプロバイダーなど)に保存し、コストを抑えて回答を高速化します。

以下に、REST内でAngularJSとYii 2を実装する2つの例を示します。 this および this

40
Salem Ouerdani