Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:112046 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 77463 invoked from network); 13 Oct 2020 16:28:41 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 13 Oct 2020 16:28:41 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 955BE1801FD for ; Tue, 13 Oct 2020 08:43:51 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Virus: No X-Envelope-From: Received: from mail-il1-f172.google.com (mail-il1-f172.google.com [209.85.166.172]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 13 Oct 2020 08:43:50 -0700 (PDT) Received: by mail-il1-f172.google.com with SMTP id o9so370419ilo.0 for ; Tue, 13 Oct 2020 08:43:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=RAzV91KCEOsJhIkXDZcuUuwVkPjOXxOtfrt06HIv+rQ=; b=B178UACO2Cs6Wyzf6hX1XgzXMob55OJuG4VN3X+xywyF4sKYu9uxun/teMl/SCgiJ6 4ftMCp5raovYeiL/RCVHOX6jX87U1kGNBJKBZ8+TjS1hpBITvv1fI8Q16LZO4fZxhGJp 5pkoH6rVSUwdPDJ8n1YgeR4Uupnnw6NH2hapUlu+ueeVVdPqkgFQY3KEJ2qDa9+mlKR2 eLX3ppe7OapajlTvb0NM58uF6kmJp1COQRdesqPjklKWoXUx1EKURzlDcYxl9vhWV9PT Fs0c66BU5P7PEOUlCifa5Ax1XNapZ5QtasiY99ReBVy8slhc3cSqNqaSl1iTiaa1Crrg lDYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=RAzV91KCEOsJhIkXDZcuUuwVkPjOXxOtfrt06HIv+rQ=; b=rUcqX+YoOZXkM5W5am3BdcmzGZt4MvxmfW7lEdaV2o3yDNQdCexZLC90uwUfyZuiGo YfmXQAUvrtxLEZ3ZgdOTtRoA/jfnOZeO2H+pnNyHe4o4CvlHwtNMH0V6GND7LQMhHwEB /J5sd3nebj+il4+D9624qIi8PFfXeJIiB8y4/aBQvq/4nAeHV5aahCVv2RzqeGFopQ8L Mbt/jK0HLdKltFi+coVxjDRL5SLDcoRCObGViuOd+1V+ixgjwc1bHNCaWIH7gTe3dyf/ c2hBC0ZVIzp264BLqjZUrPee6OkntkZmw63wJ4SWq8CGc9Ek2AfHBjmtXMZ0F+1l1mjM ZCeg== X-Gm-Message-State: AOAM532XfQ4BMNd6ksogJ8oniBzllEGBl1HxvLq68+G+Bppc7nysCYvv vE4VhIhXjI175aH+R/P9l81edlpztXtJAJDkzfSQzTWr1Q4= X-Google-Smtp-Source: ABdhPJxFO4Ivw5M47CQVSsB1aCfAeKf49MzGgvet98AliqsQHFEjXyBDF8HunocPSMcnQsVOxGdzHPHaLARDcMKHxbE= X-Received: by 2002:a05:6e02:11b4:: with SMTP id 20mr450966ilj.271.1602603829930; Tue, 13 Oct 2020 08:43:49 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Tue, 13 Oct 2020 16:43:39 +0100 Message-ID: To: PHP internals Content-Type: multipart/alternative; boundary="000000000000ffaf3405b18f47c8" Subject: Re: [PHP-DEV] Re: want an Object-oriented interface for HashContext From: rowan.collins@gmail.com (Rowan Tommins) --000000000000ffaf3405b18f47c8 Content-Type: text/plain; charset="UTF-8" On Tue, 13 Oct 2020 at 16:33, Hans Henrik Bergan wrote: > also the sample class in the 3v4l link has an issue i hadn't thought > of: i wanted to support method chaining, so i made nearly everything > return `:self` , but hash_update_stream() returns int, the number of > bytes actually read from the stream. that could easily be fixed with a > `updateStream($stream, int $length = -1, int &$bytesRead = null):self` > or something tho > I think I'd prefer to drop the fluent interface (returning void on most things, and relevant values on others) than have to use reference parameters. Since PHP doesn't have actual "out" parameters, references like that are awkward for static analysis; and simple things like using them in conditions becomes much more verbose: $result = null; $foo->updateStream($bar, bytesRead: $result) if ( $result > 42 ) ... vs if ( $foo->updateStream($bar) > 42 ) ... Regards, -- Rowan Tommins [IMSoP] --000000000000ffaf3405b18f47c8--