====== Coding guidelines ======
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: usually <80 characters, not more than 120 chars
* translate parameter from @_ to names in start of sub
==== Documentation ====
* POD(perl)/Doxygen(php) API documentation for modules, close to code
* 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/classes: upper case first, camel case splits words
===== Perltidy configuration =====
The following Perltidy configuration can be used as a guideline for formatting the code in Metamod.
//Don't use perl-tidy blindly on code in particular on others code! Use perltidy for diff.//
# make some defaults explicit to document the decision
--indent-columns=4
--cuddled-else
--indent-block-comments
--paren-tightness=1
--square-bracket-tightness=1
--brace-tightness=1
--block-brace-tightness=0
-nbl
-nsbl
--static-block-comments
# deviations from the default
--maximum-line-length=120
--continuation-indentation=4
--opening-brace-always-on-right
--closing-token-indentation=0
===== Perl Template =====
==== Basic module template ====
This is a template for basic module.
package ;
=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 USA
=end LICENSE
=cut
use strict;
use warnings;
=head1 NAME
-
=head1 SYNOPSIS
=head1 DESCRIPTION
=head1 FUNCTIONS/METHODS
=cut
=head1 LICENSE
GPLv2 L
=cut
1;
==== Catalyst controller template ====
This template can be used for new Catalyst controllers.
package ;
=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 USA
=end LICENSE
=cut
BEGIN {extends 'MetamodWeb::BaseController::Base'; }
=head1 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("replace with absolute 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__->meta->make_immutable;
=head1 LICENSE
GPLv2 L
=cut
1;
==== Script ====
FIXME
===== PHP Template =====
FIXME