Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:82373 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 94515 invoked from network); 10 Feb 2015 12:19:14 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 10 Feb 2015 12:19:14 -0000 Authentication-Results: pb1.pair.com header.from=lisachenko.it@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=lisachenko.it@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.212.182 as permitted sender) X-PHP-List-Original-Sender: lisachenko.it@gmail.com X-Host-Fingerprint: 209.85.212.182 mail-wi0-f182.google.com Received: from [209.85.212.182] ([209.85.212.182:43237] helo=mail-wi0-f182.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 41/F6-47508-147F9D45 for ; Tue, 10 Feb 2015 07:19:14 -0500 Received: by mail-wi0-f182.google.com with SMTP id n3so24734645wiv.3 for ; Tue, 10 Feb 2015 04:19:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=AwPNnh6WyaAz2K6EI1EXxXLqZNboO/Jwx76fREonsh0=; b=KQXbQTz+DUDKwGgQ7tZ+mRTQ0uFHOStqeUJY0XGFnbYj1JP0+X/dX436PBjBuiwyD7 i9dShLpQ6B0pBuEJO6x128gBIqS+Ae5Xoo91hEJCyheZyOCqdVEbultQFaJ0xhYoFrBP gAa5O7NwCXFmtJgqXWlpFrcZYwyOSFg18jEl6Swrv+AAimg2B1H3jpQ+kSw785NjvTK8 ZI/1gOta+IQ6PPKdHWVMcgOPCWZEkybM+QXVLaPTSoRNI02c3YK61tn1T9jDTNSuVJ8q vq8tDdL/DpY8fIP9NURboKnZWuzIfkVuQ1BCYwizGK4VTmrPdPl77D6Hz0xXyRCS9mpF jizQ== MIME-Version: 1.0 X-Received: by 10.194.71.110 with SMTP id t14mr48481043wju.58.1423570751044; Tue, 10 Feb 2015 04:19:11 -0800 (PST) Received: by 10.194.154.229 with HTTP; Tue, 10 Feb 2015 04:19:10 -0800 (PST) In-Reply-To: References: <54D7ED22.3080001@gmail.com> <54D9DE4B.7030509@lsces.co.uk> Date: Tue, 10 Feb 2015 15:19:10 +0300 Message-ID: To: Patrick Schaaf Cc: internals Content-Type: multipart/alternative; boundary=047d7bfd0bd6edc477050ebae43d Subject: Re: [PHP-DEV] Design by Contract From: lisachenko.it@gmail.com (Alexander Lisachenko) --047d7bfd0bd6edc477050ebae43d Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 2015-02-10 15:10 GMT+03:00 Alexander Lisachenko : > I would like to see a language with good extension API. For now, it's > almost impossible to extend a parser, even from extension level (however, > PHP7 will have a hook for that, thanks God). To understand how it can be implemented, just read about Checker Framework (Java) http://types.cs.washington.edu/checker-framework/ ...The Checker Framework enhances Java=E2=80=99s type system to make it mor= e powerful and useful. This lets software developers detect and prevent errors in their Java programs. The Checker Framework includes compiler plug-ins ("checkers") that find bugs or verify their absence. It also permits you to write your own compiler plug-ins... This is built on top of reflection+annotation+parser extension. Why not to implement this for PHP? From my point of view, this is just an additional feature, that can be used by limited number of developers. --047d7bfd0bd6edc477050ebae43d--