1

Symfony2 で構築された Web サイトがあり、jQuery モバイルを使用してそのモバイル バージョンを作成したいと考えています (現在、デスクトップ バージョンには Twitter ブートストラップを使用しています)。

私は選択しなければならない解決策について本当に混乱しています:

  • たとえば、http://mobile.mywebsite.com などのサブドメインを作成し、非常に似ている別の Symfony プロジェクトを作成しますが、他の html.twig ファイル (jQuery モバイルを統合するため) だけを使用しますが、これは大きな私のコードの一部?

  • 画面サイズに応じてjqueryモバイル要素を使用するために、htmlファイルのsymfonyプロジェクト内のメディアクエリ。したがって、維持するプロジェクトは 1 つだけです。

どんなアドバイスも素晴らしいでしょう!ありがとう !

4

3 に答える 3

2

ベスト プラクティスは、あらゆる画面サイズに適応できるレスポンシブ デザイン (メディア クエリはその一部です) で 1 つのページを作成することです。

2 つ目の Symfony プロジェクトを作成するべきではありません。基本的に、サイトに 2 つの異なるレイアウトを作成しようとしているため、ビューにのみ影響するはずです。レスポンシブ デザインを使用したくない場合は、モバイル ページ用の twig テンプレートを作成し、デスクトップ サイトに使用するのと同じコントローラーからそれらをロードできます。

于 2013-04-10T13:35:22.537 に答える
2

ドメイン名に基づいてルーティングを行うことができます。

http://symfony.com/doc/master/components/routing/hostname_pattern.html

これにより、モバイル サイト用に異なるコントローラーを使用しながら、モデルと (少なくとも一部の) ビューを再利用できます。ルーティングで (ホストに基づいて) パラメータを設定し、それをコントローラで使用することで、一部のコントローラを再利用することもできます。

# routing.yml

mobile_homepage:
    path:     /
    host:     m.{domain}
    defaults: { _controller: AcmeDemoBundle:Main:homepage, mobileVersion: true }
    requirements:
        domain: %domain%

homepage:
    path:  /
    defaults: { _controller: AcmeDemoBundle:Main:homepage }

次に、コントローラーで:

// Acme/DemoBundle/Controller/MainController.php

public function homepageAction($mobileVersion = false) {
  ...
  if ($mobileVersion) {
    // do some mobile things, perhaps return a specific template
  } else {
    // do some non-mobile things, perhaps return a specific template
  }
  ...
}
于 2013-04-10T14:36:55.333 に答える