2010-12-16 2 views
6

내 처분에 대해 알아야 할 사항 -
1. 내 처음으로 "큰"사이트를 구축합니다. 내가 그것에 대해 꽤을 읽어 봤는데하지만 PHP에서 작업
2

3. 사이트가 얼마나 확장 성이에 대해 아무 생각 이 없습니다.
4. 여전히 보안, 성능
원래 웹 사이트 아키텍처를 구현할 때 고려할 사항

주요 질문 존재처럼 나에게 장점을 제공하면서 그 구조 나에게 유연성LOT를 제공하는 경우 프레임 워크를 사용 할 의사 -
가정하자 당신은 제 자리에 있었고 원래의 아키텍처를 구현하고 싶었습니다. 조심해야 할 것은 무엇입니까?
보안 구현 방법은 무엇입니까? 어쨌든 타사 보안 모듈을 가져 와서 웹 사이트에 통합 할 수 있습니까?

나는 결함을 만들고 있다는 것을 알고 있습니다 ... 단지 그들이 무엇을하고 있는지 알고 싶습니다. 고맙습니다 :].

+1

고유 한 프레임 워크를 구현하는 목적은 무엇입니까? 왜 기존의 것을 사용하지 않습니까? – Earlz

+1

나는 다른 종류의 바퀴 맨을 원한다. 비록 내가 유연성을 제공한다면 나는 프레임 워크를 기꺼이 사용할 것이라고 말하고있다. – Sussagittikasusa

+2

"사이트가 얼마나 확장 성이 있으며 모든 재즈"대 ""처음으로 큰 사이트를 구축하는 것 "은 방망이에서 실패한 시도로 번역 될 수 있습니다. 최소한, 그것은 단지 이해가되지 않습니다. –

답변

5

당신은 읽기, 젠드 프레임 워크를 테스트하여 시작해야합니다. 이것이 실제로는 오랜 기간 동안의 데일리 셀러 (devellopers)의 프레임 워크이자 도서관 및 경험의 모음입니다.

Somes는 자신 만의 프레임 워크를 작성한 다음 바스켓에 넣고 ZF (Zend Framework)로 돌아 가야한다고 말합니다. 얼마나 많은 시간 (년)이 걸릴지에 달려 있습니다. 그러나 좋은 생각을하기 전에 좋은 선택을 이해하는 것이 더 쉽습니다. :-)

