<div dir="ltr"><div class="gmail_quote"><div dir="ltr">Le sam. 5 déc. 2015 à 17:12, Marc Delisle <<a href="mailto:marc@infomarc.info">marc@infomarc.info</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Le 2015-12-05 10:21, Richard Damon a écrit :<br>
> On 12/5/15 9:37 AM, Marc Delisle wrote:<br>
>> Le 2015-12-05 09:08, Hugues Peccatte a écrit :<br>
>>><br>
>>> Le sam. 5 déc. 2015 à 13:57, Marc Delisle <<a href="mailto:marc@infomarc.info" target="_blank">marc@infomarc.info</a><br>
>>> <mailto:<a href="mailto:marc@infomarc.info" target="_blank">marc@infomarc.info</a>>> a écrit :<br>
>>><br>
>>>      Hi,<br>
>>><br>
>>>      We have some PSR1 Scrutinizer warnings in many files. For<br>
>>> example, in<br>
>>>      js/whitelist.php:<br>
>>><br>
>>>      "For compatibility and reusability of your code, PSR1 recommends<br>
>>> that a<br>
>>>      file should either new symbols (like classes, functions, etc.)<br>
>>> or have<br>
>>>      side-effects (like outputting something, or including other<br>
>>> files), but<br>
>>>      not both at the same time. The first symbol is defined on line<br>
>>> 20 and<br>
>>>      the first side effect is on line 9."<br>
>>><br>
>>>      Is it true that PSR1 objects to our having a define() statement and<br>
>>>      ordinary code like chdir() in the same file?<br>
>>><br>
>>>      --<br>
>>>      Marc Delisle | phpMyAdmin<br>
>>><br>
>>>      _______________________________________________<br>
>>>      Developers mailing list<br>
>>>      <a href="mailto:Developers@phpmyadmin.net" target="_blank">Developers@phpmyadmin.net</a> <mailto:<a href="mailto:Developers@phpmyadmin.net" target="_blank">Developers@phpmyadmin.net</a>><br>
>>>      <a href="https://lists.phpmyadmin.net/mailman/listinfo/developers" rel="noreferrer" target="_blank">https://lists.phpmyadmin.net/mailman/listinfo/developers</a><br>
>>><br>
>>> Hi,<br>
>>><br>
>>> Yes, that's true because one of the rules is not to have declaration and<br>
>>> logic code in the same file. Define is declaration, chdir is logic.<br>
>>><br>
>>> H.<br>
>> Do you suggest we ignore this rule? To respect it, we would need to<br>
>> change our constants to something else.<br>
>><br>
>><br>
> PSR1 lists this as a 'SHOULD', not a 'MUST'.<br>
><br>
> The purpose of this rule, as I understand it, is that 'reusable' stuff<br>
> should be reusable by including the file that define it, and shouldn't<br>
> force some action to be performed. Also, that includes that 'do<br>
> something' may be needed in multiple places, and if they define stuff,<br>
> they can't be multiply included.<br>
><br>
> If the define()s are purely for internal usage, and the file has no<br>
> possible reason for wanting to be included twice, then we may fall<br>
> within a valid exception to PSR-1.<br>
><br>
> To be strictly meeting it, the definitions (define() etc) should be<br>
> factored out into an include file that is required_once.<br>
><br>
<br>
I find it overkill to move one line of define() to an include file. A<br>
possible way to comply with PSR1 in this situation would be the following.<br>
<br>
In js/whitelist.php, replace the define() with<br>
$pmaMinimumCommon = true;<br>
<br>
In libraries/common.inc.php replace the if (! defined()) with<br>
if (! pmaMinimumCommon)<br>
<br>
--<br>
Marc Delisle | phpMyAdmin<br></blockquote><div> </div><div>Hi,</div><div><br></div><div>That might be the solution. I agree that constant definition might be considered as logic code.</div><div><br></div><div>H.</div></div></div>