2013-04-10 2 views
1

Symfony2로 구축 된 웹 사이트가 있고 jQuery 모바일을 사용하여 모바일 버전을 만들고 싶습니다. (현재 데스크톱 버전에는 Twitter 부트 스트랩을 사용하고 있습니다).모바일 웹 사이트 및 데스크톱 웹 사이트 : 내 코드를 복제해야합니까?

  • 예를 들어, 하위 도메인을 만들 : http://mobile.mywebsite.com을 그냥 다른 html.twig 파일과 매우 비슷하지만 될 또 다른 심포니 프로젝트를 만들

    은 내가 선택할 수있는 솔루션에 대해 정말 혼란 스러워요 (jQuery 모바일을 통합하기 위해), 그렇다면 코드의 상당 부분을 복제 할 것입니다.

  • 화면 크기에 따라 jquery 모바일 요소를 사용하기 위해 심포니 프로젝트를 HTML 파일로 쿼리합니다. 따라서 유지할 프로젝트는 하나뿐입니다.

어떤 조언도 좋을 것입니다. 감사 !

+0

두 개의 프로젝트를 만드는 이유는 무엇입니까? 반응 형 UI를 허용하는 Twitter 부트 스트랩을 사용하고 있습니다. 트위터 부트 스트랩 CSS를 향상시키고 Symfony2 백엔드를 조정하여 웹 사이트를 응답 성있게 만드십시오. – Lowkase

+0

jQuery 모바일이 손으로 넘기는 목록의 요소를 전환하는 것과 같은 더 많은 가능성을 제공한다고 생각했습니다. 네이티브 앱과 비슷했습니다. – Reveclair

+0

두 플랫폼을 함께 섞어 놓지 않는 한 많은 의미가 없습니다. RESTFUL 서비스로 Symphony2 아키텍처를 구축했습니다. 심포니 2가 많은 뷰를 제공한다면 jQuery 모바일 루트를 사용하지 않을 것입니다. 이 두 플랫폼을 함께 쓰면 조금 아플 것입니다. – Lowkase

답변

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 
    } 
    ... 
} 
2

모든 화면 크기에 적응할 수있는 반응 형 디자인 (미디어 쿼리가 그 중 일부 임)을 사용하여 한 페이지를 만드는 것이 가장 좋습니다.

두 번째 Symfony 프로젝트를 제작해서는 안됩니다. 당신은 본질적으로 귀하의 사이트에 2 가지 다른 레이아웃을 만들려고하므로 귀하의 견해에만 영향을 주어야합니다. 반응 형 디자인을 사용하고 싶지 않은 경우 모바일 페이지에 대한 나뭇 가지 템플릿을 만들고 데스크톱 사이트에 사용하는 컨트롤러와 동일한 컨트롤러에서 템플릿을로드 할 수 있습니다.

1

나는 그것이 조금 늦었다는 것을 알고있다. 그러나 그것은 여전히 ​​다른 사람들에게 유용 할 수있다.

나는 오늘 아침에 같은 질문을했고 Google은 나에게 MobileDetectBundle https://github.com/suncat2000/MobileDetectBundle/을주었습니다.이 문제는 그런 종류의 문제를 해결하는 것으로 보입니다. 아직 tryed 아니지만 나는 확실히 것입니다!