В нашем последнем выпуске...
YII - высокопроизводительный веб фреймворк на PHP. :: http://kocby.ru/post/webmaster/text/issue195.html
Мы познакомились и научились работать с PHP фреймворком YII ('Yes It Is !').
Вообще говоря, такие вопросы как 'использовать ли фреймворки и какой именно использовать' обычно не слишком актуальны и имеют универсальный английский ответ: 'it depends!'
Если, например, вы поступили на работу в контору где активно юзается YII, то какие вопросы? Вы изучаете и используете именно YII. Если же фреймворки принципиально не признаются, то пишите чистый код с нуля.
Конечно, приятна ситуация, когда есть возможность самому диктовать моду и задавать вектор направления развития в рамках отдельно взятой софт компании или дизайн студии, но это и большая ответственность. Кроме того, крайне желательно, разбираться в основах, иначе есть риск уехать не туда...
Это был разогрев и связка со вчерашним днем.
Сегодня на несложном практическом примере мы изучим функцию getJSON() и рассмотрим взаимодействие трех специалистов: программера рабочей станции (компьютера пользователя, JavaScript с библиотекой jQuery), серверного программера (PHP) и проектировшика БД.
Сначала посмотрим на плод их совместного труда с точки зрения конечного пользователя:
http://kocby.ru/test/time/
Для пользователя данный функционал нужен для того, чтобы убедиться, что часы на его компьютере показывают время правильно. Это бывает далеко не всегда. Причины неполадок со временем могут быть разные: испортилась батарейка БИОС, глюканула служба синхронизации и т.д.
Кроме того, для пользователя опрелеляется часовой пояс. Обнаружив, что он находится, например, в Москве, а не где-нибудь на Аляске или в Магадане, пользователь должен успокоиться, а, может, даже и обрадоваться.
Для запуска процесса пользователь должен отметить радио-кнопку 'Да! Я согласен(сна) запустить процесс!' и нажать 'Запустить процесс!'. Можно было бы обойтись без этого риторического вопроса и сделать автозапуск. Но это, во-первых, неэтично, а во-вторых, не так наглядно.
Итак, пользователь запустил процесс, посмотрел по карте, в каком часовом поясе он находится и довольный пошел спать.
Теперь посмотрим на этот же функионал с точки зрения участников команды разработчиков:
http://kocby.ru/post/webmaster/jquery/getjson/
Это тот же самый функционал, только добавлена некоторая гибкость. Пользователь имеет возможность изменять (читай - искажать) временные характеристики рабочей станции с целью глубже протестировать функционал, посмотреть как будет отображаться карта чужой часовой зоны и т.п.
Как осуществляется взаимодействие между участниками команды разработчиков.
Примерно вот так.
Программер рабочей станции (компьютера пользователя, JavaScript с библиотекой jQuery). Эй, ты, серверный программер PHP! Я тебе кину объект JSON методом GET со следующими переменными:
work_st_FullYear - год
work_st_Month - месяц
work_st_Date - день
work_st_Hours - час
work_st_Minutes - минуты
work_st_Seconds - секунды
work_st_TimezoneOffset - смещение в минутах от нулевой зоны Гринвича (GMT) с точки зрения рабочей станции.
А ты мне дай в ответ информацию в формате JSON, чтобы мне ее легче было обрабатывать:
server_FullYear - год
server_Month - месяц
server_Date - день
server_Hours - час
server_Minutes - минуты
server_Seconds - секунды
dif_Year - разница в значении года
dif_Month - разница в значении месяца
dif_Date - разница в значении дня
dif_Hours - разница в значении часа
dif_Minutes - разница в значении минут
dif_Seconds - разница в значении секунд
dif1 - разница в значении отклонения от (UTC+0) в минутах точная
dif1_rounded - разница в значении отклонения от (UTC+0) в минутах округленная до значения целых минут.
code1 - код зоны в формате (UTC+0).
minstart - начало интервала зоны в минутах.
minend - конец интервала зоны в минутах.
desce - описание зоны на англ.
descr - описание зоны на русском.
iso8601 - пример, как для данной зоны отображается время в международном формате.
dst - Регионы данной зоны, в которых действует DST (Daylight Saving Time, Переход на Летнее Время).
Последнюю группу данных (начиная с code1) программер PHP выдергивает из БД.
Понятное дело, что для маленьких простых проектов все три роли объединяются в одном исполнителе (он же главный начальник, руководитель проекта), но для больших проектов такое разделение необходимо. Чем уже специалист, тем глубже он может погрузиться в свою предметную область, тем качественее продукт он может произвести.
На данном простом примере вы можете прочувствовать специфику труда каждого специалиста.
Чтобы совсем все хорошо понять и прочувствовать, данный функционал вы можете установить на свой сайт:
http://kocby.ru/post/webmaster/jquery/getjson/getjson.zip
Все программы и инструкция предлагаются бесплатно. Вы можете адаптировать функционал под свой вкус и/или потребности.
Последовательность установки на свой сайт и адаптация под свои нужды.
1. Распакуйте getjson.zip и все файлы из него положите на свой сайт в одну директорию (папку). Запустите index.html - сразу все должно заработать без использования БД (Базы Данных).
2. Установка БД (Базы Данных) - при желании.
Создайте БД на своем хостинге и подправьте в файле db_test.php параметры так, чтобы они совпадали с вашими реальными значениями.
$mysqli_server = "localhost";
$mysqli_user_name = "DB_user_name";
$mysqli_user_pass = "DB_user_pass";
$mysqli_db = "DB";
Обратите внимание, что в большинстве случаев значение $mysqli_server следует оставлять как раз "localhost", за исключением особо оригинальных хостинговых сервисов.
Теперь сделайте импорт данных из файла db_time.sql и теперь функционал должен работать с подключенной БД.
Если чувствуете себя не очень уверенно и комфортно с БД, перечитайте выпуски: 180, 181,
3. Файл параметров param1.js.
Обратите внимание на файл param1.js, здесь есть ряд полезных триггеров.
Например, переменная:
// var time_in_form1 = true; // версия для программера
var time_in_form1 = false; // версия для конечного пользователя
Если установлено значение 'true' функционал будет работать в режиме 'для разработчика', если 'false', то в режиме 'для пользователя'.
Вы можете поиграться этими и другими параметрами.
4. Тонкая доводка.
Адаптируйте стили (файл(ы) *.css) под свой дизайн. Раскидайте файл библиотек по папкам, исходя из собственных представлений об удобстве. И т.д. И т.п.
Вот, кажется, и все.
Спасибо за внимание.
~~~~~ Обратная связь ~~~~~
У вас есть два способа реагирования на данный выпуск.
На форуме...
"Как сделать популярный сайт" на форуме :: http://kocby.ru/b/viewforum.php?f=5
Написать лично мне.
Данные для связи на контактной страничке :: http://kocby.ru/contact.html
Ниже дан мой работающий емейл, но доставка через форму на указанном урле надежнее, ее вероятность является почти 100%.
::::::::::::::::::::::::
::: Vladimir Abramov :::
::: va@sumat.ru ::::::::
::: http://sumat.ru/ :::
::::::::::::::::::::::::
::: Vladimir Abramov :::
::: va@sumat.ru ::::::::
::: http://sumat.ru/ :::
::::::::::::::::::::::::
### Конец выпуска.
Тропинка к данной страничке:
Главная страничка :: Рассылки :: Раздел 'Вебмастер' :: Список выпусков :: Выпуск 196. Функция getJSON.