2012-04-20 4 views
9

Joomla 및 다른 Joomla 구성 요소의 x-cart, jobberbase 및 jomestate 구성 요소에서 과거에 멋있게 사용했습니다. 나는 물건이 x-cart에서 아주 단단히 결합되어있는 것을 보았고 많은 것들은 그들이 jobberbase에 있어야하는 것보다 더 복잡해 보였습니다. 그리고 저는 이것이 현명하기 때문에 인상적이었습니다.Yii와 같은 MVC와 함께 멋진 템플릿 엔진을 사용해야합니까?

이제 프로젝트에서 클라이언트가 제안한 Yii를 사용할 것입니다. 그리고 Yii 자체는 MVC 프레임 워크입니다. 그래서 나는 그것을 똑똑하게 사용해야합니까? 나는 그것을 똑똑하게 사용해야한다는 것을 알고 싶다. 나는 Yii에서 똑똑한 것을 사용하는 몇 가지 찬성이있을 것인가? 안 그래요? 아니면 그냥 오버 헤드가 될 것인가 아니면 거기에 똑똑한 사용의 일부 죄수가 될 것인가? 나는 현명하다는 것을 알고있다. 하지만 때로는 상황이 더욱 복잡해질 것이라고 생각합니다. 그래서 저는 여러분들에게 나쁜 프레임 워크로 인한 지배적 인 생각인지 아니면 거기에 어떤 현실이 있는지 알고 싶습니다. 그래서 나는 똑똑한 것을 사용해야합니까, 아니면 그보다 더 좋은 점이 있습니까?

답변

11

Yii 이전에 현명하게 사용하던 사람은 아무런 의미가 없다고 말하고 싶습니다.

Smarty는 논리와보기를 하나의 파일로 혼합 할 수 없기 때문에 훌륭했습니다. MVC 아키텍처는 컨트롤러 (논리 포함)와 뷰가 어쨌든 분리되어야한다고 정의합니다. 똑똑한 템플릿처럼 뷰를 작성하고 PHP 구문 만 사용하는 것이 좋습니다. 좋은 IDE (netbeans와 같은)를 사용한다면 코드도 자동으로 들여 쓰게됩니다 (see code formatting in netbeans).

또한 치앙 슈 이전 프로젝트 YII 자체가 Prado에서 파생

YII 작성자의 Alternative syntax for control structures

가능한 의견을 살펴 있습니다. 프라도 (Prado)는 유혹스러운 언어를 가지고 있으며 Yii (상자에서)는 Qiang이 템플릿 언어가 불필요하다고 믿는다는 것을 나는 짐작할 수 없다.

멋지 오버 헤드

스마티 템플릿 (캐싱이 활성화 된 경우) 변화에 한 번 PHP로 준수되어,이 오버 헤드의 대부분은 첫 번째 요청이 발생하는 것을 의미하지만, 난 여전히 있다고 가정 것 컴파일 된 뷰가 존재하는지 확인하기 위해 추가 함수 호출에서 약간의 오버 헤드가 발생하며 이는 모든 요청에 ​​영향을 미칩니다. 똑똑한 오버 헤드가 있지만 무시해도 좋습니다.

+0

대체 구문을 이해하고 있지만 이미 MVC 아키텍처를 사용하면서 현명한 장점이 있는지 알고 싶습니까? 또는 오버 헤드가있을 것인가? – Hafiz

+0

그것은 전적으로 당신이 똑똑하다고 생각할 것 인 것에 달려 있습니까? –

+0

맞춤 응용 프로그램에서 smarty를 사용하고 프레임 워크에서 smarty를 사용하는 것과는 차이가 없습니다. 뷰와 로직을 혼합하는 것은 언제나 IMO의 나쁜 습관입니다. 그러나 당신 자신과 다른 개발자들에게 엄격함을 강요하지 않아도된다면 –

1

PHP로 컴파일하면 Smarty가 오버 헤드가되지 않습니다.

의 또 다른 언어를 배울 수 있다는 것보다

기타 (스마티를 사용하고자하는) 개발자와 디자이너의 별도의 역할이있을 때 난 단지 스마티를 사용합니다.

2

Smarty는 모든 템플릿 언어와 마찬가지로 값 비싼 오버 헤드입니다.

Rasmus Lerdorf가 말했듯이 PHP는 이미 템플릿 엔진입니다. 다른 컨트롤 구조와 함께 다른 언어를 추가 할 이유가 있습니까? PHP에 이미 있습니다.

템플릿 엔진은 캐시 논리를 포함하기 때문에 유용합니다. 캐시 논리를 직접 만들 수 없다면 배우십시오.

+1

yii에서 캐시 논리를 사용하기 위해 템플릿 엔진을 사용할 필요가 없습니다. 활성화 할 수있는 캐시가 있습니다. – darkheir

관련 문제