вторник, 16 октября 2012 г.

Мой косяк :)

В предыдущем посте я рассказал про классы Request и Response. Так вот, в классе Request я немного накосячил. Метод getPathInfo() можно упростить. Вот другой вариант того же класса:
<?php
class Request {
    /**
     * Получить путь запроса без строки запроса и имени выполняемого
     * скрипта
     * 
     * @return string
     */
    public function getPathInfo() {
        $path_info = isset($_SERVER['PATH_INFO']) ? trim($_SERVER['PATH_INFO'], '/') : '/';
        echo $path_info;
        return $path_info;
        
    }
    
    /**
     * Поиск и получение значения параметра зпроса
     * по ключу
     * 
     * @param string $key               искомый ключ параметра запроса
     * @return mixed                    значение параметра 
     *                                  или null если параметр не существует
     */
    public function find($key) {
        // ищем ключ $key в параметрах запроса
        // если он найден вернем значение параметра
        // иначе вернем null
        if ( key_exists($key, $_REQUEST) )
            return $_REQUEST[$key];
        else
            return null;
    }
    
    /**
     * Проверяет существование параметра в запросе
     * по его ключу
     * 
     * @param string $key               проверяемый ключ
     * @return boolean
     */
    public function has($key)
    {
        return key_exists($key, $_REQUEST);
    }
}
?>

понедельник, 15 октября 2012 г.

Основная функция PHP-приложения. Классы Request и Response

Начинающие веб-разработчики (в том числе и я) не понимают основную функцию веб-приложения (не только php). А ведь это очень важно и в то же время очень просто. Основная функция веб-приложения получить запрос от клиента, подготовить ответ (здесь выполняются различные действия получения данных и их обработки), вернуть ответ клиенту.

Очень часто запрос и ответ реализуются в веб-приложениях в виде классов Request и Response. Тогда все что нужно будет приложению это определить путь запроса Request и вернуть соответствующий пути ответ Response. UML-диаграмма классов Request и Response представлена ниже:


Как мы видим в классе Request есть три метода: