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 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ |