Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
metamod:perl_code_style [2010-07-12 07:19:48] oysteint created |
metamod:perl_code_style [2022-05-31 09:29:32] (current) |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| - | The following Perltidy configuration can be used as a guideline for formatting the code in Metamod. | + | These rules apply to perl and php, unless otherwise mentioned. |
| + | ===== General rules ===== | ||
| + | |||
| + | * spaces instead of tabs | ||
| + | * indent is 4 spaces | ||
| + | * cuddled else:< | ||
| + | if ($a > $b) { | ||
| + | $a++; | ||
| + | } else { | ||
| + | $b++; | ||
| + | } | ||
| + | </ | ||
| + | * Line-length: | ||
| + | * translate parameter from @_ to names in start of sub | ||
| + | |||
| + | ==== Documentation ==== | ||
| + | |||
| + | * POD(perl)/ | ||
| + | * POD(perl) documentation for scripts (pod2usage) | ||
| + | |||
| + | ==== Name-convention ==== | ||
| + | |||
| + | * variables: lower case, underscore splits words | ||
| + | * constants: upper case, underscore splits words | ||
| + | * functions: lower case, underscore splits words | ||
| + | * modules/ | ||
| + | |||
| + | ===== Perltidy configuration ===== | ||
| + | |||
| + | The following Perltidy configuration can be used as a guideline for formatting the code in Metamod. | ||
| + | // | ||
| < | < | ||
| # make some defaults explicit to document the decision | # make some defaults explicit to document the decision | ||
| Line 22: | Line 52: | ||
| --closing-token-indentation=0 | --closing-token-indentation=0 | ||
| </ | </ | ||
| + | |||
| + | ===== Perl Template ===== | ||
| + | |||
| + | ==== Basic module template ==== | ||
| + | |||
| + | This is a template for basic module. | ||
| + | <code perl> | ||
| + | package <package name>; | ||
| + | |||
| + | =begin LICENSE | ||
| + | |||
| + | METAMOD 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. | ||
| + | |||
| + | METAMOD 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 METAMOD; if not, write to the Free Software | ||
| + | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 | ||
| + | |||
| + | =end LICENSE | ||
| + | |||
| + | =cut | ||
| + | |||
| + | use strict; | ||
| + | use warnings; | ||
| + | |||
| + | =head1 NAME | ||
| + | |||
| + | <package name> - < | ||
| + | |||
| + | =head1 SYNOPSIS | ||
| + | |||
| + | =head1 DESCRIPTION | ||
| + | |||
| + | =head1 FUNCTIONS/ | ||
| + | |||
| + | =cut | ||
| + | |||
| + | <your code goes here> | ||
| + | |||
| + | =head1 LICENSE | ||
| + | |||
| + | GPLv2 L< | ||
| + | |||
| + | =cut | ||
| + | 1; | ||
| + | </ | ||
| + | |||
| + | ==== Catalyst controller template ==== | ||
| + | |||
| + | This template can be used for new Catalyst controllers. | ||
| + | |||
| + | <code perl> | ||
| + | package <package name>; | ||
| + | |||
| + | =begin LICENSE | ||
| + | |||
| + | METAMOD 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. | ||
| + | |||
| + | METAMOD 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 METAMOD; if not, write to the Free Software | ||
| + | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 | ||
| + | |||
| + | =end LICENSE | ||
| + | |||
| + | =cut | ||
| + | |||
| + | BEGIN {extends ' | ||
| + | |||
| + | =head1 NAME | ||
| + | |||
| + | <package name> - < | ||
| + | |||
| + | =head1 DESCRIPTION | ||
| + | |||
| + | =head1 METHODS | ||
| + | |||
| + | =cut | ||
| + | |||
| + | =head2 auto | ||
| + | |||
| + | =cut | ||
| + | |||
| + | sub auto :Private { | ||
| + | my ( $self, $c ) = @_; | ||
| + | |||
| + | # Controller specific initialisation for each request. | ||
| + | } | ||
| + | |||
| + | =head2 index | ||
| + | |||
| + | |||
| + | =cut | ||
| + | sub index : Path(" | ||
| + | my ( $self, $c ) = @_; | ||
| + | |||
| + | } | ||
| + | |||
| + | |||
| + | # | ||
| + | # Remove comment if you want a controller specific begin(). This | ||
| + | # will override the less specific begin() | ||
| + | # | ||
| + | #sub begin { | ||
| + | # my ( $self, $c ) = @_; | ||
| + | #} | ||
| + | |||
| + | # | ||
| + | # Remove comment if you want a controller specific end(). This | ||
| + | # will override the less specific end() | ||
| + | # | ||
| + | #sub end { | ||
| + | # my ( $self, $c ) = @_; | ||
| + | #} | ||
| + | |||
| + | |||
| + | __PACKAGE__-> | ||
| + | |||
| + | =head1 LICENSE | ||
| + | |||
| + | GPLv2 L< | ||
| + | |||
| + | =cut | ||
| + | |||
| + | 1; | ||
| + | </ | ||
| + | |||
| + | ==== Script ==== | ||
| + | |||
| + | FIXME | ||
| + | |||
| + | ===== PHP Template ===== | ||
| + | |||
| + | FIXME | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||