Skip to content

Commit d8d455e

Browse files
committed
Prune old database update logic (2+ yrs old)
1 parent eb70aba commit d8d455e

File tree

1 file changed

+7
-211
lines changed

1 file changed

+7
-211
lines changed

database_updates.php

Lines changed: 7 additions & 211 deletions
Original file line numberDiff line numberDiff line change
@@ -17,210 +17,6 @@
1717

1818
// We need updates!
1919

20-
if (CURRENT_DATABASE_VERSION == '0.0.1') {
21-
// Insert queries here required to update to DB version 0.0.2
22-
23-
mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_module_enable_itdoc` TINYINT(1) DEFAULT 1 AFTER `config_backup_path`");
24-
mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_module_enable_ticketing` TINYINT(1) DEFAULT 1 AFTER `config_module_enable_itdoc`");
25-
mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_module_enable_accounting` TINYINT(1) DEFAULT 1 AFTER `config_module_enable_ticketing`");
26-
27-
// Update the database to the next sequential version
28-
mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.0.2'");
29-
}
30-
31-
if (CURRENT_DATABASE_VERSION == '0.0.2') {
32-
// Insert queries here required to update to DB version 0.0.3
33-
34-
// Add document content raw column & index
35-
mysqli_query($mysqli, "ALTER TABLE `documents` ADD `document_content_raw` LONGTEXT NOT NULL AFTER `document_content`, ADD FULLTEXT `document_content_raw` (`document_content_raw`)");
36-
37-
// Populate content raw column with existing document data
38-
$documents_sql = mysqli_query($mysqli, "SELECT * FROM `documents`");
39-
while($row = mysqli_fetch_array($documents_sql)) {
40-
$id = $row['document_id'];
41-
$name = $row['document_name'];
42-
$content = $row['document_content'];
43-
$content_raw = trim(mysqli_real_escape_string($mysqli, strip_tags($name . " " . str_replace("<", " <", $content))));
44-
45-
mysqli_query($mysqli, "UPDATE `documents` SET `document_content_raw` = '$content_raw' WHERE `document_id` = '$id'");
46-
}
47-
48-
// Add API key client column
49-
mysqli_query($mysqli, "ALTER TABLE `api_keys` ADD `api_key_client_id` INT NOT NULL DEFAULT '0' AFTER `api_key_expire`");
50-
51-
// Then, update the database to the next sequential version
52-
mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.0.3'");
53-
}
54-
55-
if (CURRENT_DATABASE_VERSION == '0.0.3') {
56-
// Insert queries here required to update to DB version 0.0.4
57-
// mysqli_query($mysqli, "ALTER TABLE .....");
58-
59-
// Update all tables updated/modified fields to be automatic
60-
61-
mysqli_query($mysqli, "ALTER TABLE `accounts` CHANGE `account_created_at` `account_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `account_updated_at` `account_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL;");
62-
63-
mysqli_query($mysqli, "ALTER TABLE `api_keys` CHANGE `api_key_created_at` `api_key_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP; ");
64-
65-
mysqli_query($mysqli, "ALTER TABLE `assets` CHANGE `asset_created_at` `asset_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `asset_updated_at` `asset_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL;");
66-
67-
mysqli_query($mysqli, "ALTER TABLE `calendars` CHANGE `calendar_created_at` `calendar_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `calendar_updated_at` `calendar_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
68-
69-
mysqli_query($mysqli, "ALTER TABLE `campaigns` CHANGE `campaign_created_at` `campaign_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `campaign_updated_at` `campaign_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
70-
71-
mysqli_query($mysqli, "ALTER TABLE `campaign_messages` CHANGE `message_created_at` `message_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `message_updated_at` `message_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
72-
73-
mysqli_query($mysqli, "ALTER TABLE `categories` CHANGE `category_created_at` `category_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `category_updated_at` `category_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
74-
75-
mysqli_query($mysqli, "ALTER TABLE `certificates` CHANGE `certificate_created_at` `certificate_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `certificate_updated_at` `certificate_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
76-
77-
mysqli_query($mysqli, "ALTER TABLE `clients` CHANGE `client_created_at` `client_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `client_updated_at` `client_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
78-
79-
mysqli_query($mysqli, "ALTER TABLE `companies` CHANGE `company_created_at` `company_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `company_updated_at` `company_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
80-
81-
mysqli_query($mysqli, "ALTER TABLE `contacts` CHANGE `contact_created_at` `contact_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `contact_updated_at` `contact_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
82-
83-
mysqli_query($mysqli, "ALTER TABLE `contracts` CHANGE `contract_created_at` `contract_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `contract_updated_at` `contract_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
84-
85-
mysqli_query($mysqli, "ALTER TABLE `custom_links` CHANGE `custom_link_created_at` `custom_link_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP; ");
86-
87-
mysqli_query($mysqli, "ALTER TABLE `departments` CHANGE `department_created_at` `department_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `department_updated_at` `department_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
88-
89-
mysqli_query($mysqli, "ALTER TABLE `documents` CHANGE `document_created_at` `document_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `document_updated_at` `document_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
90-
91-
mysqli_query($mysqli, "ALTER TABLE `domains` CHANGE `domain_created_at` `domain_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `domain_updated_at` `domain_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
92-
93-
mysqli_query($mysqli, "ALTER TABLE `events` CHANGE `event_created_at` `event_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `event_updated_at` `event_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
94-
95-
mysqli_query($mysqli, "ALTER TABLE `expenses` CHANGE `expense_created_at` `expense_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `expense_updated_at` `expense_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
96-
97-
mysqli_query($mysqli, "ALTER TABLE `files` CHANGE `file_created_at` `file_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `file_updated_at` `file_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL;");
98-
99-
mysqli_query($mysqli, "ALTER TABLE `history` CHANGE `history_created_at` `history_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP; ");
100-
101-
mysqli_query($mysqli, "ALTER TABLE `invoices` CHANGE `invoice_created_at` `invoice_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `invoice_updated_at` `invoice_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
102-
103-
mysqli_query($mysqli, "ALTER TABLE `invoice_items` CHANGE `item_created_at` `item_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `item_updated_at` `item_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
104-
105-
mysqli_query($mysqli, "ALTER TABLE `locations` CHANGE `location_created_at` `location_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `location_updated_at` `location_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
106-
107-
mysqli_query($mysqli, "ALTER TABLE `logins` CHANGE `login_created_at` `login_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `login_updated_at` `login_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
108-
109-
mysqli_query($mysqli, "ALTER TABLE `logs` CHANGE `log_created_at` `log_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP; ");
110-
111-
mysqli_query($mysqli, "ALTER TABLE `networks` CHANGE `network_created_at` `network_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `network_updated_at` `network_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
112-
113-
mysqli_query($mysqli, "ALTER TABLE `notifications` CHANGE `notification_timestamp` `notification_timestamp` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP; ");
114-
115-
mysqli_query($mysqli, "ALTER TABLE `payments` CHANGE `payment_created_at` `payment_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `payment_updated_at` `payment_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
116-
117-
mysqli_query($mysqli, "ALTER TABLE `products` CHANGE `product_created_at` `product_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `product_updated_at` `product_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
118-
119-
mysqli_query($mysqli, "ALTER TABLE `quotes` CHANGE `quote_created_at` `quote_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `quote_updated_at` `quote_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
120-
121-
mysqli_query($mysqli, "ALTER TABLE `records` CHANGE `record_created_at` `record_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `record_updated_at` `record_updated_at` DATETIME on update CURRENT_TIMESTAMP NOT NULL; ");
122-
123-
mysqli_query($mysqli, "ALTER TABLE `recurring` CHANGE `recurring_created_at` `recurring_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `recurring_updated_at` `recurring_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
124-
125-
mysqli_query($mysqli, "ALTER TABLE `scheduled_tickets` CHANGE `scheduled_ticket_created_at` `scheduled_ticket_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `scheduled_ticket_updated_at` `scheduled_ticket_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
126-
127-
mysqli_query($mysqli, "ALTER TABLE `services` CHANGE `service_created_at` `service_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `service_updated_at` `service_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
128-
129-
mysqli_query($mysqli, "ALTER TABLE `shared_items` CHANGE `item_created_at` `item_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP; ");
130-
131-
mysqli_query($mysqli, "ALTER TABLE `software` CHANGE `software_created_at` `software_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `software_updated_at` `software_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
132-
133-
mysqli_query($mysqli, "ALTER TABLE `tags` CHANGE `tag_created_at` `tag_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `tag_updated_at` `tag_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
134-
135-
mysqli_query($mysqli, "ALTER TABLE `taxes` CHANGE `tax_created_at` `tax_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `tax_updated_at` `tax_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
136-
137-
mysqli_query($mysqli, "ALTER TABLE `tickets` CHANGE `ticket_created_at` `ticket_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `ticket_updated_at` `ticket_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
138-
139-
mysqli_query($mysqli, "ALTER TABLE `ticket_replies` CHANGE `ticket_reply_created_at` `ticket_reply_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `ticket_reply_updated_at` `ticket_reply_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
140-
141-
mysqli_query($mysqli, "ALTER TABLE `transfers` CHANGE `transfer_created_at` `transfer_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `transfer_updated_at` `transfer_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
142-
143-
mysqli_query($mysqli, "ALTER TABLE `trips` CHANGE `trip_created_at` `trip_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `trip_updated_at` `trip_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
144-
145-
mysqli_query($mysqli, "ALTER TABLE `users` CHANGE `user_created_at` `user_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `user_updated_at` `user_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
146-
147-
mysqli_query($mysqli, "ALTER TABLE `vendors` CHANGE `vendor_created_at` `vendor_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `vendor_updated_at` `vendor_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
148-
149-
// Then, update the database to the next sequential version
150-
mysqli_query($mysqli, "UPDATE settings SET config_current_database_version = '0.0.4'");
151-
152-
}
153-
154-
if (CURRENT_DATABASE_VERSION == '0.0.4') {
155-
// Queries here required to update to DB version 0.0.5
156-
157-
mysqli_query($mysqli, "ALTER TABLE `assets` DROP `asset_meshcentral_id`;");
158-
mysqli_query($mysqli, "ALTER TABLE `clients` DROP `client_meshcentral_group`;");
159-
mysqli_query($mysqli, "ALTER TABLE `settings` DROP `config_meshcentral_uri`, DROP `config_meshcentral_user`, DROP `config_meshcentral_secret`;");
160-
161-
// Then, update the database to the next sequential version
162-
mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.0.5'");
163-
}
164-
165-
if (CURRENT_DATABASE_VERSION == '0.0.5') {
166-
// Insert queries here required to update to DB version 0.0.6
167-
168-
mysqli_query($mysqli, "UPDATE documents SET document_folder_id = 0");
169-
170-
mysqli_query($mysqli, "DROP TABLE documents_tagged");
171-
mysqli_query($mysqli, "DROP TABLE document_tags");
172-
173-
174-
// Then, update the database to the next sequential version
175-
mysqli_query($mysqli, "UPDATE settings SET config_current_database_version = '0.0.6'");
176-
}
177-
178-
if (CURRENT_DATABASE_VERSION == '0.0.6') {
179-
// Insert queries here required to update to DB version 0.0.7
180-
mysqli_query($mysqli, "ALTER TABLE contacts ADD contact_department VARCHAR(200) NULL AFTER contact_title");
181-
mysqli_query($mysqli, "DROP TABLE departments");
182-
mysqli_query($mysqli, "ALTER TABLE contacts DROP contact_department_id");
183-
184-
mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.0.7'");
185-
}
186-
187-
if (CURRENT_DATABASE_VERSION == '0.0.7') {
188-
// Insert queries here required to update to DB version 0.0.8
189-
190-
// Add contact_department column to tables without it (fresh installs) - this will cause an error if it already exists so catch and discard it
191-
try{
192-
mysqli_query($mysqli, "ALTER TABLE contacts ADD contact_department VARCHAR(200) NULL AFTER contact_title");
193-
} catch(Exception $e) {
194-
// Nothing
195-
}
196-
197-
// Then, update the database to the next sequential version
198-
mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.0.8'");
199-
}
200-
201-
if (CURRENT_DATABASE_VERSION == '0.0.8') {
202-
// Insert queries here required to update to DB version 0.0.9
203-
204-
mysqli_query($mysqli, "ALTER TABLE `revenues` CHANGE `revenue_created_at` `revenue_created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `revenue_updated_at` `revenue_updated_at` DATETIME on update CURRENT_TIMESTAMP NULL DEFAULT NULL; ");
205-
206-
// Then, update the database to the next sequential version
207-
mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.0.9'");
208-
}
209-
210-
if (CURRENT_DATABASE_VERSION == '0.0.9') {
211-
// Insert queries here required to update to DB version 0.0.9
212-
// Remove unused tables
213-
mysqli_query($mysqli, "DROP TABLE contracts");
214-
mysqli_query($mysqli, "DROP TABLE messages");
215-
mysqli_query($mysqli, "DROP TABLE roles");
216-
217-
//Remove updated at as API keys can only be added or revoked
218-
mysqli_query($mysqli, "ALTER TABLE `api_keys` DROP `api_key_updated_at`");
219-
220-
// Then, update the database to the next sequential version
221-
mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.1.0'");
222-
}
223-
22420
if (CURRENT_DATABASE_VERSION == '0.1.0') {
22521
// Insert queries here required to update to DB version 0.1.1
22622
// Logs don't get archived
@@ -2210,7 +2006,7 @@
22102006
}
22112007

22122008
if (CURRENT_DATABASE_VERSION == '1.5.0') {
2213-
2009+
22142010
mysqli_query($mysqli, "DROP TABLE `account_types`");
22152011

22162012
mysqli_query($mysqli, "ALTER TABLE `accounts` ADD `account_description` VARCHAR(250) DEFAULT NULL AFTER `account_name`");
@@ -2223,7 +2019,7 @@
22232019
}
22242020

22252021
if (CURRENT_DATABASE_VERSION == '1.5.1') {
2226-
2022+
22272023
mysqli_query($mysqli, "ALTER TABLE `custom_links` ADD `custom_link_location` INT(11) NOT NULL DEFAULT 1 AFTER `custom_link_icon`");
22282024
mysqli_query($mysqli, "ALTER TABLE `custom_links` ADD `custom_link_new_tab` TINYINT(1) NOT NULL DEFAULT 0 AFTER `custom_link_uri`");
22292025
mysqli_query($mysqli, "ALTER TABLE `custom_links` ADD `custom_link_order` INT(11) NOT NULL DEFAULT 0 AFTER `custom_link_location`");
@@ -2333,7 +2129,7 @@
23332129
}
23342130

23352131
if (CURRENT_DATABASE_VERSION == '1.6.0') {
2336-
2132+
23372133
mysqli_query($mysqli, "CREATE TABLE `asset_history` (
23382134
`asset_history_id` INT(11) NOT NULL AUTO_INCREMENT,
23392135
`asset_history_status` VARCHAR(200) NOT NULL,
@@ -2347,14 +2143,14 @@
23472143
}
23482144

23492145
if (CURRENT_DATABASE_VERSION == '1.6.1') {
2350-
2146+
23512147
mysqli_query($mysqli, "CREATE TABLE `login_tags` (`login_id` int(11) NOT NULL,`tag_id` int(11) NOT NULL, PRIMARY KEY (`login_id`,`tag_id`))");
23522148

23532149
mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.6.2'");
23542150
}
23552151

23562152
if (CURRENT_DATABASE_VERSION == '1.6.2') {
2357-
2153+
23582154
mysqli_query($mysqli, "ALTER TABLE `files` MODIFY `file_description` VARCHAR(250) DEFAULT NULL");
23592155
mysqli_query($mysqli, "ALTER TABLE `files` MODIFY `file_ext` VARCHAR(10) DEFAULT NULL");
23602156
mysqli_query($mysqli, "ALTER TABLE `files` ADD `file_created_by` INT(11) NOT NULL DEFAULT 0 AFTER `file_accessed_at`");
@@ -2365,9 +2161,9 @@
23652161
}
23662162

23672163
if (CURRENT_DATABASE_VERSION == '1.6.3') {
2368-
2164+
23692165
// Find Files and update the Mime Type and File Size
2370-
2166+
23712167
function scanDirectory($dir, $mysqli) {
23722168
$iterator = new RecursiveIteratorIterator(
23732169
new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS),

0 commit comments

Comments
 (0)