지금처럼 별도 설명 없이 array데이터만 쭉 나열하면 특별한 도움을 드리진 못합니다.
일단 님이 원하시는 array를 객체로 변환하기 위해선
각 array가 담고있는 값들에 대한 의미를 갖는 클래스를 하나씩 선언하여 그 안에 값을 담으면 됩니다.
하지만 이렇게 단순히 array를 객체로 변환한다고 코드가 더 나아지진 않습니다.
그리고 별다른 설계 없이 이렇게 array를 객체로 변환만 해서는 코드가 더 복잡해집니다.
아래 제가 느낀 몇가지 장점을 소개해드릴테니 책이나 외부 사례들을 좀 더 찾아보면서 작은 개인 프로젝트부터 천천히 고민해보시는게 더 좋을것 같습니다.
1. ide의 편의기능을 사용할 수 있다.
요새 대부분의 ide는 클래스 내부 구조를 파악해 자동완성을 제공하고 코드 리팩토링시 객체가 사용하고 있는 위치를 검색해주는 등 다양한 편의기능을 잘 활용할수 있다.
2. array는 각 변수가 갖고있는 성격을 나타내질 못한다.
-- 예약정보 -- ( [BookingCode] => Q [BookingCount] => 2 [CabinClass] => Economy [FareInfoRef] => JPV2BPfB0BKA4lTWAKAAAA== [SegmentRef] => JPV2BPfB0BKA+iTWAKAAAA== ) -- 가격정보 -- ( [Category] => G3 [Amount] => KRW19200 [Key] => JPV2BPfB0BKA7lTWAKAAAAAA )
( 지금처럼 데이터만 쭉 나열한것은 제 3자가 봤을때 아무런 의미를 갖지 못합니다. 데이터가 가지는 성격을 좀 더 설명해주셨으면 답변을 받는데 좀 더 도움이 되지 않았을까 싶습니다.
제 나름대로 의미를 부여해서 2개의 array가 위와 같이 예약정보와 가격정보를 나타낸다고 가정해보겠습니다. )
지금처럼 array에 들어있는 데이터를 쭉 나열했을 경우에는 누군가 설명해주지 않으면 이 값이 무엇을 의미하는지 이해하기가 굉장히 힘듭니다.
하지만 만약 예약정보는 BookingInformation 이란 클래스에 담기고, 가격정보는 Price란 클래스에 담겼었다면
class BookingInformation { private $bookingCode = 'Q'; private $bookingCount = 2; private $cabinClass = 'Economy'; ... } class Price ( private $category = 'G3'; private $amount = 'KRW19200'; private $key = 'JPV2BPfB0BKA7lTWAKAAAAAA'; )
이처럼 아 이 값들이 무엇을 의미하고 있구나라는 것을 어느정도 이해할 수 있습니다.
또한 함수에서 파라메터를 받을 때 타입을 한정지을수가 있습니다.
function reserve($user, $flight) { }
이 코드는 $user에 $flight 정보가 오거나, 뜬금없이 가격정보와 같은 데이터가 들어와도 오류를 발생시키지 않습니다.
function reserve(User $user, Flight $flight) { ... }
이 코드는 User객체와 Flight객체를 명시적으로 받아 다른 데이터가 들어오면 오류를 발생시킵니다.
객체지향적으로 만들면 대부분의 개발 실수는 여기서 걸러집니다.
레시피님이 잘 설명해주신것 같습니다. Collection과 Composite 패턴도 같이 보시면 좋겠어요.
객체지향에 대해서 많은 공부를 하고 있는 중에
OP.GG Style Guides 를 보게되었습니다.
PHP Native Array 를 Dictionary 로써 사용하는 것을 지양하라고 나와있습니다.
Native Array 는 지양하고 최대한 객체를 생성하여 데이터를 관리하면 좋다고 하는데
어떻게 해야될지 감이 안잡힙니다.
현재 저희는 항공 API 를 다루면서 모든 데이터를 배열에 저장하고 있습니다.
예를 들면 아래와 같이 array 로 저장하고 관리하고 있는데 이것을 어떻게 객체를 생성하여 나눈다는것인지
잘 모르겠습니다.
예를 들어서 설명해주시면 정말 감사하겠습니다.