Sand Fox (old posts, page 5)
-
PHP 5: if (\false)
I was wondering why the typical class alias boilerplate code uses this weird backslash in
if (\false)
like here for example.It turns out this code will wish you a happy debugging in PHP 5.3-5.6:
Not a very useful knowledge now but an interesting history fact.
-
PHP 8.1 Syntax Showcase
PHP 8.1 was released when I was suffering from COVID so I'm a bit late.
<?php enum Status { case OK; case Error; } #[SomeAttr(new SomeNestedAttr())] class TestTest { public function __construct( public readonly Status $status = Status::OK, private Logger $logger = new FileLogger(perm: 0o644), ) {} public function process(Iterator&Countable $value) { if (count($value) === 0) { $this->error(); } } public function error(): never { $this->logger->error('Error!'); exit; } } $test = new TestTest(); $arr1 = ['a' => new ArrayObject()]; $arr2 = ['b' => new ArrayIterator()]; $result = array_map($test->process(...), [...$arr1, ...$arr2]);
-
Torrent File 2.2
-
CVE-2021-41106
Nice, now I have my first CVE :D The one I've found, not the one I've created :D
If you're using
lcobucci/jwt
, please upgrade. -
IsResource
Inspired by a recent discussion in the PHP Internals, I decided to provide a userland solution. Check this:
<?php $hash = hash_init('md5'); // vanilla functions: is_resource($hash); // true in PHP <= 7.1, false in PHP >= 7.2 get_resource_type($hash); // "Hash Context" in PHP <= 7.1, various errors otherwise // library functions: \Arokettu\IsResource\is_resource($hash); // true \Arokettu\IsResource\get_resource_type($hash); // "Hash Context"
Get it on my dev portal: https://sandfox.dev/php/is-resource.html
-
sass-hsv
I haven't found a nice small helper for HSV/HSB color format like the one LESS has so I published my first npm package.
-
TOML vs YAML
So... Let's compare.
-
Open Letter in Support of Richard Stallman
https://rms-support-letter.github.io
Please even if you do not agree with him politically but still don't like that raging mobs decide for others, sign the letter here: https://github.com/rms-support-letter/rms-support-letter.github.io/pulls
-
Pseudolocale Lib for PHP
I haven't found a good standalone pseudolocalization library for PHP so I wrote my own.
https://sandfox.dev/php/pseudolocale.html
Or if you're using Symfony Components or you don't mind using huge libraries for simple tasks, there is one good alternative:
PseudoLocalizationTranslator
in the Symfony Translation Component since version 5.2. -
Trash Directory for Partition
If you have a separate user writable drive mounted, you may have encountered the same problem I had. If your DE cannot create
.Trash-$uid
, most DEs will not delete files to the trash at all and KDE will copy deleted files to your home partition. I find both behaviors frustrating.The solution is rather simple: look at the spec and create the trash directory manually.
# for example, your drive is mounted to /media/external # go to the drive root cd /media/external # create root owned .Trash sudo mkdir .Trash # make it world writable with a sticky bit sudo chmod 1777 .Trash
Now delete some file from that partition and check that is lands to
.Trash/$uid/files
. Your trash directory now works properly.