Я пишу веб-приложение в объектно-ориентированном дизайне. Это приложение будет довольно часто взаимодействовать с базой данных. Несколько регулярных операций — это проверка разрешений ACL пользователя для запрошенной функции/метода, выполнение определенных функций и т. д. Короче говоря, база данных будет использоваться очень часто. Итак, мой вопрос здесь в том, что если я разработаю свое приложение с использованием ООП и объявлю переменные уровня класса, которые будут использоваться для установки входных данных, и если есть какой-либо параллельный или параллельный запрос, поступающий от другого пользователя, будут ли входные данные быть изменен??
Должен ли я сделать что-то отдельное, чтобы убедиться, что приложение является многопоточным, а входящий ввод не будет изменен до тех пор, пока процесс не будет завершен?
ex:
class myProces{
var $input1;
var $input2;
function process1($ip1, $ip2){
$this->input1 = $ip1;
$this->input2 = $ip2;
$this->getDataDB();
}
function getDataDB(){
//do some database activity with the class level variables;
// I would pass the values in the class level variables;
$query = "select column from table where col1 = $this->input1 and col2= $this->input2";
mysql_query($query);
return something;
}
}
Теперь, если у меня есть два пользователя, которые одновременно запускают мое приложение и вызывают функции в этом классе
пользователь1: $obj = новый myProces(); $объект->процесс1(1,2);
пользователь2: $obj = новый myProces(); $объект->процесс1(5,6);
Теперь, если бы у меня были переменные уровня класса, изменились бы они значения при поступлении одновременных запросов?? Будет ли PHP выполнять какую-либо обработку для многопоточности? Я не уверен, может ли Apache действовать как очередь сообщений, где запросы могут быть поставлены в очередь.
Может ли кто-нибудь объяснить, хорош ли ООП для веб-приложений с большим количеством пользователей или разработчики должны выполнять какую-либо многопоточность ??