# phpCB: PHP Code Beautifier

## Summary

- php Code Beautifier
- Usage
- Comment rendering style
- PEAR Coding standards Tips
- Example

## php Code Beautifier

phpCodeBeautifier is Copyright © 2002-2004 Sébastien Hordeaux and Copyright © 2004-2007 WaterProof SARL. Contact us before including it in any package (commercial or not).

The main goal of this tool is to avoid spending hours on reformating code to suit my own way of presenting it. The tool has been declined into 3 versions:

1. A GUI version which allow to process file visually.
2. A command line version which allow to be batched or integrated with other tools (CVS, IDE, ...)
3. As an integrated tool of PHPEdit.

I hope this tool will assist you as it does for me. If you find bug, please feel free to report them in the issue tracker.

This tool has required work; you are encouraged to reward this work by making a donation, this is the only way to encourage us to continue developping tools like this one and keeping them free.

Check http://www.waterproof.fr/products/phpCodeBeautifier/ for last updates. ChangLog is available from here. Current version is 1.0. You can download it here.

## Usage

Command line syntax is the following:

    phpCB.exe [options] [filename]

Where options is from the previous topic list and srcFile is the file to beautify. If no srcFile is given, standard input will be used. The transformed text will be outputted to standard output, you can redirect it to a file using the > symbol.

The following options are available:

- --space-after-start-bracket: Allow to insert a space after start bracket '('.

  With --space-after-start-bracket | Without --space-after-start-bracket
      <?php

      if ( $condition) {
      }

      ?>
      <?php

      if ($condition) {
      }

      ?>

- --space-before-end-bracket: Allow to insert a space before end bracket ')'.

  With --space-before-end-bracket | Without --space-before-end-bracket
      <?php

      if ($condition ) {
      }

      ?>
      <?php

      if ($condition) {
      }

      ?>

- --space-after-if: Allow to insert a space after 'if' keyword.

  With --space-after-if | Without --space-after-if
      <?php

      if ($condition) {
      }

      ?>
      <?php

      if($condition) {
      }

      ?>

- --space-after-switch: Allow to insert a space after 'switch' keyword.

  With --space-after-switch | Without --space-after-switch
      <?php

      switch ($condition) {
      }

      ?>
      <?php

      switch($condition) {
      }

      ?>

- --space-after-while: Allow to insert a space after 'while' keyword.

  With --space-after-while | Without --space-after-while
      <?php

      while ($condition) {
      }

      ?>
      <?php

      while($condition) {
      }

      ?>

- --space-before-start-angle-bracket: Allow to insert a space before starting angle bracket '{'.

  With --space-before-start-angle-bracket | Without --space-before-start-angle-bracket
      <?php

      while($condition) {
      }

      ?>
      <?php

      while($condition){
      }

      ?>

- --space-after-end-angle-bracket: Allow to insert a space after starting angle bracket '}'.

  With --space-after-end-angle-bracket | Without --space-after-end-angle-bracket
      <?php

      while($condition){
      } // end of while

      ?>
      <?php

      while($condition){
      }// end of while

      ?>

- --extra-padding-for-case-statement: Increase padding before case statements.

  With --extra-padding-for-case-statement | Without --extra-padding-for-case-statement
      <?php

      switch($condition){
          case 1:
              action1();
              break;
          case 2:
              action2();
              break;
          default:
              defaultaction();
              break;
      }

      ?>
      <?php

      switch($condition){
      case 1:
          action1();
          break;
      case 2:
          action2();
          break;
      default:
          defaultaction();
          break;
      }

      ?>

- --one-true-brace-function-declaration: Use "One true brace" formating for functions.

  With --one-true-brace-function-declaration | Without --one-true-brace-function-declaration
      <?php

      function aFunction($param)
      {
          // function content
      }

      ?>
      <?php

      function aFunction($param) {
          // function content
      }

      ?>

- --glue-amperscore: Glue "&" to following item.

  With --glue-amperscore | Without --glue-amperscore
      <?php

      $value = &$objectInstance;

      ?>
      <?php

      $value = & $objectInstance;

      ?>

