dolibarr-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Dolibarr-dev] Coding conventions & PSR


From: Yannick Warnier
Subject: Re: [Dolibarr-dev] Coding conventions & PSR
Date: Sun, 28 Jun 2015 14:33:58 -0500

There are still a few issues I think might be beneficial to fix on the
wiki. For example:

$var1=1;$var2=1;$var3=1;

Because PSR-2 says "There MUST NOT be more than one statement per line."

Also, in PSR-2 section 4.6, it says "When making a method or function
call, there MUST NOT be a space between the method or function name and
the opening parenthesis, there MUST NOT be a space after the opening
parenthesis, and there MUST NOT be a space before the closing
parenthesis. In the argument list, there MUST NOT be a space before each
comma, and there MUST be one space after each comma."

I see that in your latest commit, Eldy,
https://github.com/Dolibarr/dolibarr/commit/ce6039f7f644657e3215385fc1698ecde114919f
you use stuff like:

if (! empty( $conf->categorie->enabled ) ...)

whereas, clearly, following PSR-2 and having no exception for this case
on the wiki, you should use:

if (! empty($conf->categorie->enabled) ...)

(and maybe no space between "!" and "empty", but there's no specific
rule about that).


Also, I know I'm not going to change your conventions, but I must insist
a little on the 4-spaces thing instead of tabs.
I'm not seeing this as an issue for any editor, but PSR-2 is strict on
this: "Code MUST use 4 spaces for indenting, not tabs.", and adopting
part of PSR-2 is a bit weird (and certainly introduces more complexity
for new developers joining). Going with exceptions now will only delay
the full adoption of PSR-2, and will require a lot of additional work
afterwards if, one day, you decide to go for 4 tabs to respect PSR-2.
Just saying... :-)

Cheers,

Yannick


Le dimanche 28 juin 2015 à 11:04 +0200, Laurent Destailleur (aka Eldy) a
écrit :
> Hi Yannick.
> 
> 
> Thanks for your feedback. I updated the
> page http://wiki.dolibarr.org/index.php/Language_and_development_rules so 
> things should be easier to understand and you should find answer to all your 
> questions.
> 
> 2015-06-28 3:00 GMT+02:00 Yannick Warnier <address@hidden>:
>         Hi guys,
>         
>         First of all, just a short presentation: my name is Yannick
>         Warnier, I
>         worked as one of the first 20 Dolibarr developers or so
>         (copyright
>         notices in VAT reports say it was between 2006 and 2007). I
>         stopped
>         developing mainly because I was too busy with my own project
>         (Dokeos and
>         then Chamilo). I speak and write fluently French, English and
>         Spanish.
>         I'm using English to increase my chances to be understood.
>         
>         At our company, we've been working with Dolibarr 2.2 for years
>         and have
>         recently found a little time to work on an upgrade to 3.7 (or
>         3.8 to
>         come).
>         
>         As part of that work, I'm reviewing some of the work I had
>         done back
>         then, and I am mostly interested in
>         htdocs/compta/tva/quadri_detail.php
>         
>         I saw that it was modified considerably (definitely improved)
>         and that
>         some of the functions I wrote were slightly changed and moved
>         to
>         core/lib/tax.lib.php (thanks for that).
>         
>         This being said, I want to re-create my original report,
>         because the new
>         version removed some dates and other info we needed for our
>         VAT report
>         in Belgium.
>         
>         As such, I am looking at how to modify a copy of this script,
>         and I'm
>         faced with a series of questions/comments I do not know how to
>         answer,
>         and after visiting
>         http://wiki.dolibarr.org/index.php/Language_and_development_rules I am
>         still a bit unsure, so here they are:
>         
>         1) It says you use PSR-2, but the code is filled with
>         non-conformant
>         PSR-2 (which includes PSR-1). So my question is:
>         Should I consider PSR-2 is the norm and switch everything I
>         see that is
>         non-conformant to PSR-2, or should I leave it like that?
>         And should my code be PSR-2 conformant or should I try to
>         integrate to
>         what is there at the moment?
>         
>         2) One line says: "Do not use PHP_SELF. Use instead
>         $_SERVER["PHP_SELF"]."
>         I was wondering if you were considering that $_SERVER is
>         something
>         hackable, and as such should be filtered... (so using
>         $_SERVER['PHP_SELF'] unfiltered is definitely an issue)
>         
>         3) It says "When several variables must be initialized with
>         same value,
>         you must use several lines", but the example below is on a
>         single
>         line...
>         
>         4) About PSR-2 exceptions:
>         
>         4a) you mention 2, and then there are 4 that are not all real
>         exceptions
>         
>         4b) you indicate that *you* accept more than 80 chars per
>         line.
>         Actually, PSR-2 mention you *should* try lower than 80, but
>         you *can* go
>         up to 120.
>         
>         4c) you mention that you don't replace the tabs with spaces
>         because that
>         drives editors crazy... I'm not sure about the editors you
>         use, but I
>         use VIM, Eclipse and PHPStorm, and the crazyness only happens
>         with tabs,
>         not spaces. Furthermore, I see that many files have either 4
>         spaces *or*
>         tabs, so I don't really understand what I should respect...
>         In any case, if that's worth anything, PSR-2 should be used
>         strictly, so
>         4 spaces is a good idea and it's easy to implement (most
>         editors offer a
>         tabs-replacement-with-spaces feature that is safe to
>         implement)
>         
>         The rest is pretty clear to me.
>         
>         
>         
>         
>         _______________________________________________
>         Dolibarr-dev mailing list
>         address@hidden
>         https://lists.nongnu.org/mailman/listinfo/dolibarr-dev
> 
> 
> 
> 
> -- 
> EMail: address@hidden
> Web: http://www.destailleur.fr
> ------------------------------------------------------------------------------------
> 
> Google+: https://plus.google.com/+LaurentDestailleur/
> Facebook: https://www.facebook.com/Destailleur.Laurent
> Twitter: http://www.twitter.com/eldy10
> ------------------------------------------------------------------------------------
> * Dolibarr (Project leader): http://www.dolibarr.org (make a donation
> for Dolibarr project via Paypal: address@hidden)
> * AWStats (Author) : http://awstats.sourceforge.net (make a donation
> for AWStats project via Paypal: address@hidden)
> * AWBot (Author) : http://awbot.sourceforge.net
> 
> * CVSChangeLogBuilder (Author) : http://cvschangelogb.sourceforge.net
> 
> 
> 
> 
> 
> _______________________________________________
> Dolibarr-dev mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/dolibarr-dev





reply via email to

[Prev in Thread] Current Thread [Next in Thread]