2012-06-20 3 views
0

입니다.내 PHP 응용 프로그램 디렉토리 구조는 내가 늙은 PHP는 웹 응용 프로그램에서 일하고 있어요 미로

문제는 모든 파일의 구성이 다소 불규칙하다는 것입니다. 내가 가장 좋아하는 것은 '포함'폴더와 '포함'폴더가 모두 한 수준에 있습니다.

모든 파일을 다시 배열하는 가장 큰 장애물은 대부분의 require 및 include 문이 원시 문자열 파일 경로이고 일부는 변수입니다.

나의 현재 계획은 다음과 같습니다

  1. 이 있어야 할 곳에 경로 인 경우 확인하는 super_require ($ 경로) 함수를 작성하고하지 않을 경우 종료 파일 이름까지의 전체 코드 트리를 검색 찾았 어.

  2. 모두 바꾸기 및 바꾸기 super_require() 포함.

  3. 모든 파일을 내 마음대로 정리하십시오.

  4. 이 계획은 미친 오류가 발생하기 쉽기 때문에 어떻게 작동했는지 궁금합니다.

제 질문은 누구나이 상황에서 더 좋은 계획을 알고 있습니까?

+0

응용 프로그램이 클래스로 배포 되었습니까, 아니면 그렇게하고 있습니까? –

+0

@Pekka이 코드의 대부분은 선사 시대의 것입니다. 글자 그대로 2003 년부터. 나는 그때 수업을했는지 알지 못한다.) – Matt

답변

2
  1. 워크 스테이션에 로컬로
  2. 수정을 파일을 재 배열 모든 준비 또는 개발 서버
  3. 테스트하기 The super_require 생각이입니다 생산

에 작업 코드를 전파 포함 미끄러운 경사. 다른 언어 구문과 라이브러리 함수로 마법 함수를 래핑하기 시작 하시겠습니까? 몇 년 후에 어떻게 그것을 유지할 것입니까?

코드와 프로그램 구조를 각각의 리팩터링과 함께 더 잘 만들어보십시오.


PHP 자체에는 마법 솔루션의 어두운 기록이 있습니다. 그들은 종종 더 많은 문제를 만들어 결국 해결하게됩니다.

Register globals은 자동으로 GET 및 POST 변수를 전역 변수의 일반 변수로 가져옵니다. 이로 인해 외부인은 요청에 변수 값을 추가함으로써 변수 값을 정의 할 수 있었고 수많은 보안 버그를 만들 수있었습니다.

그러나 가장 유사한 예는 에 즉시 데이터베이스 쿼리 의도되지 않은 데이터를 가지고로 개발자들에게 엄청난 두통을 준 자동으로 모든 GET 및 POST 변수를 탈출 SQL을 추가 magic quotes입니다. 몇 년 동안이 솔루션은 에 더 힘들어하고 처음에 추가하는 것보다 잊어 버리기 쉽다 인용 마법을, 코드를 추가하는 것이 었습니다.

일반적인 교훈은 코드가 개발자가 결정적인 방식으로 수행하고자하는 작업을 정확하게 수행하고 개발자보다 더 똑똑해 지려고 시도하지 않는 것입니다.시간을 갖고 올바른 방법으로 문제를 해결하고 미래의 문제를 피하십시오.

+2

"각 리펙토링으로 코드와 프로그램 구조를 개선하려고 노력한다." 출현! 한번에 전체 짐승을 재배치 할 필요는 없습니다. 한 번에 하나의 덩어리로 할 수 있습니다! – Matt

관련 문제