- --change-shell-comment-to-double-slashes-comment: Change "# ..." comment into "// ..." comments.

  Source | With --change-shell-comment-to-double-slashes-comment | Without --change-shell-comment-to-double-slashes-comment
      <?php

      #comment content
      //another comment

      ?>
      <?php

      // comment content
      // another comment

      ?>
      <?php

      # comment content
      // another comment

      ?>

- --indent-with-tab: If selected, tabulation (ASCII #9) character is used to indent text, elsewhere space (ASCII #32) character is used.

- --force-large-php-code-tag: Change "<?" and "<%" tokens into "<?php" and "%>" into "?>".

  Source | With --force-large-php-code-tag | Without --force-large-php-code-tag
      <?

      ?>

      <%

      %>
      <?php

      ?>

      <?php

      ?>
      <?

      ?>

      <%

      %>

- --force-true-false-null-contant-lowercase: Lowercase for NULL, TRUE and FALSE constants as encouraged in PEAR coding standards.

  Source | With --force-true-false-null-contant-lowercase | Without --force-true-false-null-contant-lowercase
      <?php

      if(TRUE){
          if(FALSE){
              $value = NULL;
          }
      }

      ?>
      <?php

      if(true){
          if(false){
              $value = null;
          }
      }

      ?>
      <?php

      if(TRUE){
          if(FALSE){
              $value = NULL;
          }
      }

      ?>

- --align-equal-statements: Align all assignement statements.

  Source | With --align-equal-statements
      <?php

      $noError = true;
      $feildEmpty = false;
      $showMessage = false;
      $showMessage = false;

      $anotherVariable[0123] = 'bla bla bla';

      $showBlaBlaBlaMessage = false;

      ?>
      <?php
      $noError               = true;
      $feildEmpty            = false;
      $showMessage           = false;
      $showMessage           = false;
      $anotherVariable[0123] = 'bla bla bla';
      $showBlaBlaBlaMessage  = false;

      ?>

- --align-equal-statements-to-fixed-pos: Align all assignement statements to a fixed position.

  Source | With --align-equal-statements-to-fixed-pos 40
      <?php

      $noError = true;
      $feildEmpty = false;
      $showMessage = false;
      $showMessage = false;

      $anotherVariable[0123] = 'bla bla bla';

      $showBlaBlaBlaMessage = false;

      ?>
      <?php
      $noError                               = true;
      $feildEmpty                            = false;
      $showMessage                           = false;
      $showMessage                           = false;
      $anotherVariable[0123]                 = 'bla bla bla';
      $showBlaBlaBlaMessage                  = false;

      ?>

## Comment rendering style

The following style of comment formating are available:

--comment-rendering-style PEAR | --comment-rendering-style PHPDoc
    <?php

    /**
     * bla bla bla
     *
     * @access public
     */

    ?>
    <?php

    /**
    * bla bla bla
    *
    * @access public
    */

    ?>

## PEAR Coding standards Tips

To follow PEAR coding standards, I recommend you to use the following configuration:

Option | State
--space-after-start-bracket | -
--space-before-end-bracket | -
--space-after-if | X
--space-after-switch | X
--space-after-while | X
--space-before-start-angle-bracket | X
--space-after-end-angle-bracket | X
--extra-padding-for-case-statement | -
--one-true-brace-function-declaration | X
--glue-amperscore | X
--change-shell-comment-to-double-slashes-comment | X
--indent-with-tab | -
--force-large-php-code-tag | X
--force-true-false-null-contant-lowercase | X
--align-equal-statements | X
--align-equal-statements-to-fixed-pos | -

Use 4 for the padding character count to use.

## Example

This is a sample call of the command line version:

    # phpCB --space-after-if                             \
        --space-after-switch                             \
        --space-after-while                              \
        --space-before-start-angle-bracket               \
        --space-after-end-angle-bracket                  \
        --one-true-brace-function-declaration            \
        --glue-amperscore                                \
        --change-shell-comment-to-double-slashes-comment \
        --force-large-php-code-tag                       \
        --force-true-false-null-contant-lowercase        \
        --align-equal-statements                         \
        --comment-rendering-style PEAR                   \
        --equal-align-position 50                        \
        --padding-char-count 4                           \
        c:\some\path\to\file.php