Содержание

Стандарты кодирования

Общее редактирование кода

Языковые конструкции

Обрамление <?php..?>

Операторы

Идентация, новые строка и проч.

Функции, переменные, классы, методы и проч.

Названия

Уровни доступа(public/protected/private)

TypeHints

На данный момент в кодовой базе Limb3 не используются typehints, однако в целях повышения читаемости кода и улучшения документации вполне вероятно их использование в будущем.

Включения PHP исходных файлов

Комментарии

Общий лицензионный заголовок

/*
 * Limb PHP Framework
 *
 * @link http://limb-project.com
 * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
 * @license    LGPL http://www.gnu.org/copyleft/lesser.html
 */

PHPDocumentor заголовок для пакета

/**
 * @package package_name
 * @version $Id$
 */

Примеры возможных шаблонов для vim snippetsemu плагина:

let st = g:snip_start_tag
let et = g:snip_end_tag
let cd = g:snip_elem_delim

exec "Snippet lic /*<CR> * Limb PHP Framework<CR><CR>@link http://limb-project.com<CR>@copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)<CR>@license    LGPL http://www.gnu.org/copyleft/lesser.html<CR>/<CR>".st.et
exec "Snippet pak /**<CR> * @package package_name<CR>@version $Id$<CR>/<CR>".st.et
exec "Snippet lpak /*<CR> * Limb PHP Framework<CR><CR>@link http://limb-project.com<CR>@copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)<CR>@license    LGPL http://www.gnu.org/copyleft/lesser.html<CR>/<CR><CR>/**<CR>@package package_name<CR>@version $Id$<CR>/<CR>".st.et

Расположение кода в файловой системе

Пример кода

<?php
/*
 * Limb PHP Framework
 *
 * @link http://limb-project.com
 * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
 * @license    LGPL http://www.gnu.org/copyleft/lesser.html
 */
 
/**
 * @package foo
 * @version $Id$
 */
lmb_require('limb/some/package/Foo.class.php'); 
 
/**
 * Some FooClass description
 *
 * @version $Id$
 * @package foo
 */
class FooClass
{
  /**
   * @var string foo name 
   */
  protected $foo_name;
  /**
   * @var object request 
   */
  protected $request;
 
  /**
   *  Constructor.
   *  Creates an instance of FooClass object in different ways depending on passed argument
   *  @param object request
   */
  function __construct($request)
  {
    $this->request = $request;
    $this->foo_name = 'Foo';
  }
 
  /**
   *  Echoes some stuff
   */
  function doIt()
  {
    if($this->foo_name == 'Bar')
    {
      $res = globalDoIt();
      echo $res;
    }
 
    //для простых управляющих конструкций {} можно опускать
    if($this->foo_name == 'Test')
      return;
 
    //логически сгруппированный блок кода
    $db = getDbConnection();
    $it = $db->exec('select * from a');
 
    foreach($it as $record)
      echo $record->get('id');
 
    $i++;
  }
 
  protected function _createBar()
  {
    return new Bar(); 
  }
}
 
/**
 *  Some global function
 *  @return integer some number
 */
function globalDoIt()
{
  $some_var = 1;
  return 1;
}