[PHP7.4.11] Composerの仕組み

ComposerとはPHPのパッケージ管理システム。
ライブラリをzip等でダウンロードせずに利用できる。

$ php -v
PHP 7.4.11 (cli) (built: Oct 21 2020 19:12:26) ( NTS )
$ composer
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.0.4 2020-10-30 22:39:11

composer.json

{
	"require": {
		"ircmaxell/random-lib": "1.0.0"
	}
}

$ composer install

require_once "vendor/autoload.php";

$factory = new RandomLib\Factory;
$generator = $factory->getMediumStrengthGenerator();

$randomInt = $generator->generateInt(5, 15);
echo $randomInt;

echo "\n";

$randomString = $generator->generateString(32, 'abcdef');
echo $randomString;

$ php app.php
12
cffccdccbcaadcffbbddbffbdadbfefd

requrire_onceした後にclassを作って読み込めば良いのね

/vendor/ircmaxell/random-lib/lib/RandomLib/Factory.php


public function getGenerator(\SecurityLib\Strength $strength) {
        $sources    = $this->getSources();
        $newSources = array();
        foreach ($sources as $source) {
            if ($strength->compare($source::getStrength()) <= 0) {
                $newSources[] = new $source;
            }
        }
        $mixer = $this->findMixer($strength);
        return new Generator($newSources, $mixer);
    }

    // 省略

    public function getMediumStrengthGenerator() {
        return $this->getGenerator(new Strength(Strength::MEDIUM));
    }

generateIntのclassも同様に、RandomLib/Generator.phpで書かれていますね。
なるほど。