{"action":"created","issue":{"url":"https://api.github.com/repos/webonyx/graphql-php/issues/383","repository_url":"https://api.github.com/repos/webonyx/graphql-php","labels_url":"https://api.github.com/repos/webonyx/graphql-php/issues/383/labels{/name}","comments_url":"https://api.github.com/repos/webonyx/graphql-php/issues/383/comments","events_url":"https://api.github.com/repos/webonyx/graphql-php/issues/383/events","html_url":"https://github.com/webonyx/graphql-php/issues/383","id":376206554,"node_id":"MDU6SXNzdWUzNzYyMDY1NTQ=","number":383,"title":"Request for clarification about project's goals","user":{"login":"nagledb","id":727435,"node_id":"MDQ6VXNlcjcyNzQzNQ==","avatar_url":"https://avatars0.githubusercontent.com/u/727435?v=4","gravatar_id":"","url":"https://api.github.com/users/nagledb","html_url":"https://github.com/nagledb","followers_url":"https://api.github.com/users/nagledb/followers","following_url":"https://api.github.com/users/nagledb/following{/other_user}","gists_url":"https://api.github.com/users/nagledb/gists{/gist_id}","starred_url":"https://api.github.com/users/nagledb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nagledb/subscriptions","organizations_url":"https://api.github.com/users/nagledb/orgs","repos_url":"https://api.github.com/users/nagledb/repos","events_url":"https://api.github.com/users/nagledb/events{/privacy}","received_events_url":"https://api.github.com/users/nagledb/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-11-01T00:14:14Z","updated_at":"2018-11-01T20:23:26Z","closed_at":null,"author_association":"NONE","body":"In [Feature Request: Directive Visitors / Resolvers](https://github.com/webonyx/graphql-php/issues/299#issuecomment-403222398), @vladar states:\r\n\r\n> We follow graphql-js reference implementation which doesn't provide such tools at the moment. \r\n\r\nOver at the [nuwave/lighthouse](https://github.com/nuwave/lighthouse) project, in [New GraphQL implementation](https://github.com/nuwave/lighthouse/issues/109#issuecomment-404663552), @vladar states:\r\n\r\n> I am not against competition even though I think it would be much better for the PHP GraphQL community to have a single base library to avoid community fragmentation.\r\n>\r\n> But since you guys never tried to reach me out to discuss this, competition is fine too %) But I'd like it to be fair. So please when you criticise other people's work - at least give some links so that we could improve. I am talking about this part:\r\n>> I've heard that people have had trouble implementing features like Schema Decorators on top of webonyx/graphql-php\r\n\r\nIn the first, you say you want to follow the graphql-js reference implementation and appear to cite that as a reason for why you don't want to add additional features. But then in the second, you say you want this to be the single graphql library the community forms around and suggest that you're open to areas for improvement. The thing that really stands out to me is that the features in question are very similar between the two threads: one is discussing directives including schema directives, whereas the other references schema decorators which are functionally very similar to schema directives.\r\n\r\nI think both goals are reasonable. It's very reasonable to focus on following the reference implementation. It's also very reasonable to want the community to invest in a single GraphQL implementation and expand it to meet people's needs. But those two goals are fundamentally in conflict. I don't think you can do both effectively. (I think [Apollo](https://www.apollographql.com/) is pretty good proof that the reference implementation doesn't adequately meet people's needs.)\r\n\r\nCould you please clarify which of the two goals is going to be your primary focus going forward?\r\n\r\nI apologize if it seems like a pushy question, but it's an important decision-making point for me. If you intend to continue adhering strictly to the reference implementation, then that tells me I shouldn't bother making feature requests (or pull requests) that are inconsistent with the reference implementation. It also tells me that maybe I should seriously consider another library if it provides features I need that I feel this library is lacking (case in point, easy support for custom directives). And given the discussion in that thread on the Lighthouse project, I doubt I'm the only one who would find the clarification valuable."},"comment":{"url":"https://api.github.com/repos/webonyx/graphql-php/issues/comments/435174319","html_url":"https://github.com/webonyx/graphql-php/issues/383#issuecomment-435174319","issue_url":"https://api.github.com/repos/webonyx/graphql-php/issues/383","id":435174319,"node_id":"MDEyOklzc3VlQ29tbWVudDQzNTE3NDMxOQ==","user":{"login":"nagledb","id":727435,"node_id":"MDQ6VXNlcjcyNzQzNQ==","avatar_url":"https://avatars0.githubusercontent.com/u/727435?v=4","gravatar_id":"","url":"https://api.github.com/users/nagledb","html_url":"https://github.com/nagledb","followers_url":"https://api.github.com/users/nagledb/followers","following_url":"https://api.github.com/users/nagledb/following{/other_user}","gists_url":"https://api.github.com/users/nagledb/gists{/gist_id}","starred_url":"https://api.github.com/users/nagledb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nagledb/subscriptions","organizations_url":"https://api.github.com/users/nagledb/orgs","repos_url":"https://api.github.com/users/nagledb/repos","events_url":"https://api.github.com/users/nagledb/events{/privacy}","received_events_url":"https://api.github.com/users/nagledb/received_events","type":"User","site_admin":false},"created_at":"2018-11-01T20:23:26Z","updated_at":"2018-11-01T20:23:26Z","author_association":"NONE","body":"Thank you for the thoughtful and patient response, @vladar!\r\n\r\nI actually didn't realize that Apollo was built on top of the reference implementation. That misunderstanding was pretty influential in a lot of my thoughts above. Knowing that definitely gives me much more confidence about using webonyx/graphql-php as a foundation and helps mitigate my concerns about the two goals being in conflict.\r\n\r\nThe other key takeaway for me is that you're willing to deviate from the reference implementation for spec-compliant features that cannot be implemented on top of the library's current API.\r\n\r\nYour point about creating new features in separate projects that build on this, rather than in this project, also makes a lot of sense to me.\r\n\r\nOverall everything you said makes sense and is very encouraging to me as a user of the library."}}
{"actor":{"display_login":"nagledb"}}