2013-03-13 2 views
1

필자는 잠시 동안 PHP로 코딩을 해왔지만, 주로 함수와 원시 PHP로 코딩했습니다.PHP : 클래스에 모든 코드를 작성해야합니까?

저는 코드를 더 깔끔하고 효율적으로 작성해야한다고 생각하기 시작했습니다. 나는 여전히 수업에서 내 머리를 터뜨릴 수 없다. 클래스에 모든 코드를 작성해야합니까?

예를 들어 내 스크립트 중 하나는 관리자가 사이트의 다양한 사용자 그룹의 권한을 편집 할 수있게하는 '사용 권한 관리자'입니다.

전통적으로, 나는 이것을 기능과 겹침있는 스크립트로 작성했을 것입니다. 그러나 이것을 수업으로 쓰는 것이 낫겠습니까? 그렇다면이 수업에는 무엇이 포함되어 있습니까? 사이트 주위에서 사용하기위한 별도의 사용 권한 클래스와 관리자 편집 영역을위한 별도의 사용 권한 클래스가 있습니까?

또한 사이트에 API가 있습니다. 이 모든 것이 하나의 클래스로 작성되어야합니까?

공용 (공유) 함수를 사용해야합니까?

감사합니다.

+4

OO 디자인에 대한 책을 받아 웹 개발에 적용하는 방법을 고려해야합니다. 클래스에 코드를 고정 시키면 마술처럼 코드를 체계적으로 만들지 않습니다. 이 주제는 너무 광범위하여 여기에있는 질문에서 대답 할 수 없습니다. –

+0

이런 종류의 토론이 채팅에 더 적합하다고 생각합니다. OOP는 올바른 컨텍스트에서는 훌륭하지만 "모든 * 코드를 작성해야합니까?"라는 질문에 대한 답을 얻기 위해 아마도 문제가 너무 많을 수 있습니다. – Emissary

+0

내 대답은 '예'이지만, 이것은 하나의 대답으로 된 질문이 아니기 때문에이 토론을위한 적절한 장소가 아닙니다. – IMSoP

답변

1

제 생각에는 모든 것이 프로젝트 규모에 달려 있습니다. Magento를 사용하여 잠시 동안 작업 해 보았습니다. 너무 커서 클래스와 패킷으로 그룹화해야합니다. 코드를 읽고 클래스가 분리 된 경우 프로젝트 구조를 쉽게 분석 할 수 있습니다. 또한 한 달 또는 1 년 후에 프로젝트를 수정해야 할 때 좋은 구조가 다시 학습하는 데 도움이됩니다.

1

동일한 엔티티에 속하거나 특정 환경에 적용될 특정 기능 세트 및 변수 집합을 사용할 때 클래스에 항목을 쓸 때 유용합니다. 조직 감각을 부여하고 작업을 위임하며 코드 반복을 방지합니다.

위의 내용이 거짓 인 상황에서는 완전히 처분 할 수 있습니다. 하나의 특정 장소에서만 실행되는 수업을 작성하는 데는 아무런 의미가 없습니다. 당신은 단지 $user->name에서 같은 객체와 같은 스타일의 구성 정보 세트를 갖고 싶어

또한, $user->age 등 당신은 단순히이 작업을 수행 할 수 있습니다

$user = (object)array(
    'name' => 'John', 
    'age' => 20 
); 
+1

마지막 코드 스 니펫을 다시 작성하여 오브젝트에 캐스트하는 것이 왜 필요합니까? PHP 배열은 모든 것을 클래스가없는 객체처럼 처리 할 수 ​​있습니다. – IMSoP

+0

주로 외모를위한 것입니다. 코드가 읽기 쉽게됩니다. – Havenard

+0

Meh. 맛의 문제는 아닐지 모르지만,'$ user [ 'name']'는 나에게 잘 읽는다. – IMSoP

0

당신은에서 그 질문에 접근해야 다른 각도. 당신이해야한다고 생각하기 때문에 OOP를 사용하지 마십시오.

은 자신에게 물어 : 나는 내 응용 프로그램의 다른 부분에서 재사용 할 수있는 내 응용 프로그램의 일부

  1. 이 있습니까? 그런 다음 스크립트에서 제거하여 함수 나 클래스에 넣을 수 있습니다.

  2. 코드의 일부를 교환하여 응용 프로그램의 주요 부분을 다시 작성하지 않고 동작을 변경하려는 시나리오가 있습니까? 그러면 클래스와 인터페이스가 당신을위한 것입니다.

OOP 원칙을 사용하는 또 다른 좋은 주장은 코드의 테스트 가능성이 증가한다는 것입니다. 인터페이스를 사용하면 테스트 시간에 모의 객체 또는 스텁 객체를 교환 할 수 있습니다.

관련 문제