summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2022-06-18 21:02:30 +0200
committerHarald Eilertsen <haraldei@anduin.net>2022-06-18 21:02:30 +0200
commit1052a55855b5a724fbee626e6d89a98b067f6fc3 (patch)
treeb62feef2136a76fa414af5e3c8bec2178f11c0a7
parentc81ced91d25f24b8340187364404a325f7dab30a (diff)
downloadgigologadmin-1052a55855b5a724fbee626e6d89a98b067f6fc3.tar.gz
gigologadmin-1052a55855b5a724fbee626e6d89a98b067f6fc3.tar.bz2
gigologadmin-1052a55855b5a724fbee626e6d89a98b067f6fc3.zip
Cleanup script to generate test data.
Fix phpcs warnings, and add functionality to specify how many entries you want made on the command line.
-rw-r--r--generate-sample-gig-data.php184
1 files changed, 114 insertions, 70 deletions
diff --git a/generate-sample-gig-data.php b/generate-sample-gig-data.php
index 11e9a0a..19eaffc 100644
--- a/generate-sample-gig-data.php
+++ b/generate-sample-gig-data.php
@@ -5,156 +5,200 @@
//
// SPDX-License-Identifier: AGPL-3.0-or-later
-abstract class GeneratorBase
-{
+/**
+ * Abstract base class for a generator.
+ */
+abstract class GeneratorBase {
+
+ /**
+ * Return a generated string.
+ * Must be implemented by derived classes
+ */
abstract public function get() : string;
- function pick(array $arr) : string
- {
- return $arr[array_rand($arr)];
+ /**
+ * Return a random element from an array.
+ *
+ * @param array $arr an array of elements.
+ */
+ protected function pick( array $arr ) : string {
+ return $arr[ array_rand( $arr ) ];
}
}
-class BandNameGenerator extends GeneratorBase
-{
+/**
+ * Generator for band names
+ */
+class BandNameGenerator extends GeneratorBase {
+
/**
+ * Prefixes.
+ *
* @var string[]
*
* @psalm-var array{0: string, 1: string, 2: string}
*/
private array $prefixes = array(
- "",
- "a",
- "the",
+ '',
+ 'a',
+ 'the',
);
/**
+ * Adverbs.
+ *
* @var string[]
*
* @psalm-var array{0: string, 1: string, 2: string, 3: string, 4: string, 5: string, 6: string, 7: string}
*/
private array $adverbs = array(
- "bestial",
- "dead",
- "incongruent",
- "ladylike",
- "slimy",
- "dandy",
- "leftist",
- "flamboyant",
+ 'bestial',
+ 'dead',
+ 'incongruent',
+ 'ladylike',
+ 'slimy',
+ 'dandy',
+ 'leftist',
+ 'flamboyant',
);
/**
+ * Verbs.
+ *
* @var string[]
*
* @psalm-var array{0: string, 1: string, 2: string, 3: string, 4: string, 5: string, 6: string}
*/
private array $verbs = array(
- "kill",
- "regurgitat",
- "destroy",
- "blasphem",
- "strangl",
- "terroriz",
- "mutilat",
+ 'kill',
+ 'regurgitat',
+ 'destroy',
+ 'blasphem',
+ 'strangl',
+ 'terroriz',
+ 'mutilat',
);
/**
+ * Endings.
+ *
* @var string[]
*
* @psalm-var array{0: string, 1: string, 2: string, 3: string}
*/
private array $endings = array(
- "er",
- "ers",
- "ing",
- "ed",
+ 'er',
+ 'ers',
+ 'ing',
+ 'ed',
);
- public function get() : string
- {
+ /**
+ * Return a generated band name.
+ */
+ public function get() : string {
$parts = array(
- $this->pick($this->prefixes),
- $this->pick($this->adverbs),
- $this->pick($this->verbs));
+ $this->pick( $this->prefixes ),
+ $this->pick( $this->adverbs ),
+ $this->pick( $this->verbs ),
+ );
- return trim(implode(" ", $parts) . $this->pick($this->endings));
+ return trim( implode( ' ', $parts ) . $this->pick( $this->endings ) );
}
}
-class VenueGenerator extends GeneratorBase
-{
+/**
+ * Generator for venue names
+ */
+class VenueGenerator extends GeneratorBase {
+
/**
+ * Prefix 1.
+ *
* @var string[]
*
* @psalm-var array{0: string, 1: string, 2: string, 3: string, 4: string}
*/
private array $prefix1 = array(
- "",
- "royal",
- "shabby",
- "happy",
- "drunken",
+ '',
+ 'royal',
+ 'shabby',
+ 'happy',
+ 'drunken',
);
/**
+ * Prefix 2.
+ *
* @var string[]
*
* @psalm-var array{0: string, 1: string, 2: string, 3: string, 4: string, 5: string}
*/
private array $prefix2 = array(
- "",
- "music",
- "fiddler",
- "rock",
- "metal",
- "mental",
+ '',
+ 'music',
+ 'fiddler',
+ 'rock',
+ 'metal',
+ 'mental',
);
/**
+ * Type of venue.
+ *
* @var string[]
*
* @psalm-var array{0: string, 1: string, 2: string, 3: string, 4: string, 5: string, 6: string}
*/
private array $type = array(
- "hall",
- "museum",
- "asylum",
- "stage",
- "cottage",
- "opera",
- "lighthouse"
+ 'hall',
+ 'museum',
+ 'asylum',
+ 'stage',
+ 'cottage',
+ 'opera',
+ 'lighthouse',
);
- public function get() : string
- {
+ /**
+ * Return a generated venue name.
+ */
+ public function get() : string {
$parts = array(
- $this->pick($this->prefix1),
- $this->pick($this->prefix2),
- $this->pick($this->type));
+ $this->pick( $this->prefix1 ),
+ $this->pick( $this->prefix2 ),
+ $this->pick( $this->type ),
+ );
- return trim(implode(" ", $parts));
+ return trim( implode( ' ', $parts ) );
}
}
-class LinkGenerator extends GeneratorBase
-{
+/**
+ * Generator for links (event and ticket links.)
+ */
+class LinkGenerator extends GeneratorBase {
+
/**
+ * Return a generated link.
+ *
* @return string
*/
- public function get() : string
- {
- return 'https://example.com/' . bin2hex(random_bytes(8));
+ public function get() : string {
+ return 'https://example.com/' . bin2hex( random_bytes( 8 ) );
}
}
$band = new BandNameGenerator();
$venue = new VenueGenerator();
-$link = new LinkGenerator();
+$links = new LinkGenerator();
$date = new DateTime();
-for ($i = 0; $i < 10; $i++) {
- $date->add(new DateInterval('P' . random_int(0, 60) . 'D'));
+$prog = array_shift( $argv );
+$num = intval( array_shift( $argv ) ) ?? 10;
+
+for ( $i = 0; $i < $num; $i++ ) {
+ $date->add( new DateInterval( 'P' . random_int( 0, 60 ) . 'D' ) );
- echo implode("\t", array($band->get(), $venue->get(), $date->format('Y-m-d'), $link->get(), $link->get())) . "\n";
+ echo implode( "\t", array( $band->get(), $venue->get(), "Oslo", $date->format( 'Y-m-d' ), $links->get(), $links->get() ) ) . "\n";
}