PHP code example of petrknap / optional

1. Go to this page and download the library: Download petrknap/optional library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

petrknap / optional example snippets


namespace PetrKnap\Optional;

/** @var Optional<string> $stringOption */
$stringOption = Optional::of('data');
if ($stringOption->isPresent()) {
    echo $stringOption->get();
}

Optional::ofFalsable(tmpfile())->ifPresent(function ($tmpFile): void {
    fwrite($tmpFile, 'data');
    fclose($tmpFile);
}, else: fn () => print('tmpfile() failed'));

namespace PetrKnap\Optional;

/**
 * @extends Optional<Some\DataObject>
 */
class YourOptional extends Optional {
    use NonGenericOptional;
    protected static function isSupported(mixed $value): bool {
        return $value instanceof Some\DataObject;
    }
}
TypedOptional::register(YourOptional::class); // optional recommended step

function your_strong_typed_function(YourOptional $input): YourOptional {
    return YourOptional::empty();
}

/**
 * @param Optional<Some\DataObject> $input
 *
 * @return Optional<Some\DataObject>
 */
function your_weak_typed_function(Optional $input): Optional {
    return YourOptional::empty();
}