사용자 유형 A, B, C의 세 가지 유형이 있습니다. 따라서 사용자 기본 클래스와 파생 클래스가 3 개 있습니다. 그러나 사용자가 동시에 2 가지 유형이 될 수 있습니다. 어떻게하면 사용자의 유형 (들)이 응용 프로그램에있는 액세스의 종류를 정의 할 것인지를 명심하면서 적절한 방식으로이를 처리 할 수 있습니까?PHP 객체 지향 - 여러 사용자 역할을 구현하는 가장 좋은 방법
4
A
답변
5
나는 decorator pattern을 사용합니다.
$user = new User();
$user = new Role1 ($user);
$user = new Role2 ($user);
3
젠드 프레임 워크의 ACL 클래스를 살펴 보았습니다. 다른 사용자를 위해 여러 역할을 수행 할 때 유용합니다. 또한 Zend ACL의 사용에 대해 논의하는 많은 기사와 블로그가 있습니다. ACL에 대한 자세한 일반 : wikipedia - role-based access control
5
어쩌면 당신은 당신의 디자인을 재정의해야합니다 wikipedia - acl
서로 다른 역할과 권한을 다루는 또 다른 방법은 역할 기반 액세스 컨트롤입니다. 나는 두 개의 클래스를 정의하는 것이 바람직 할 것입니다라고 말하고 싶지만 :
- 역할 클래스
- 사용자 클래스
사용자 클래스는 다음 역할의 컬렉션을 가질 수 있습니다. 그러면 전체 디자인이 더 간단하고 깨끗해질 것입니다.
사용자는 하나 또는 다른 역할을 가질 수 있습니다. 그러나 사용자는 본질적으로 가질 수있는 역할이 아닙니다. 그것은 단지 역할을 맡을 수있는 능력을 가지고 있습니다.
물론 다른 포스터에서 말한대로 데코레이터 패턴을 사용할 수 있습니다.
+0
이 디자인이 마음에 들면 내 사이트에서이 디자인을 사용하려고합니다. – JimDaniel
관련 문제
- 1. PHP 객체 지향 가시성
- 2. 사용자 인증을 구현하는 가장 좋은 방법
- 3. 프리웨어 객체 지향 PHP 편집기
- 4. PHP, jQuery, Ajax 객체 지향
- 5. PHP 객체 지향 foreach 루프
- 6. ASP.NET 웹폼에 여러 개의 기본 단추를 구현하는 가장 좋은 방법
- 7. 도와주세요 "get"객체 지향 PHP
- 8. 객체 지향 코드를 구성하는 가장 좋은 방법은 무엇입니까?
- 9. 주식 시세 클래스를 구현하는 가장 좋은 방법
- 10. 안드로이드 - 여러 활동에 걸쳐 LocationListener를 구현하는 가장 좋은 방법
- 11. 객체 지향 프로그래머를위한 스키마
- 12. 객체 지향 프로그래머
- 13. 삭제할 때 좋은 객체 지향 디자인, C++
- 14. 가장 순수한 객체 지향 언어는 무엇입니까?
- 15. GWT - 가로형 Navbar를 구현하는 가장 좋은 방법
- 16. MPMoviePlayer 제한 시간을 구현하는 가장 좋은 방법
- 17. EF에서 더티 플래그를 구현하는 가장 좋은 방법
- 18. 사이트에서 자연어 검색을 구현하는 가장 좋은 방법
- 19. php4에서 try catch를 구현하는 가장 좋은 방법
- 20. 확장 방법을 구현하는 가장 좋은 방법
- 21. 객체 지향 CSS
- 22. 모델을 올바르게 디자인하는 방법 : 객체 지향 또는 "패키지"지향?
- 23. 객체 지향 PHP 디자인에서 HTML을 어디에서 렌더링해야합니까?
- 24. PHP Exam - 객체 지향 프로그래밍 - 답변은 무엇입니까?
- 25. 객체 지향 설계 제안
- 26. C++ 객체 지향 디자인
- 27. 객체 지향 설계
- 28. 객체 지향 방식으로 다른보기 섹션을 표시하는 방법
- 29. vb6에서 객체 지향 | 좋은 디자인에 대한 좋은 참조가 있습니까?
- 30. 사용자 ID 목록을 저장하는 가장 좋은 방법
제안을 주셔서 감사합니다, 그러나 나는 당신이 나를 위해 플랫폼 솔루션을 찾고 있지 않다는 것을 알고 있다고 확신합니다. 나는이 문제를 개념적 수준에서 어떻게 다루는 것이 가장 좋은지 이해하고 싶다. –
그래, 나는 당신이 상자 솔루션을 찾고 있지 않다는 것을 이해하고, 나는 당신이 zend 프레임 워크에서 그것을하는 방식을 살펴 보았다고 제안했다. 좋은 예를 살펴 봄으로써 개념을 이해하는 것이 더 쉬워지고, imho zend 프레임 워크는 문서화 된 acl을 잘 구현하고 있습니다. 게시물에 좀 더 일반적인 링크를 붙여 넣었습니다 + 비슷한 방식으로 접근하는 링크 기반 액세스 제어. 건배, Jørgen – rakke
+1 건식 원칙을 제안합니다. 나는 또한 Zend_Auth + Zend_Acl 솔루션이 유용하다고 생각한다. – nuqqsa