Skip to content
This repository has been archived by the owner on Jan 10, 2024. It is now read-only.

Still maintained? #71

Open
DerManoMann opened this issue Dec 21, 2016 · 11 comments
Open

Still maintained? #71

DerManoMann opened this issue Dec 21, 2016 · 11 comments

Comments

@DerManoMann
Copy link

I am a bit sad to have to keep asking this on projects I use, but looking at the lack of commits and the bit-rotting PRs is it time to move on to a fork?

@wulftone
Copy link

Would also like to see some activity from salesforce on this. It's lagging far behind modern PHP versions and becoming a liability.

@MeuhMeuh
Copy link

I'd suggest to implement your own tools. They don't seem to consider the third party developers with very much respect.

@rmckeel
Copy link

rmckeel commented Feb 10, 2017

I would prefer this library were maintained, however after banging my head against the SalesForce wall long enough, I found this library: https://github.com/ryanbrainard/forceworkbench/tree/37.0.2. It is fairly modern (v37 API) and has more 'eyes' on it. It can also do just about anything you can think of with the SalesForce API from a PHP standpoint (one notable exception, the Streaming API requires JavaScript, and is not integrated with PHP). Hope that helps someone save a half day of head banging..!

This library is also very handy to run locally and 'kick the tires' of the APIs and capabilities.

@MeuhMeuh
Copy link

Seems like a huge library. A guzzle client with a wrapper is usually enough.

@rmckeel
Copy link

rmckeel commented Feb 11, 2017

@MeuhMeuh Nifty, I hadn't heard of Guzzle.

My feel after about 15 hours in is that SalesForce is so complex, one little wrapper won't be enough. Consider the streaming API requiring a login (OAuth or SOAP API call), then creating some code in Apex, then streaming it via the Bayeux protocol. Pretty hairy, in my mind (not as simple as a wrapper). However, I would love to see a simple PHP library for doing this. Until then, I'm trying to integrate the workbench into a 'backend' library, and I think it will work (e.g. has controllers for logging in I can tap into).

@MeuhMeuh
Copy link

I am internally using a Guzzle client that we developed and that has a thing wrapper to handle the OAuth authentication. We are using the REST API though, I haven't heard about the Bayeux protocol ; I'm sorry it can't work for your case. However, if you need any help or feedbacks about what we did, we can talk more about that :)

@rmckeel
Copy link

rmckeel commented Feb 13, 2017

Hi @MeuhMeuh Neat! I'd love to see what you did if it is shareable for commercial use, it is possible your lightweight code could work in my case (and is something I've been looking for).

@DerManoMann
Copy link
Author

Had my hopes up after the merge in March, but 1 merge in 3 month with so many low hanging fruit is just not enough...

@MeuhMeuh
Copy link

Well what you just need is to use a Guzzle client, and that's it. I don't see the point in using such a big library ; the abstraction is not worth it.

Doing calls to /composite /sobjects/XXX/... and so on are easy to handle. The errors are too.
I unfortunately can't give you my code, but just for you to know, our client is approx. a length of 300 lines, and is based on an authenticator that is ~ 220 lines.
Both are wrapping a Guzzle client. We have a few abstraction methods that permit us to not have to deal with the inner transaction when communicating with Salesforce.

  • The authenticator is managing the authentication through Salesforce by using our credentials to authenticate ourselves, and storing the returned tokens. That's it.
  • The client is using the authenticator to auth before doing any call and then requesting the token from the authenticator. Then, we are not abstracting any call : the caller is just doing calls by specifying the HTTP method, the endpoint, the body if any, etc.

@aaronbauman
Copy link

At Message Agency, we've also found that REST API is sufficient for 80 - 90% of use cases. But technically there are still a handful of API resources and features that REST API doesn't support. Just a couple examples:

  • SOAP allows create/update/upsert of 200 records in a single API call
  • REST API doesn't support undelete, merge, convertLead, sendEmail, etc.

These shortcomings fortunately aren't deal-breakers for us, which is why we've also moved on to a guzzle-based REST client for our Drupal solutions. Right now it's very tightly coupled with Drupal, but I'm open to pull requests if anyone has a need for it.

https://github.com/messageagency/sfd8/tree/8.x-3.x/src/Rest

@MeuhMeuh
Copy link

Hey Aaron,

Will try to take a look when I got some time ;)

Thanks for the input !

@uuf6429 uuf6429 mentioned this issue Mar 20, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants