FamilySearch/gedcomx-php

Split the library into two?

Closed this issue · 1 comments

This repo contains both classes for the GedcomX object model as well as code for making HTTP requests to the FamilySearch API. There are common use cases where you would want the former without the latter, such as using GedcomX data that wasn't retrieved from the API or wanting to write the networking code yourself.

I propose we split out the Rs/Client code into gedcomx-php-client and keep the object model here (since the name of this repo lends itself quite nicely). gedcomx-php-client will use gedcomx-php as a dependency and maintain exactly the same interface and functionality. gedcomx-php will have it's major version increased so we don't break anyone using the current 2.x version.

I've actually already done most of the work. The gedcomx-php#split contains the working object model with the Client code and it's dependencies ripped out. I have a working version of gedcomx-php-client in york-solutions/gedcomx-php-client#split. This was all done to prove that it would work, especially rewriting the embed() methods as static functions on a utility class so that the logic was in gedcomx-php-client instead of gedcomx-php on the classes.

Is anyone opposed to this?