2013-05-16 3 views
0

PHP와 OOP를 사용하여 CMS를 구축하고 있습니다.이 프로젝트는 약간의 학습 프로젝트로 OOP 기술을 향상시키는 동시에 최종 목표를 염두에두고 있습니다. 실제로 백 엔드 페이지를 코딩 오셨습니다PHP OOP 기반 CMS - 별도의 페이지 표시

- 난 단지에 대한 질문이 최선의 방법 구조 폴더, 파일 등의 측면에서 응용 프로그램

I 클래스의 폴더를 가지고 일부의 프런트 엔드 웹 사이트에서 사용할 계획입니다. 이러한 클래스 중 하나는 프런트 엔드에 잘 작동하는 템플릿 (헤더, 내용 및 바닥 글)을로드하는 것을 처리하는 Page 클래스입니다. 백 엔드는 다른 이야기지만 분명히 아무 페이지 (페이지 추가/편집, 사용자 추가/편집 등)도 데이터베이스에 저장되지 않으므로이 페이지의 출력을 어떻게 처리해야합니까?

Page 클래스의 하위 클래스를 만들고 그 위로 내용을 설정하는 것이 가장 좋습니다. 또는 각 페이지에 대해 새로운 PHP 파일을 만드는 것이 더 좋을까요? 나는 하위 클래스를 사용하는쪽으로 기울어 져 있지만 꽤 무거운 파일 (페이지 클래스, 하위 클래스 추가 페이지, 편집 페이지 등)로 이어질 수 있습니다.

이 문제를 해결하는 가장 좋은 방법에 대한 조언은 유용 할 것입니다.

답변

1

내가 더 많거나 적은이 구조 (MVC 아키텍처 패턴을) 할 것 :

-MyCMS 
--assets 
----css 
----img 
----js 
----templates 
------pages 
------partials 
--------forms 
--------grids 
--conf 
--src 
----Controller 
------Dispatcher 
----Form 
----Model 
------DataMapper 
----Routing 
----View 
------Renderer 
--test 

내가, 그들은 논리적으로 그룹화해야 같은 폴더에 모든 클래스를 유지하는 나쁜 아이디어라고 생각합니다. 이것은 단지 예일 뿐이므로, 귀하는 src 폴더에 이러한 구성 요소가있을 필요는 없지만 구성 요소를 구성하는 방법에 대한 아이디어를 얻을 수 있습니다.

클래스 Page은 템플릿으로 페이지를 작성해야합니다. assets/templates/pages에 각 페이지마다 하위 클래스를 지정하지 않아야합니다.

+0

"tests"폴더가 누락되었습니다. P –

+0

하지만, 단위 테스트를 사용했는지 모르겠지만 ... P ...하지만 거기에서 변경하겠습니다. –

+0

단위 테스트를 사용하지 않았습니다 ... 아직! 나는 이것이 내가 결국 갈 방법이라고 생각한다. 핵심 코드를 가지고 템플릿을 모든 스타일링 만하도록하는 아이디어가 마음에 들지만 템플릿 파일 내에서 페이지 출력을 완전히 제어하는 ​​것만 큼 실용적이지는 않습니다. – 0Neji

1

각 하위 클래스를 별도의 파일에 넣습니다. 파일 이름과 클래스 이름이 일치하므로 나중에 자동로드 클래스를 설정할 수 있습니다.