В настоящее время я работаю над социальным приложением.
Мне бы хотелось иметь систему управления версиями на моем бэкэнде PHP, но я не знаю с чего начать: я просмотрел кучу статейонлайн, но я не мог понять, что я нашел.
Допустим, мое приложение v1.0.Затем я создаю новую версию v2.0 и, конечно, я тоже обновляю файлы PHP.После этого, если кто-то не обновил свое приложение с версии 1.0, я бы хотел, чтобы оно достигло myapp.com/v1.0/
, чтобы приложение не зависало.
Что бы вы порекомендовали?
Типичный мой PHP-файл выглядит следующим образом, например:
<?php
// Include files
include_once ('../../config.php');
include_once (ROOT_DIR . '/config/includes.php');
$_USERDATA = Validator::validateUser($_POST["userId"], $_POST["session"]);
// Valid session
$qry = $db->prepare('SELECT n.id, n.type, n.time, n.isRead, n.postId, n.commentId, n.text, n.inReplyToCommentId, u.id as byUserId,
( SELECT COUNT(nu.id)
FROM notificationUsers AS nu
WHERE nu.notificationId = n.id ) as detail1,
( SELECT nu2.userId
FROM notificationUsers AS nu2
WHERE nu2.notificationId = n.id ORDER BY nu2.id DESC LIMIT 1 ) as latestUserId FROM notifications AS n LEFT JOIN userData AS u ON n.byUserId = u.id
WHERE n.userId = :userId ORDER BY n.time DESC');
$qry->bindParam(':userId', $_USERDATA["userId"], PDO::PARAM_INT);
$qry->execute();
$notificationsArray = $qry->fetchAll(PDO::FETCH_ASSOC);
$returnValue = array();
$returnValue["status"] = "1";
$returnValue["title"] = "Success";
$returnValue["message"] = "Downloaded notifications";
$returnValue["data_notifications"] = $notificationsArray;
exit(json_encode($returnValue));
?>
...
ОБНОВЛЕНИЕ 1
Поэтому я решил сделать следующее:
Поместить каждый не общий файл в папку примерно так:
/api/v1.0/file.php
Но каждый ресурс, например (изображения), находится за пределамиAPI
/resources/images/profilepictures/image.jpg
Если я сделаю небольшое изменение, я просто обновлю файлы в папке api/v1.0/
.
Затем все пользователи, использующие Application v1.1
они запрашивают myapp.com/api/v1.1/
, но я перенаправляю их в api / v1.0 /, где я могу предоставить пользователям правильные данные (в зависимости от того, был ли запрос от v1.0 или v1.1)
Если версии складываются, и я выпускаю большее обновление, я создам новую папку с именем v2.0
, и так оно и будет ...
Или как вы думаете?Как мне это сделать?