ОО PHP + Ajax без фреймворка - PullRequest
5 голосов
/ 21 июня 2010

Я собираюсь написать сайт бронирования с использованием php и ajax, и я действительно не могу понять, как смешать эти два инструмента со строгим объектно-ориентированным дизайном.

Меня использовали для звонков с использованиемajax на веб-странице php, которая возвращает правильный набор значений (string, xml, json) процедурным способом.

Как должно работать объектно-ориентированное программирование?

Самый простойРешение, о котором я могу подумать, - это вызвать через ajax страницу php, которая должна только создать экземпляр нового объекта нужного класса, а затем сделать эхо в результате простого вызова с полученными данными, но это выглядит не очень хорошо ...

Например, для реализации функции register я должен сделать ajax-вызов веб-страницы register.php, которая, в свою очередь, создаст экземпляр нового объекта Registration r, а затем просто вызовет r.register () справильные данные.

Есть ли лучшее решение этой проблемы?

Я хочу указать, что не могу использовать фреймворк php, потому что это дидактический пр.oject, и у меня есть это правило, которое я должен соблюдать.

Еще одна спецификация: я прочитал много учебных пособий, в которых описывается, как написать собственный фреймворк mvc, но это кажется излишним для моей проблемы.

Спасибо за помощь, каждая идея будет оценена.

Ответы [ 2 ]

1 голос
/ 21 июня 2010

Нет причин создавать какие-либо классы, если все, что вы делаете, это вызываете пару несвязанных функций php без сохранения состояния.

1 голос
/ 21 июня 2010

Как вы уже сказали, вам не нужен PHP-фреймворк и вам не нужно создавать собственную реализацию MVC. (особенно если вы, например, работаете с JSON или XML). По сути, вы достаточно свободны в том, как сделать свою модель ОО, так что ваша идея не обязательно ошибочна.

Некоторые анти-паттерны OO, которые я видел у людей в PHP:

  • Использование глобальных переменных в классах
  • Создание классов без члена переменные, приводящие к вызовам методов быть таким же, как в производственном стиле
  • Прямой доступ к $ _GET, $ _POST и т. Д. в классе
  • Повторяет вывод html (imho, это должно быть сделано в шаблонах представления)

Пример того, что вы можете сделать для процесса регистрации, обрабатывающего некоторые переменные $ _POST и возвращаем сообщение об успешном выполнении JSON:

<?php

class Registration
{
    private $_data;

    public function __construct($registrationdata)
    {
        $this->_data = $registrationdata;
    }

    public function validate()
    {
        // ...
    }

    public function register()
    {
        // ...
        if($this->validate())
            return array("registered" => true, "username" => $this->_data["username"], 
                "message" => "Thank you for registering");
        else
            return array("registered" => false, "username" => $this->_data["username"],
                "message" => "Duplicate username");
    }
}

$reg = new Registration($_POST);
echo json_encode($reg->register());

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...