Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:67693 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 87920 invoked from network); 12 Jun 2013 09:04:31 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 12 Jun 2013 09:04:31 -0000 Authentication-Results: pb1.pair.com smtp.mail=ellison.terry@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=ellison.terry@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.49 as permitted sender) X-PHP-List-Original-Sender: ellison.terry@gmail.com X-Host-Fingerprint: 74.125.82.49 mail-wg0-f49.google.com Received: from [74.125.82.49] ([74.125.82.49:37262] helo=mail-wg0-f49.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 02/C1-07280-E9938B15 for ; Wed, 12 Jun 2013 05:04:31 -0400 Received: by mail-wg0-f49.google.com with SMTP id a12so4793971wgh.28 for ; Wed, 12 Jun 2013 02:04:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=V5jhiGuWLjFDm+I+gbFvKCPi5EYzrBPJtfDaXVRIVR4=; b=Fj1ThdEaXxLGQ/cgWIosm0TkzcggEu0gJE4p3XD0oKwQfQbBiroGt0/hEqEXIfmK2x BPsgxUHy5u+Cq7Af9De2tfD6k2NSBmRVVG8e1NX/mf9aP5C8Z77nhrtMEXQ50zg6UR1A 46df5nNWQFo+rNcFiMQ7f43cKWFUMx3b/dqz82vZF0DO2ClcY4umXtcjnQTxnkcBRvTL rx1+p+KD+IMeVO9L9dVx7LG73yt1rq+HKTCHufkBwP1xW3oCHGxM+cxxXHxFP4g7v2tT k7SgUiMAZPq5O4NQCVTx8t0WnOgDUqqtGNFSBqVUs9xqTpvAobV3cJHrxVnKX0CNhHIT 9kcA== X-Received: by 10.180.37.243 with SMTP id b19mr3772153wik.12.1371027867685; Wed, 12 Jun 2013 02:04:27 -0700 (PDT) Received: from [192.168.1.91] (host86-156-145-148.range86-156.btcentralplus.com. [86.156.145.148]) by mx.google.com with ESMTPSA id k10sm23154628wia.4.2013.06.12.02.04.26 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 12 Jun 2013 02:04:26 -0700 (PDT) Message-ID: <51B83999.90103@gmail.com> Date: Wed, 12 Jun 2013 10:04:25 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130510 Thunderbird/17.0.6 MIME-Version: 1.0 To: Nikita Popov CC: PHP internals References: In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [PHP-DEV] Internal object orientation documentation available! From: ellison.terry@gmail.com (Terry Ellison) On 10/06/13 19:33, Nikita Popov wrote: > We just published some rather extensive documentation on internal object > orientation: > > http://www.phpinternalsbook.com/classes_objects.html > > This is part of a larger project aimed at documenting the engine and making > it accessible to new contributors. This looks like an excellent beginning so thanks. A few general comments: 1) I notice that your book is "© Copyright 2013, Julien Pauli - Anthony Ferrara - Nikita Popov. All Rights Reserved" rather than GDFL or one of the CC variants of open document licences. They only issue that I see here is that I -- and possibly others -- might be a bit guarded in providing comment and input if that content was being transferred to the authors unconditionally. Also if you are reserving all rights then you will need to be careful to ensure that all the content is yours and not extracted from an open or other 3rd party source. Surely this going to add to your authoring burden? 2) Wikipedia, for example, contains a lot of good in-depth explanation of CompSci concepts and standard patterns such as http://en.wikipedia.org/wiki/Hash_table. You might consider the content cut: when you include basic discussion of 101 principles (e.g. on HashTables); and when you limit your content to their PHP-specific implementation, with suitable references to the 101 stuff. Tending to the former will make the book a lot longer, albeit standalone. Your call, but I would have thought that the majority of the readership by nature will have some CompSci background and so want to skip the 101 stuff, or be referenced out to the appropriate in-depth WP or other reference. 3) What is your preferred markup format for feedback and contributions? E.g. do you maintain an ODF or Docbook XML under some accessible git repository, or is is a case of (for example) hashtables/basic_structure.html para at line 138. Not quite true that "the arBucket array will never shrink down: you can not reduce a PHP array, you only can grow it". You can always implement your own resizer by realloing the arBucket array and the calling zend_hash_rehash() to do this. (This would be a good standard hash API function by the way. But good luck and this will be an extremely useful project to help those wishing to get to grips with PHP internals. Regards Terry (Resend including internals list)