<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html; charset=UTF-8" http-equiv="content-type"> <title>PHP file conventions</title> <meta content="$Author$" name="author"> </head> <body> <h1>Preface</h1> This document is part of the <a href="http://campcaster.sourcefabric.org/">Campcaster</a> project, Copyright © 2004 <a href="http://www.mdlf.org/">Media Development Loan Fund</a>, under the GNU <a href="http://www.gnu.org/licenses/gpl.html">GPL</a>.<br> <ul> <li>Author: $Author$</li> <li>Version: $Revision$</li> <li>Location: $URL$</li> </ul> <h1>Scope</h1> This document describes the PHP script file conventions for the Campcaster project. See also the generic description of the <a href="fileConventions.html">file conventions</a> in the Campcaster project.<br> <h1>Introduction</h1> PHP scripts are text-based files containing PHP class definitions and/or commands.<br/> They should adhere to the <a href="http://pear.php.net/manual/en/standards.php">PEAR coding standards conventions</a>.<br> As text based files, they should adhere to the <a href="fileConventions.html#textConventions">generic text-based conventions</a>.<br> <h1>Naming</h1> A PHP script containing only class definition should have filename which reflects the class, it is implementing. Class names begin with a capital letter, followed by lower case letters. In case of a multiple word file name, the first letter of each word is capitalized.<br/> Other PHP scripts should have name starting with lowecase letter.<br/> PHP script files are named by the following rules:<br> <ul> <li>there are no spaces in the file name</li> <li>for file names containing multiple words, each additional word begins with a capital letter</li> <li>the extension of the file is <code>.php</code><br> </li> </ul> <h1>Structure</h1> PHP scripts are partitioned by using the following 80 column wide partitioning comments:<br/> <pre> /* ==================================================== name of the partition */ </pre> and <pre> /* ------------------------------------------------- name of the subpartition */ </pre> The file has the following mandatory structure:<br> <ul> <li>PHP starting tag <code><?php </code></li> <li>Header</li> <li>Defines ?</li> <li>Include files ?</li> <li>Code sections +</li> <li>PHP ending tag <code>?> </code></li> </ul> Because PHP is in-HTML embedable script language, it is possible to mix PHP and HTML code using PHP tags <code><?php</code> and <code>?></code>. This mixing approach is little bit obsolete and it is better to use pure PHP (with structure described above) and some template system to generate HTML. <h2>Header</h2> The header holds all information mandated by the <a href="fileConventions.html#header">generic guidelines</a>, but are enclosed in the PHP multiline comments <code>/* */</code>. Note the 80 column wide partitioning delimiter enclosing the header.<br> <pre> /*------------------------------------------------------------------------------ Copyright (c) 2010 Sourcefabric O.P.S. This file is part of the Campcaster project. http://campcaster.sourcefabric.org/ To report bugs, send an e-mail to bugs@campware.org Campcaster is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Campcaster is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Campcaster; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Author : $Author$ Version : $Revision$ Location : $URL$ ------------------------------------------------------------------------------*/ </pre> <h2>Defines<br> </h2> This section contains all the constant defines, similar as:<br/> <br/> <code>define('CONSTAT_NAME', 10);</code><br/> <br/> <h2>Include files<br> </h2> This section contains all the include files that the script needs to include. The include files are listed in a most generic to most specific order: first PEAR classes, then other Campcaster module include files, and finally include files from the same module / product are listed.<br> Is much safer to use <code>include_once</code> or <code>require_once</code>, not the original versions of this statement.<br/> <br> <h2>Code sections</h2> This sections contain class definitions, function definitions or runable PHP commands.<br/> <h1>Template</h1> See a generic <a href="templates/phpScriptTemplate.phps">template for PHP scripts</a>. You may freely <a href="templates/phpScriptTemplate.php.txt">download</a> and copy this template when starting to create a new script.<br> <br> </body> </html>