Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:95060 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 95242 invoked from network); 12 Aug 2016 08:19:59 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 12 Aug 2016 08:19:59 -0000 Authentication-Results: pb1.pair.com header.from=lester@lsces.co.uk; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=lester@lsces.co.uk; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain lsces.co.uk from 217.147.176.230 cause and error) X-PHP-List-Original-Sender: lester@lsces.co.uk X-Host-Fingerprint: 217.147.176.230 mail4-3.serversure.net Linux 2.6 Received: from [217.147.176.230] ([217.147.176.230:60610] helo=mail4.serversure.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 15/05-56950-EA68DA75 for ; Fri, 12 Aug 2016 04:19:58 -0400 Received: (qmail 17336 invoked by uid 89); 12 Aug 2016 08:19:55 -0000 Received: by simscan 1.3.1 ppid: 17329, pid: 17332, t: 0.0781s scanners: attach: 1.3.1 clamav: 0.96/m:52/d:10677 Received: from unknown (HELO ?10.0.0.7?) (lester@rainbowdigitalmedia.org.uk@81.138.11.136) by mail4.serversure.net with ESMTPA; 12 Aug 2016 08:19:55 -0000 To: internals@lists.php.net References: <10fbcb03-5de8-4d9a-da1c-7e2bf77937cb@lsces.co.uk> <5657afc7-7569-5fc4-4a5a-27ed786c4fa5@gmail.com> <0825c173-5cb4-7f65-cf34-b45ca30919a3@lsces.co.uk> <8646c3ad-b929-cb0b-bad4-52a0a7160d16@gmail.com> <11ce571b-964b-5a3e-9f2f-3f69a8bc20b4@lsces.co.uk> <7d9db8d5-ae7a-4123-14f4-f76fb6d764c5@gmail.com> Message-ID: Date: Fri, 12 Aug 2016 09:19:55 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2 MIME-Version: 1.0 In-Reply-To: <7d9db8d5-ae7a-4123-14f4-f76fb6d764c5@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] Simple variable handling. From: lester@lsces.co.uk (Lester Caine) On 11/08/16 23:17, Rowan Collins wrote: > You've mentioned a lot about flexibility, and that the feature could be > used in multiple styles, but some concrete examples of how *you* would > use it might help define what the feature needs to do (and not do). Currently my code has lots of checks for constraints and that is hard coded. Docblock helps to provide documentation and help in the IDE and there is no fundamental reason to change anything ... except. Small elements of the constraint process are being introduced into the process. You can now complain if the variable is not an integer but it does not remove the need to still check if the integer is valid. There have been various discussions on how the rules for that extra step could be added to PHP and in my book that has been there for years in the docblocks, but other layers are being proposed to add them, and Yasuo is now hiding them in his validate functions, so why not SIMPLY add a set of functions to variables to allow those rules to be freely available and managed on a variable by variable basis. The validate array function would then simply iterate over a cleanly defined set of variables? Or each variable can be managed in it's own right. I'm thinking $var->setConstraint() $var->setEscape() $var->setReadOnly() Rather than having to build 'reflections' classes to pull out data that a simple $var->is_valid or echo $var will output a correctly escaped piece of text. -- Lester Caine - G8HFL ----------------------------- Contact - http://lsces.co.uk/wiki/?page=contact L.S.Caine Electronic Services - http://lsces.co.uk EnquirySolve - http://enquirysolve.com/ Model Engineers Digital Workshop - http://medw.co.uk Rainbow Digital Media - http://rainbowdigitalmedia.co.uk