이 세상에는 아무도 자신 만의 훌륭한 아키텍처를 구축 할 수있는 사람이 없으며 자신 만의 새로운 아키텍처를 만들어야합니다. 오류가 아니라 오래된 오류. 아무도 과거의 모든 논문 CMS (phpNuke에서 우리를 막을만큼 충분히 똑똑했다. 그러나 더 많이 나는 오늘도 여전히 존재하는 큰 CMS에서 일하는 몇몇 사람들을 다치게하고 싶지 않다.

그래서 ZF MVC 모델을 사용하십시오 (실제로 사용하지 않을지라도) (실제로) ZF 문서를 읽으십시오. 이러한 도구 중 일부는 보안에 매우 중요한 이유를 이해하십시오. 좋은 PHP 애플리케이션을 위해주의해야 할

큰 일 :

공유 아무것도 : 기본 PHP로 사용자 요청 사이에 데이터를 저장하는 방법으로. 그래서 중간 저장/장기 저장/세션 저장 일들이 어딘가에 저장해야합니다 : 캐시에서 데이터베이스 또는 세션 기록에

  • 세션 파일 또는 세션 기록 (세션 ID 등)

    • 쿠키를 (memcached와 같은)
    • 응용 프로그램 수준 캐시
    • 데이터베이스 (과 PostgreSQL에 대한 던지는 MySQL은, 차이를 테스트하지 왜!)
    • 사전 응용 프로그램 수준 캐시 (REVERS 프록시 캐시, 니스와 같은 브라우저 캐시)

    필터 입력/이스케이프 출력 : Zend_Form, Zend_Filter, Zend_Validators를 잘 사용하고보기에서 항상 escape()를 사용하는 경우 보안의이 부분은 괜찮을 것입니다. (그리고 이것은 큰 큰 것입니다. 거기서 대부분의 PHP 애플 리케이션에서 문제). 사용자 입력, 쿠키, 어쩌면 다른 데이터베이스, 외부 웹 사이트 등등.

    절대 URL을 피하십시오. : 항상 상대 URL을 사용하십시오. 적어도 프레임 워크에서 제공하는 URL 도우미를 사용하여 URL을 작성하십시오.

    멋진 URL지도를 얻으십시오. : URL을 읽는 것만으로 여러 부분에서 응용 프로그램을자를 수 있다면 응용 프로그램에 필요한 더 복잡한 하드웨어 플랫폼을 구축해야 할 때 도움이 될 것입니다. 관리자는 앱 앞에 역방향 프록시 캐시를위한 일부 구성 파일을 설정해야합니다. 고객이 https에 필요한 부품을 감지 할 수 있습니까? 모든 정적 파일을 특정 경로를 통해 사용할 수 있습니까? URL을 기반으로 캐시 시간 정책을 정의 할 수 있습니까?

    디자인 패턴 : 누구도 코딩 선택의 모든 결과와이 코드를 발전시켜야하는 방식을 이해할만큼 충분히 똑똑하지 않습니다. 디자인 패턴은 좋은 pratices를 수집하는 것입니다.문제에 디자인 패턴 솔루션이 없다면 문제를 이해하지 못할 수도 있습니다. 솔직히 가끔은 더 간단하고 빠른 방법 일 수도 있지만 사용하지 않기로 결정하기 전에 패턴을 알아야합니다.

    많은 PHP 전문가가 프레임 워크를 사용하지 않고 코드를 작성했습니다 (대부분의 프레임 워크는 사실 좋지 않았습니다). 그러나 PHP 세계의 코드 품질은 좋지 않습니다. 많은 웹 사이트에서 XSS를 주입하는 것은 여전히 ​​쉽습니다. 이제는 더 나은 무언가를 얻고, 안녕하세요 세상의 예를 신뢰하지 말고, 좋은 webapp을 만드는 것은 어렵습니다 .--).

  • 2

    새로운 웹 사이트 프로젝트 (특히 PHP를 사용하는 프로젝트)를 시작할 때마다 필자는 종이로 계획을 세웁니다. 파일을 깔끔하고 체계적으로 유지하려면 (아키텍처) MVC 형식을 따르는 것이 현명합니다. Read more about MVC 이것은 내가 사용하고 많은 전문가들이 사용하는 조직 시스템의 종류입니다.

    이 기능을 사용하면 사용자가보고있는 페이지와 독립적으로 정보 (UI)를 입력하므로 웹 사이트의 크기를 확장하고 페이지와 기능을 더 추가 할 수 있습니다.

    또한 코드에 주석을 달아주는 것은 매우 중요합니다. 충분한 웹 사이트를 코딩 할 때 충분한 주석을 달 수는 없으며 훨씬 더 사실 일 수 있기 때문에 더욱 그렇습니다. 웹 사이트를 변경하고 확장하는 동안.

    보안에 관한 한, 보안 위협을 막는 데 사용할 수있는 방법이 있습니다. PHP 응용 프로그램의 보안에 관한 몇 가지 좋은 기사를 읽었습니다. Here is one.

    코딩을 시작하기 전에 웹 사이트의 작동 방식 및 파일 구성을 계획해야한다는 것을 충분히 강조 할 수는 없지만 장기간에 걸쳐 많은 작업과 스트레스를 줄일 수 있습니다.

    이전에 PHP/MYSQL으로 구동되는 웹 사이트를 코딩 한 적이 있습니다. 많은 실수를 저질렀습니다. 내 실수에서 배우고, 파일 구조를 계획하고, 특정 사용자 기반 상호 작용을 계획하는 방법을 실행하십시오. .

    프레임 워크에 대해서는 한 번도 사용한 적이 없지만 연구를 수행했으며 MVC 형식을 사용합니다. 나는 프레임 워크를 배우는 대신에 모든 것을 스스로하고 싶다. 프레임 워크는 반복적 인 코딩을 수행하는 것이 좋지만, 심지어 그 노트에 대해서도 함수를 사용합니다.

    희망이 도움이됩니다. 질문이 있으시면 언제든지 물어보십시오.

    • 크리스는
    +1

    -1 : MVC 형식을 따르는 것이 현명합니다. MVC를 구현하지 않고 GUI 응용 프로그램을 작성하는 것은 매우 어렵습니다. 그러나 그 모든 이야기는 아닙니다. 코드가 패턴에 맞도록 만드는 것입니다. 시작할 좋은 곳이 아닙니다. 보안에 관한 기사 하나를 읽는 것도 해결책이 아닙니다. 동의, 계획은 중요합니다. 코딩 표준 (독점 개발자에게조차도) 역시 중요합니다. 가장 큰 고려 사항은 데이터 액세스를 처리하는 방법에 관한 것입니다. IME의 사소한 ORM은 좋지 않은 아이디어이며, 데이터 바인딩 개체를 만들기 위해 팩토리를 사용하는 것을 선호합니다. 그러나 추상화에 대해서도 생각해 봐야합니다. – symcbean

    +3

    그는 MVC에 익숙하지 않다고 가정하면서 일반적인 질문을 던져서 일반적인 대답을했습니다. 그리고 나는 한 문서가이 모든 것을 다하지 않을 것이라고 전적으로 동의합니다. 이것들은 모두 제안 사항입니다.이 게시물에 대한 추가 사항은 훌륭하지만, Asker에게 해를 끼치 지 않을 것이므로, 부정 투표는 근거가 없다고 생각합니다. 귀하의 의견을 보내 주셔서 감사합니다. –

    관련 문제