[Koha-devel] Bug 18539 - Forbid Koha::Objects->find calls in list context

Marcel de Rooy M.de.Rooy at rijksmuseum.nl
Wed Dec 13 14:50:21 CET 2017


Find is supposed for retrieving one result not multiple ones. Use search instead.

Using find in a list context is not correct.

________________________________
Van: koha-devel-bounces at lists.koha-community.org <koha-devel-bounces at lists.koha-community.org> namens Julian Maurice <julian.maurice at biblibre.com>
Verzonden: woensdag 13 december 2017 14:34:07
Aan: koha-devel at lists.koha-community.org
Onderwerp: [Koha-devel] Bug 18539 - Forbid Koha::Objects->find calls in list context

Hi developers,

I stumbled upon a line of code recently and I can't figure out why it
has be done this way. I hope you can help me :)

The line in question is in Koha::Objects::find:

    croak 'Cannot use "->find" in list context' if wantarray;

I read the two bugs (18539 and 18179) and the link given by Jonathan but
I still don't understand why the call in list context has been
forbidden. Why not simply return undef (an explicit undef) when no
records have be found ? It would work as expected in scalar and list
contexts.

Here is a possible rewrite of 'find' to better explain what I mean:

    sub find {
        my ( $self, @pars ) = @_;

        my $object = undef;

        @pars = grep { defined } @pars;
        if (@pars) {
            my $result = $self->_resultset()->find(@pars);
            if ($result) {
                $object = $self->object_class()->_new_from_dbic($result);
            }
        }

        return $object;
    }

@a = Koha::Patrons->find('foo'); # would result in @a = (undef)
{a => K::P->find('foo'), b => 'bar'}; # would result in {a => undef, b
=> 'bar'}

Please tell me what you think.

--
Julian Maurice <julian.maurice at biblibre.com>
BibLibre
_______________________________________________
Koha-devel mailing list
Koha-devel at lists.koha-community.org
http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.koha-community.org/pipermail/koha-devel/attachments/20171213/c55ce888/attachment.html>


More information about the Koha-devel mailing list