> The transport mechanism should not have anything to do with that!
Some transport mechanisms require doing special stuff. I encountered that myself with PHP’s mail function, which will parse the recipient headers from the RFC 5322 message for use in the envelope, instead of allowing an explicit specification.
This makes it impossible to send a multi-recipient email that is customized for each recipient (e.g. to use different headers).
Personally I prefer such questions being asked on the mailing list, so that all the relevant information can be collected in a centralized location for everyone to see.
As for the question itself: It would probably be possible, but semantics would likely be pretty questionable: What should ReflectionFunctionAbstract::isDeprecated() return? How should static analysis tools interpret the attribute? Would they need to execute arbitrary complex code?
My back pain for some time was due to ossification of the posterior longitudinal ligament (OPLL). I am having surgery the day after tomorrow. I may not be able to respond for a while.
How can I achieve a 94% performance boost? In this particular case, by an optimization in the DOM extension. Thanks @nielsdos
Read more about this performance fix in my latest blog post.
Was pondering how to write a C implementation of a PHP function (explode - converts a string into an array of strings based on a separator string). It took a while before I remembered that PHP itself is written in C, therefore a C implementation exists of all PHP standard library functions.
(I will still write my own, because it's a useful learning experience)
@ramsey@pwaring Pointer arithmetic is not something special for a C algorithm and most certainly doesn’t deserve an explicit mention. It’s like saying a plumber uses a wrench to fix your sink 😜
@heiglandreas Local IP address as in your home IP address? That's likely on quite a few policy blocklists, unless you have a business contract (and possibly even then).
@Girgias You've configured a DMARC record with a quarantine policy. The list breaks any DKIM signatures (due to the Subject and Body modification) and without listing the ML server in a SPF record the emails won't be authenticated and thus quarantined according to the stated preferences.
I believe that the ML performs DMARC mangling for p=reject, alternatively use p=none as your DMARC policy.
@Girgias@saki Yes. The list should stop modifying the email contents and then the original DKIM signature would remain valid. Alternatively it would need to perform DMARC mangling for p=quarantine, but that's the worse solution.
@heiglandreas It's adding the footer and mangles the Subject for all emails. For senders with a p=reject policy it will perform DMARC mangling (meaning it will replace the From header by internals@lists.php.net with a name of "Foo Bar via internals").
@heiglandreas For non-DMARC p=reject domains the From header will be the original one. That's why Gina's email was marked as spam, as DMARC mangling was not performed for it (due to p=quarantine).
I wish #PHP had two things and none of them involve generics... I wish it had type aliases and a native base32 encoding/decoding mechanism (in a class or a pair of functions I do not care)
@SenseException To add to that: Attributes are backwards compatible, they don't need to be backed by a class. Thus #SensitiveParameter can be applied to code that still needs to run on #PHP 8.1, without breaking anything (e.g. libraries). Below PHP 8.2 it will not do anything by default, but for the case of SensitiveParameter this doesn't matter, as you are no worse off than without the attribute. And libraries could still detect the attribute in stack traces by themselves!
@heiglandreas That would be a misuse of an enum. Enums are meant for a “finite”, and ideally never or rarely changing, set of valid values where you want the help of the type system to ensure you don't receive anything invalid.
The list of legal format strings is infinite, the ones in the constants are just some commonly used ones.
@heiglandreas I'm with you regarding the use of IntlDateFormatter over the format method.
However your use of the words “perhaps one or two” really indicates that the list of formats isn't a finite set, as you were not able to actually enumerate all the valid format strings.