@@ -25,6 +25,9 @@ public function getTitleFromFilePath(string $filePath): false|string
25
25
unset($ filenameParts [0 ], $ filenameParts [1 ]);
26
26
$ title = implode (' ' , $ filenameParts );
27
27
$ title = preg_replace ('/\.md/i ' , '' , $ title );
28
+ if (!is_string ($ title )) {
29
+ return false ;
30
+ }
28
31
return ucfirst ($ title );
29
32
}
30
33
@@ -41,12 +44,12 @@ public function getIDFromFilePath(string $filePath, bool $isQuiz = true): false|
41
44
return false ;
42
45
}
43
46
44
- return $ filenameParts [$ index ];
47
+ return ( int ) $ filenameParts [$ index ];
45
48
}
46
49
47
50
/**
48
51
* @param string $source
49
- * @return array{ int, array{id: int, name: string, file_path: string}}
52
+ * @return array< int, Question>
50
53
*/
51
54
public function generate (string $ source ): array
52
55
{
@@ -56,7 +59,7 @@ public function generate(string $source): array
56
59
57
60
/**
58
61
* @param string[] $filePaths
59
- * @return array{ int, array{id: int, name: string, file_path: string}}
62
+ * @return array< int, Question>
60
63
*/
61
64
public function process (array $ filePaths ): array
62
65
{
@@ -65,6 +68,11 @@ public function process(array $filePaths): array
65
68
$ quizID = $ this ->getIDFromFilePath ($ filePath );
66
69
$ questionID = $ this ->getIDFromFilePath ($ filePath , false );
67
70
$ title = $ this ->getTitleFromFilePath ($ filePath );
71
+
72
+ if (!$ quizID || !$ questionID || !$ title ) {
73
+ continue ;
74
+ }
75
+
68
76
$ content = [];
69
77
$ possibleAnswers = [];
70
78
$ correctAnswers = [];
0 commit comments