-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathexample-script.php
More file actions
106 lines (92 loc) · 3 KB
/
Copy pathexample-script.php
File metadata and controls
106 lines (92 loc) · 3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php
// add composer autoload or manually
require_once 'src/Task.php';
require_once 'src/ProjectVerifier.php';
require_once 'src/Task/CheckRequiredDirectoriesTask.php';
require_once 'src/Task/CheckRequiredFilesTask.php';
require_once 'src/Task/CheckFilesPermissionsTask.php';
require_once 'src/Task/CheckDbRecordsTask.php';
require_once 'src/Task/CheckPhpExtensionsTask.php';
require_once 'src/Task/CheckInstalledCommandsTask.php';
require_once 'src/Task/CheckCustomTask.php';
require_once 'src/Task/CheckPhpIniTask.php';
// full path
$projectPath = __DIR__;
array_shift($argv);
define('APP_ENV', (array_shift($argv) ?: 'crm.app'));
// configs
// checkings
// 1. directories to check (in project path)
$requiredDirectories = [
'storage/logs/'.APP_ENV,
'storage/framework/cache/'.APP_ENV,
'storage/logs/testing/',
'storage/framework/cache/testing/',
];
// 2. files to check
$requiredFiles = [
'config/'.APP_ENV.'/app.php',
'config/'.APP_ENV.'/database.php',
];
// 3. files/directories to check permissions (in project path)
$chmods = [
'media' => 777
];
// 4. DB queries
$queries = [
'Has active user?' => 'SELECT * FROM users WHERE enabled = 1 LIMIT 1',
];
// 5. PHP settings
$phpSettings = [
['option' => 'post_max_size', 'value' => '128M', 'comparator' => '>='],
['option' => 'upload_max_filesize', 'value' => '256M', 'comparator' => '>='],
];
// 6. PHP extensions
$phpExtensions = [
'json',
'gd',
'mcrypt',
'memcached',
'mbstring',
'fileinfo',
'PDO',
'pdo_mysql',
'mysqli',
];
// 7. OS commands
$commands = [
'beanstalked',
'gulp',
'pdfunite',
'npm',
];
// db config manualy of from file require_once $projectPath.'/config/'.$env.'/database.php';
$dbConfig = [
'host' => 'localhost',
'database' => 'sklep',
'username' => 'dev',
'password' => 'dev',
'charset' => 'utf8',
];
use MrGrygson\ProjectVerifier\ProjectVerifier;
use MrGrygson\ProjectVerifier\Task\CheckRequiredDirectoriesTask;
use MrGrygson\ProjectVerifier\Task\CheckRequiredFilesTask;
use MrGrygson\ProjectVerifier\Task\CheckFilesPermissionsTask;
use MrGrygson\ProjectVerifier\Task\CheckDbRecordsTask;
use MrGrygson\ProjectVerifier\Task\CheckPhpExtensionsTask;
use MrGrygson\ProjectVerifier\Task\CheckInstalledCommandsTask;
use MrGrygson\ProjectVerifier\Task\CheckCustomTask;
use MrGrygson\ProjectVerifier\Task\CheckPhpIniTask;
$verifier = new ProjectVerifier($projectPath, APP_ENV);
$verifier->setDbConfiguration($dbConfig);
$verifier->addTask(new CheckPhpExtensionsTask($phpExtensions));
$verifier->addTask(new CheckInstalledCommandsTask($commands));
$verifier->addTask(new CheckRequiredDirectoriesTask($requiredDirectories));
$verifier->addTask(new CheckRequiredFilesTask($requiredFiles));
$verifier->addTask(new CheckFilesPermissionsTask($chmods));
$verifier->addTask(new CheckDbRecordsTask($queries));
$verifier->addTask(new CheckPhpIniTask($phpSettings));
$verifier->addTask(new CheckCustomTask('Test task', function() {
return 2 > 1;
}));
$verifier->run();