Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:72042 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 86947 invoked from network); 3 Feb 2014 06:58:52 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 3 Feb 2014 06:58:52 -0000 Authentication-Results: pb1.pair.com header.from=yohgaki@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=yohgaki@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.215.43 as permitted sender) X-PHP-List-Original-Sender: yohgaki@gmail.com X-Host-Fingerprint: 209.85.215.43 mail-la0-f43.google.com Received: from [209.85.215.43] ([209.85.215.43:59562] helo=mail-la0-f43.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 3D/F0-15628-A2E3FE25 for ; Mon, 03 Feb 2014 01:58:51 -0500 Received: by mail-la0-f43.google.com with SMTP id pv20so5062966lab.2 for ; Sun, 02 Feb 2014 22:58:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:message-id:subject:to:content-type; bh=/AxvF15TFyWh3HzO51JI5D7j5fdzWZM5BSB9hOjGxU8=; b=g3gS1bdNlC0mwwBPwe1i+F0m0KOiIjg6Bt90Xhh9IosUOjtxtZywS0LPfh9KO6xUQw pFU9ukOaRQQN32aB5IEGXQcAmgeUEcivoB3WZFrdg/rkBbztyfB2m+KSpyLzNRpWdHdr hcjKCE8Idrw8JgAvazVebC5gIo8ztFunRAjin32cylDAMML2yWECJpl3Qa2nOP/++4pP pfDOFQOg3mx7RbMyLHMaaFPij5KUeZr4Wj6jIQaUohIhSM15qTCGz+wUKuTmZNSeT0fU TPZzp+mfvTwsNt1HmzvdlYCqf+lmD/pJ/nJ2xDmsUIeH+oNQwqEZOHwGOh5thNnKORUR m4nQ== X-Received: by 10.152.43.47 with SMTP id t15mr461342lal.38.1391410726952; Sun, 02 Feb 2014 22:58:46 -0800 (PST) MIME-Version: 1.0 Sender: yohgaki@gmail.com Received: by 10.112.199.37 with HTTP; Sun, 2 Feb 2014 22:58:06 -0800 (PST) Date: Mon, 3 Feb 2014 15:58:06 +0900 X-Google-Sender-Auth: xkB1o3TuolPjRqjUn_Tsr8uTMK0 Message-ID: To: "internals@lists.php.net" Content-Type: multipart/alternative; boundary=001a11c241001de3aa04f17b0e76 Subject: Declare minimum PHP version required? From: yohgaki@ohgaki.net (Yasuo Ohgaki) --001a11c241001de3aa04f17b0e76 Content-Type: text/plain; charset=UTF-8 Hi all, I thought it might be good for us to have declaring minimum PHP version required to execute script. http://jp1.php.net/manual/en/control-structures.declare.php Something like ='5.6.0'); // or PHP_VERSION_ID? using = as minimum as it could be a little faster // and no change in declare() syntax. declare(php_version=50600); If version mismatches, raise compile error and exit. Something like Compile error: PHP 5.6.0 or later is required to compile script. Your PHP version is 5.x.x. The same thing can be done by version_compare() and die(), but it does not make much sense executing script only to check PHP version and die, especially for libraries. For library, it is preferred to fail when it is included, not when it is executed. I wouldn't write version_compare() and die() for libraries, but I may use it if it's a declare(). If this is adopted widely, it may help transition to higher versions hoping users to consider compile error more seriously. Issue would be current behavior for unsupported declaration. $ php -r "declare(php_version=050600);" Warning: Unsupported declare 'php_version' in Command line code on line 1 It does not raise E_ERROR, but E_WARNING. Just an idea. Any comments? -- Yasuo Ohgaki yohgaki@ohgaki.net --001a11c241001de3aa04f17b0e76--