Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:99245 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 77663 invoked from network); 30 May 2017 00:04:39 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 30 May 2017 00:04:39 -0000 Authentication-Results: pb1.pair.com header.from=jgmdev@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=jgmdev@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.213.48 as permitted sender) X-PHP-List-Original-Sender: jgmdev@gmail.com X-Host-Fingerprint: 209.85.213.48 mail-vk0-f48.google.com Received: from [209.85.213.48] ([209.85.213.48:34337] helo=mail-vk0-f48.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 2D/99-34073-617BC295 for ; Mon, 29 May 2017 20:04:39 -0400 Received: by mail-vk0-f48.google.com with SMTP id y190so37804154vkc.1 for ; Mon, 29 May 2017 17:04:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=0HeqfAWYYNLnP3dsacUND45ohP7fu/xV+Q7qxYZxWig=; b=KdQ4Sfe/j9IFztznY58N1cD9I/4mEaNxVXSxXqqzPW9xUciRoR9DatjImwgxPo91i5 elcTcZnWw22CMIep4y8KopzDST81ZuV/X5GRKiHMS5OccZ2A/4zAEn7nEy5Y9fXqgGUt ML1l8Iqn6xIIUK7irIF6tUHZkyFOpkJ5wf9jDFIDLu5NpO2FkQUIAdjPVFVXV+pftEFV XD+g44TLy65f1+V8i+6WgWPnjTK76FrWFldOCAygahwbrhJTU7h5XBrdq77dtVP5Ud33 8606/2ZV2k7magjsPEUFVDDp+H7XTXISjZfBs9JKkMOsYx7MCjtufCPVPsZxRZCJKScS Kfog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=0HeqfAWYYNLnP3dsacUND45ohP7fu/xV+Q7qxYZxWig=; b=cBNwwY1ayjDsF+31Kt+VNZt7vRlh6FnD0HdGASXjmW715vuJWN/aw5h5NJL9xoL2Ng SN0uw16/tQiTlVvJ5psQpEWGL8903BgJXSWuqmCJCve04dpm29++c1RJS5LipHdF0pKZ YnEwmSMe/Dhcg0aPf4OLXYfHaZRQIFiHlUxheE7kppbL0uAlEqIkmoogjQT5qMZjHSeJ HiEQHmEQmy+4rDXbHIEJLLU5xnoywW47jbRoQ05LWwNjzYpSAaTAPe0otjgxM5iWO2II yYTBHUndnDNvXyNXJV2ZCvmVi8CjqaXJwsCAPDfCt8hZgE2Jy1LV823hx1osg2b7fJU1 ly+A== X-Gm-Message-State: AODbwcDFDffS+q+ib0r88643n48ImWh7a4VhnzWLXMvw3ANf/svXvmsm 4IgDDNV7Zkly0w== X-Received: by 10.31.61.16 with SMTP id k16mr7955563vka.43.1496102676319; Mon, 29 May 2017 17:04:36 -0700 (PDT) Received: from [192.168.1.121] ([24.50.217.112]) by smtp.gmail.com with ESMTPSA id t43sm2793588uah.37.2017.05.29.17.04.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 29 May 2017 17:04:35 -0700 (PDT) To: php-internals Cc: Nikita Popov References: Message-ID: <2285c219-41be-a66d-00e2-2e80e4ebe2cd@gmail.com> Date: Mon, 29 May 2017 20:04:34 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: Documentation (Doxygen) From: jgmdev@gmail.com (Jefferson Gonzalez) Hi, It seems that five years ago I was chatting on the php.internals irc and I was asking wether documenting the source code with doxygen was something that it could be worked on, but it seems that most core developers where against having lots of code comments on the engine code. So I suggested the idea of taking out the include files and prepare them as interface files that could be documented separately. One of the core contributors, (which I don't remember right now) said that if done well they could accept it. The idea was to add another directory on the source tree of php named 'interface' this directory would have three subdirectories: Zend, TSRM and main which at the same time would contain stripped down copies of the include files with only the declarations of functions, constants, typedef, etc... so that they could be documented freely using doxygen flavored comments. Ofcourse, this interface files would need to be manually maintained, but the result would be documentation that anybody can read to understand the core better and contribute to it. I started a repo (five years ago X_X) https://github.com/jgmdev/phoxygen to try and document the php source code with doxygen and put a simple Doxyfile that would generate documentation, unfortunately I lost the time/motivation due to my day/night job. An inspiration was the wxWidgets project which is doing the same to document the project without filling the main codebase with lots of comments. You can take a look here: https://github.com/wxWidgets/wxWidgets/tree/master/interface, also check the output documentation generated with doxygen: http://docs.wxwidgets.org/3.0/ In any case when I was coding the php wxWidgets wrapper (wxPHP) I struggled a lot to understand the php core while trying to put up a 1:1 wrapper of wxWidgets that contains hundreds of classes, and I needed good core documentation since I didn't have lots of time to fully read and understand the whole PHP core source code. So IMHO an initiative of documenting the core this way has its merits. On 05/24/2017 06:33 AM, Fleshgrinder wrote: > Hey internals! > > Nikic recommended that we discuss this topic before my latest PRs can be > merged. > > https://github.com/php/php-src/pull/2523 > https://github.com/php/php-src/pull/2535 > > I used Doxygen in both PRs to document the code. Right now the code base > is lacking a lot of documentation, which, if done right, would greatly > improve accessibility of the code base. > > The decision for Doxygen was not really a question of taste or anything, > it's just one I know very well for C. I am open to anything, as long as > we do something. >