Coder Social home page Coder Social logo

Comments (4)

rodrigolopespt avatar rodrigolopespt commented on August 22, 2024 2

Hey guys. So nice to find this repo. Will use it and try to contribute too.
In this particulary case i would go with custom exceptions but can agree with you both, just be consistent with the path you pick so we dont have to deal with different behaviours.

Thank you both!

from laravel-subby.

bpuig avatar bpuig commented on August 22, 2024

Not really, package is consistent with getXByY being a mimic of first(). You suggest changing to mimic firstOrFail. Any examples of a packages using exceptions for this cases or doc references? I'm a bit on the dark here.

from laravel-subby.

boryn avatar boryn commented on August 22, 2024

Hmmm... I don't have any other examples really. More I was looking at the behaviour of what already there is in the library. Calling $user->subscription() we have in the HasSubscriptions.php trait:

$subscription = $this->subscriptions()->where('tag', $subscriptionTag)->first();

if (!$subscription) {
    throw new PlanSubscriptionNotFound($subscriptionTag);
}

so that's why I suggested throwing an exception as well with $subscription->getFeatureByTag('test').

Additionaly when I run $subscription->canUseFeature('blabla'); I get false but it's unclear whether the blabla feature exists at all or not. With the exception it would be clear there is no such a feature. Similarly, with $subscription->getFeatureUsage('blabla') or $subscription->getFeatureRemainings('blabla');.

from laravel-subby.

bpuig avatar bpuig commented on August 22, 2024

I've been looking in other packages what Exceptions do they return. I think it's ok to return null and mimic first(). We'll follow this route from now on and also keep exceptions to the bare minimum.

from laravel-subby.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.