64037
Створення Web-додатків за допомогою Ajax
Дипломная
Информатика, кибернетика и программирование
Для реалізації поставленої мети слід вирішити наступні завдання: Детальніше ознайомитися з технологією Ajax; Ознайомитися принципи роботи Web-додатків; Детальніше ознайомитися з інформацією про програмні бібліотеки підтримки розробки Web-додатків.
Украинкский
2014-06-29
2.72 MB
11 чел.
ЗМІСТ
[1]
[2]
[3] [3.1] 1 РОЗРОБКА ІНТЕРАКТИВНОГО ІНТЕРФЕЙСУ WEB-ДОДАТКІВ ЗАСОБАМИ БІБЛІОТЕКИ CODEIGNITER ТА ТЕХНОЛОГІЇ AJAX [3.2] 1.1 Загальнi вiдомостi про Ajax [3.3] 1.2 Переваги технології Ajax [3.4] 1.3 Недоліки технології Ajax [3.5] 1.4 Взаємодія у Web за допомогою Ajax [3.6] 1.5 Суть Ajax-підходу [3.7] 1.6 Інтернет-проекти на основі AJAX-технології
[3.8] [3.9] 2.1 Каркас додатків CodeIgniter [3.10] 2.2 Асинхронний обмін даними засобами Ajax
[4] [4.1] 3.1 Ініціалізація обробки запиту засобами CodeIgniter [4.2] 3.2 Приклад застосування CodeIgniter для задачі аутентифікації користувача [4.3] 3.3 Приклад використання бібліотеки CodeIgniter для обміну даними засобами Ajax
[5] [6] 4 Встановлення пакета програм для розробки WEb-додатка [6.1] 4.1 Установка та налаштування WEB-сервера Apache версій 2.4 і модуля PHP [6.1.0.1] Рисунок 4.1 Процес завантаження VC11 x86 Thread Safe
[6.2]
[6.3]
[7]
[8]
[9]
[10] |
AJAX Asynchronous JavaScript And XML (Асинхронний JavaScript і XML)
WEB Всесвітня павутина
XML Extensible Markup Language (Розширювана мова розмітки)
HTML HyperText Markup Language (Мова розмітки гіпертексту)
JSON JavaScript Object Notation (Об'єктний запис JavaScript)
CSV Comma-Separated Values
HTTP HyperText Transfer Protocol (Протокол передачі гіпертексту)
DOM Document Object Model (Об'єктна модель документа)
DHTML Dynamic HyperText Markup Language
PHP Hypertext Preprocessor (Гіпертекстовий препроцесор)
JAVA Об'єктно-орієнтована мова програмування
URL Uniform Resource Locator (Уніфікований адрес ресурсу)
XMLHttpRequest API-запит веб-клієнта (браузера) до веб-сервера за протоколом HTTP у фоновому режимі, для мовпрограмування JavaScript, JScript, VBScript
СУБД Система керування базами даних
ООП Об'єктно-орієнтоване програмування
ОС Операційна система
ПЗ Програмне забезпечення
ПК Персональний компютер
Швидкий розвиток інформаційного Web - середовища призвів до того, що вимоги до Web-додатків суттєво змінилися. Зокрема спостерігається тенденція до створення багатих Web-додатків, тобто додатків, інтерфейс яких надає можливості, що не відрізняються від можливостей звичайного додатку, який призначений для настільної системі. Але при роботі програм, що підтримують мережеву взаємодію, усунути затримку відповіді, повязану з передачею даних через мережу Інтернет, принципово неможливо. Помякшити негативний ефект від затримки даних дозволяє технологія Ajax. Але застосування цієї технології повністю змінило структуру та принципи роботи Web-додатків. В сучасних мережевих програмах все більше функцій виконується на клієнтському боці, тому обсяг коду клієнтської частини Web-додатку суттєво збільшується і робота над нею виконується групою розробників. В результаті виявилося, що мова JavaScript, яка застосовується для написання Ajax-додатків, має специфічне застосування і не відповідає вимогам до інструментальних засобів розробки та налагодження програм.
В дипломному проекті запропоновано новий підхід до створення Ajax-додатків, згідно якому для написання коду клієнтської частини програми разом з JavaScript-сценаріями мають застосовуватися Java-апплети. Завдяки взаємодії між JavaScript та Java стає можливим розділити задачі, що стоять перед додатком. Застосовуючи мову Java для написання коду, що реалізує складні алгоритми, можна застосувати численні інструментальні засоби для розробки та налагодження програм. При цьому на долю JavaScript залишаються незначні по обєму фрагменти коду, які динамічно змінють вміст сторінки, що можуть бути написані та налагоджені без застосування спеціальних інструментальних засобів розробки та налагодження програм.
Запропонований підхід реалізований у вигляді набору базових засобів для написання Ajax-додатків.
Метою дипломного проекту є розглянути технічне створення Web- додатків за допомогою Ajax.
Предметом дослідження є додаток.
Для реалізації поставленої мети слід вирішити наступні завдання:
Ajax група методів Web-розробки, що використовуються для створення Web-програм з багатими можливостями та мережевою взаємодією, що базується на «фоновому» обміні даними браузера з Web-сервером. В результаті сторінка не перезавантажується повністю і Web-програма стає швидкою та зручною.
Ajax це не самостійна технологія, а скоріше концепція використання декількох суміжних технологій. Ajax базується на двох основних принципах: використання технології взаємодії із сервером за допомогою JavaScript обєкта XMLHttpRequest без перезавантаження усієї сторінки використання для динамічної зміни вмісту сторінки та реагування на дії користувача
Для передачі даних від сервера до клієнта використовуються формати XML або JSON. Класична модель web-програм повязана не лише з використанням базових web-технологій, а і з специфічним способом роботи з web-програмою, при якому web-браузер є лише низькорівневим терміналом. Він не має інформації про те, який етап роботи виконується користувачем. Він лише отримує готову сторінку в форматі HTML і відображає її користувачу.
У web-програмах, побудованих за допомогою технології Ajax, частина функціональних можливостей переноситься з сервера на клієнт. На деякі дії користувача така web-програма може реагувати самостійно. Якщо наявних можливостей не вистачає для виконання ініційованих користувачем дій то відбувається взаємодія із сервером, при цьому користувач може виконувати інші дії. Оскільки HTML документ присутній на стороні клієнта протягом всьго часу роботи з web-програмою, то він здатний зберігати всю інформацію про її стан.
Технологія динамічного завантаження вмісту існувала і раніше за допомогою атрибуту src можна було завантажити зовнішній сценарій JavaScript, який змінить поточну сторінку. Але цей метод не є дуже вдалим через обмеження атрибуту src та додатковому навантаженні на сервер, бо він має виконати додаткові дії для генерації спеціального сценарію JavaScript, що містить інструкцію, як модифікувати поточну сторінку в нову.
Засоби, що використовуються в рамках технології Ajax не єдиний спосіб забезпечити асинхронний обмін даними з сервером. Наприклад Macromedia Flash (починаючи з 4 версії) може завантажувати дані в форматі XML або CSV з серверу без перезавантаження сторінки. Але цю технологію не можна використовувати для створення багатих web-програм бо вона в основному використовується для роботи з мультимедійними даними і малопридатна для динамічної зміни вмісту сторінки.
Пізніше Microsoft створила обєкт XMLHttpRequest в Internet Explorer 5, що і став основою Ajax.
Інтерактивність веб-інтерфейсу займає ключову позицію в проектуванні веб ресурсу. Інтерактивність зумовлюється використанням мультимедійних форм, сучасними шаблонами проектування, принципом спілкування користувача із інтерфейсом сайту. Наприклад, користувач зробив запит на сервер з певними даними і має очікувати результати. На сайтах з класичними методами перед користувачем білий екран доти, доки не завантажиться вся сторінка. За звичай, в класичних сайт користувач після заповнення, наприклад, форми, мав наживати кнопку «Підтвердити» і очікувати на відповідь сервера, яка в свою чергу може містити попередження. Часто користувач змушений наново заповнювати все. Ajax дозволяє так спроектувати сторінку, що запит робитиметься після будь-якій зміни зі сторони користувача. А також технологія Ajax дозволяє залишатись користувачеві на сайті, і можна розробити заставку, яка буде зявлятись під час завантаження даних. У Додатках А є приклад, які можна запрограмовувати заставки.
Якщо в класичних моделях реалізації взаємодії клієнт-сервер, якщо користувач хоче зробити запит на сервер, то для цього в обєкті-запиту передавалась вся сторінка, яка після оновлення завантажувалась в браузері, що вимагало збільшення використаного трафіку. Тепер «витрати» трафіку можна зменшити, завантажуючи тільки ту частину, яка змінилась. Це можна реалізовується завдяки тому, що створюється HTTP запити, які відсилаються на сервер у фоновому режимі і модифікуються тільки окремі частини web-сторінки за допомогою JavaScript, коли приходить відповідь з серверу.
Ми можемо створювати нові та більш цікаві сайти для користувачів. Йдеться про функціонал для користувачів сайту. Сучасні веб сайти дають безліч можливостей для функцій якими користувач може користуватись безпосередньо не використовуючи перевантаження веб сторінки як при класичній моделі проектування веб ресурсу. Користувачі зможуть працювати з мультимедійними сайтами, здійснювати різноманітні операції із своїми завантаженими обєктами у інтерфейсі веб-ресурсу, все це будує принципово новий рівень якості веб сайтів і динаміки поведінки інтерфейсу, яки створюється для взаємодії користувача із веб сайтом.
Наприклад, створюється форма, в якій потрібно ввести дані користувачем. Для полегшення задачі можна запрограмувати скрипт, який миттєво реагує, посилаючи запит на сервер і повертає підказки. Підказка показує тільки ті, дати, які можна обрати, тобто з урахуванням реальної дати, місяця, року. Наприклад, сьогодні 25 травня, і дату народження в майбутньому обрати неможна.
При використанні технології AJAX, зменшується навантаження на веб сервер. Це зумовлюється тим, що непотрібно кожного разу оновлювати веб сторінку користувача коли відбулась передача даних на сервер. Зменшення трафіку зумовлює зменшення навантаження на веб сервер, тобто відбувається оновлення лише певного блоку на веб сторінці,який потрібний користувачу, а не сієї сторінки як при класичній моделі. Користувач отримує дані які йому потрібні без оновлення всіє сторінки а лише певної частини.
Відсутня інтеграція із стандартними інструментами браузера не працює кнопка «Назад», сторінку, згенеровану за допомогою Ajax не можна додати в закладки.
Проблема з індексуванням сайту пошуковими роботами у них відсутня підтримка JavaScript.
Використання JavaScript та DOM, що мають різну реалізацію в різних браузерах та навіть різних версіях браузерів.
JavaScript назва реалізація мови програмування ECMAScript. Найпоширеніше і найвідоміше застосування мови написання сценаріїв для Web-сторінок, але вона також використовується для впровадження сценаріїв керування об'єктами вбудованими в інші програми.
JavaScript за назвою дуже схожа на мову Java. Але це зовсім різні мови з різними сферами застосування. Права на назву JavaScript належать Sun Microsystems (розробник Java) але JavaScript розробляла зовсім інша компанія Netscape для власного браузера Netscape Communications.
Зараз JavaScript підтримують всі основні двигунці браузерів Trident (Internet Explorer), Presto (Opera), Gecko (Firefox, Mozilla, Netscape) та KHTML/WebKit (Konqueror, Safari).
JavaScript має низку властивостей об'єктно-орієнтованих мов, але завдяки концепції прототипів підтримка об'єктів в ній відрізняється від традиційних мов ООП. JavaScript має ряд властивостей, спільних з функціональними мовами, що додає мові додаткову гнучкість.
JavaScript має подібний синтаксис, але має з нею відмінності:
Одна з популярних технологій, що дозволила зробити сторінки динамічнішими і забезпечити нові можливості це динамічне завантаження і вставка даних в документ, що отримала назву AJAX.
При використанні в рамках технології DHTML JavaScript код включається в HTML-код сторінки і виконується інтерпретатором, вбудованим в браузер. Код JavaScript вставляється в теги <script></script> з обов'язковим за специфікацією HTML 4.01 атрибутом type="text/javascript", хоча в більшості браузерів мова сценаріїв по замовчуванюю саме JavaScript.
При розробці великих і нетривіальних Web-програм з використанням JavaScript дуже важлива наявність зручних та досконалих інструментів відладки. Оскільки браузери мають різні двигунці, які по різному інтерпретують JavaScript (та обєктну модель документу), то потрібно мати налагоджувач для кожного з основних двигунців.
Проблема з налагодженням JavaScript сценаріїв є найбільшим недоліком цієї мови. Спроба стандартизації у вигляді ECMAScript не досягла успіху кожен двигунець має особливості і, фактично, доводиться писати код для різних двигунців одночасно.
Також JavaScipt має обмеження часу на завершення свого виконання (це може бути як фіксоване число у випадку браузерів з двигунцем Gecko або інше обмеження, наприклад максимальне число елементарних операція у випадку браузерів з двигунцем Trident).
В цьому механізмі доступу зєднуючою ланкою між сервером та сторінкою є JavaScript-обєкт XMLHttpRequest. В різних двигунцях та їх версіях він реалізований по різному тому потрібно використовувати спеціальну функцію, яка враховує всі можливі варіанти.
HTML
сторінка
Обєкт
XMLHttpRequest
PHP
скрипт
При певних діях користувача (наприклад при активізації кнопки в складі користувацького інтерфейсу) браузер генерує запит і за допомогою JavaScript-обєкта XMLHttpRequest відправляє його на сервер. При цьому метод доступу може бути DHTML. Користувацький інтерфейс під час відправлення запиту і отримання відповіді не блокується і користувач може продовжувати виконувати певні дії, результатом яких можуть бути нові запити до сервера Ajax підтримує декілька одночасних взаємодій сторінки з сервером. Користувацький інтерфейс виглядає і реагує на дії користувача як звичайна програма, що полегшує роботу з ним.
Сервер оброблює запит і відправляє браузеру відповідь у форматі XML, JSON або подібних. При цьому не відбувається генерації усієї сторінки (як у класичному механізмі доступу), тому час обробки запиту скорочується. Це дозволяє зменшити навантаження на сервер або збільшити кількість клієнтів, що можуть працювати одночасно.
Браузер, за допомогою JavaScript, обробляє отриману відповідь і модифікує сторінку без перезавантаження за допомогою DHTML.
Переваги цього механізму доступу сторінка модифікується без повного перезавантаження, збільшується швидкість роботи з Web-програмою, зменшується трафік між сервером та клієнтом, метод роботи користувача з web-програмою є зручним.
Недоліки методу:
Для подолання вказаних недоліків потрібно:
У результаті загальної оцінки сучасного стану щодо публікацій по темі дипломного проекту, усі веб ресурси надали актуальну і достовірну інформацію сьогодення, зокрема інформація постійно оновлювалась останніми роками,що свідчить про активне використання ресурсів по даній темі дипломного проекту та актуальність цієї теми. Для оцінки актуальності даної теми було здійснено пошук веб ресурсів які активно впроваджують та використовують Ajax підхід у своєму проектуванні. Головною проблемою мого дипломного проекту є Ajax технологія яку я впроваджував у розробку свого власного веб сайту, тому для порівняння власного проектування я розглянув готові рішення які повністю підтримуються Ajax підхід.
Для того щоб краще зрозуміти суть мого дипломного проектування розглянемо головне визначення технології Ajax із інформаційного ресурсу Wikipedia. АJAX (Asynchronous JavaScript And XML) підхід до побудови користувацьких інтерфейсів веб-застосунків, за яких веб-сторінка, не перезавантажуючись, у фоновому режимі надсилає запити на сервер і сама звідти довантажує потрібні користувачу дані. AJAX один з компонентів концепції DHTML.
Про AJAX заговорили після появи в лютому 2005-го року статті Джесі Джеймса Гарретта (Jesse James Garrett) «Новий підхід до веб-застосунків». AJAX не самостійна технологія. Отже як бачимо Ajax досить широко застосовується у сфері програмування веб ресурсів і це свідчить про значне вдосконалення а сама концепція використання є дуже простою з точки зору програміста.
AJAX це несамостійна технологія, а швидше концепція використання декількох суміжних технологій. AJAX підхід до розробки призначених для користувача інтерфейсів комбінує кілька основних методів і прийомів:
Використання цих підходів дозволяє створювати набагато зручніші веб-інтерфейси користувача на тих сторінках сайтів, де необхідна активна взаємодія з користувачем. AJAX асинхронний, тому користувач може переглядати далі контент сайту, поки сервер все ще обробляє запит. Браузер не перезавантажує web-сторінку і дані посилаються на сервер без візуального підтвердження (крім випадків, коли ми самі захочемо показати процес зєднання з сервером). Використання AJAX стало найпопулярніше після того, як компанія Google почала активно використовувати його при створенні своїх сайтів, таких як Gmail, Google Maps і Google Suggest. Створення цих сайтів підтвердило ефективність використання даного підходу.
Порівняння класичного підходу та AJAX
Класична модель веб-застосування:
Модель AJAX
Технологію Ajax широко використовують провідні Інтернет гіганти такі як Google, Wikipedia, yahoo, meta. Це свідчить про те що інноваційний підхід до створення потужних Інтернет проектів не обходиться без використання технології Ajax. Нижче наведені основні проекти провідних компаній,що активно розвивають та використовують Ajax підхід.
Google Suggest (англ. suggest пропоную) це сучасний сервіс пошукового запиту який автозаповнює рядок запиту на основі декількох введених символів. Коли користувач для прикладу вводить декілька букв у рядковому запиті Google тоді автоматично за допомогою фонових запитів із бази даних підставляється готове слово яке відповідає умові запиту користувача. Даний сервіс повністю працює на основі технології AJAX.
Protopage.
Хороший приклад сайту оновлення новин,що активно використовує Ajax технологію для динамічного інтерфейсу користувача є проект Protopage. Даний сайт створений як rss система оновлення,тобто користувач у фоновому режимі без перевантаження веб сторінки бачить список свіжих новин для свого профілю.
eyeOS веб-десктоп з відкритим кодом що будується на концепції хмарних обчислень що дозволяє співпрацю та зв'язок між користувачами. Більша частина проекту написана на PHP, XML, та JavaScript. Працює як платформа для веб-застосунків написаних з використанням eyeOS Toolkit. Включає в себе середовище робочого стола з 67 застосунками та системними утилітами. Доступна для портативних пристроїв через мобільний фронт-енд. Для розробників eyeOS надає eyeOS Toolkit набір бібліотек для розробки застосунків для цієї ОС. Використовуючи інтегроване систему eyeSoft, що базується на Portage, кожен може створити власний репозиторій для eyeOS та поширювати застосунки через нього. Кожна частина робочого столу це окремий застосунок, що активно використовує технологію AJAX для відправки команд користувача в форматі XML на сервер. На сервері eyeOS теж використовує XML для зберігання інформації. Кожному користувачу на сервері виділяється окремий XML файл. Отже як бачимо даний веб за стосунок повністю побудований на основі технології Ajax.
BIM.
Потужний та сучасний он-лайн генератор інформації. Використовується як генератор новин для сайту. Активно використовує технологію фонового за стосунку Ajax. Веб-сайт сервісу.
Браузер по Wikipedia.org
Веб-інформаційний ресурс працює повністю із підтримкою Ajax системи обміну даних, що свідчить про потужний інтерфейс для користувачів веб сайту. Веб-сайт із вбудованим у нього браузером працює у фоновому режимі без перевантаження веб сторінки. Отже вся оболонка навігації Wikipedia працює на основі технології Ajax.
На сьогоднішній день сучасні та потужні веб сервіси у мережі Інтернет проектуються із використанням останніх тенденцій інформаційних технології у сфері веб програмування. Технологія що дозволяє користувачам користуватись надсучасним і зручним інтерфейсом взаємодії це AJAX. За допомогою цієї концепції вдалось значно просунути практично до інноваційного рівня веб ресурси та проектування інформаційних систем.
Останнім часом основною тенденцією при розробці Web-додатків є використання різноманітних програмних бібліотек, які прискорюють процес створення кінцевого продукту, а також надають можливості систематизувати програмний код за рахунок застосування шаблонів проектування, зокрема, «Модель-Подання-Контролер» (MVC). Існує велика кількість подібних бібліотек, найбільш універсальні та потужні часто називають каркасами розробки або фреймворками (frameworks). Серед них для мови PHP слід відзначити такі, як Zend Framework, Symfony, Cake PHP, CodeIgniter та інші. Деякі з них, наприклад Zend Framework або Symfony, надають максимальні 3 можливості порівняно з іншими, але є складними у вивченні та мають меншу швидкодію; інші простіші у застосуванні, але надають менший набір функціональних можливостей. Узагальнена характеристика таких бібліотек наведена нижче.
1. Орієнтація на сучасні обєктно-орієнтовані підходи організації Web-додатків, що надає змогу будувати масштабовані, контрольовані та надійні проекти.
2. Використання шаблону MVC, який надає можливості розділити програмний код взаємодії з даними (model), візуальне подання у вигляді шаблонів сторінок (view), та узагальнений алгоритм (бізнес-логіку) обробки запиту користувача (controller), який безпосередньо використовує моделі та подання проекту.
3. Наявність уніфікованого програмного інтерфейсу до реляційних баз даних, що надає можливість використовувати різні СУБД єдиним способом.
4. Наявність мови шаблонів, що надає можливості максимально розділити HTML-шаблон сторінки від даних, які наповнюють її інформаційним змістом.
5. Використання вбудованого механізму кешування, що забезпечує прискорення завантаження вже переглянутих сторінок.
6. Використання засобів валідації даних, переданих від користувача з HTML-форм.
7. Застосування механізму зручної для користувача адресації сторінок Web-додатку з можливістю відсікання небажаних або хибних адресів.
8. Автоматичне шифрування Cookie-змінних, які надсилаються з сервера, а також управління сесіями.
9. Наявність великої кількості бібліотечних функцій, які автоматизують найбільш вживані операції з даними Web-додатку.
В CodeIgniter (www.codeigniter.com) реалізовано більшість можливостей, наведених вище, але, на відміну від інших каркасів, він має ряд переваг, які полягають у високій швидкості генерування серверної відповіді, простоті розробки, конфігурування та ініціалізації додатку, а також у наявності великої кількості бібліотечних функцій.
Схема виконання додатку з використанням CodeIgniter
Виконання програми засобами CodeIgniter відбувається через єдиний інтерфейс програмний файл index.php, який виконує ініціалізацію та застосовує налаштування проекту з конфігураційних файлів, перетворює вхідні дані від користувача на внутрішні структури даних CodeIgniter та передає управління засобам маршрутизації. Останній модуль аналізує вхідні дані HTTP-запиту, а саме: метод HTTP, URL-адресу та заголовки. Якщо сторінка з такими ж вхідними даними вже існує у внутрішньому кеші CodeIgniter, то її вміст повертається без подальшої обробки безпосередньо користувачеві (через Web-сервер). В іншому випадку наступним кроком є фільтрація вхідних даних з метою уникнення несанкціонованих дій з боку можливого зловмисника: екранування даних, вилучення небажаних тегів тощо. Після цього в залежності від URL запит надходить до визначеного контролера додатку. Контролер, в свою чергу, обмінюється даними з моделями (виконує запити до бази даних, файлів тощо), за необхідності викликає бібліотечні та допоміжні функції і, наприкінці, передає дані у подання, де формується кінцева HTML-сторінка, яка передається користувачеві. Графічно дану схему ілюструє (Рисунок 2.1), на якому напівжирним шрифтом виділено ті елементи структури проекту, які кодуються програмістом, при цьому решта вбудовані модулі CodeIgniter.
Рисунок 2.1- Схема виконання програми Codeigniter
Комплект файлів Codeigniter обєднується в групи ієрархічно поєднаних каталогів в залежності від функціонального призначення. Головним каталогом додатку є Application. Ядро системи відповідно розташоване у System (рисунок 2.2).
Рисунок 2.2- Файлова структура проекту Codeigniter
Файл іndex.php Модуль маршрутизації Модуль кешування Модуль безпеки вхідних даних Подання додатку Контро- лер додатку Моделі додатку Бібліотеки Допом. функції Розширення HTTP-запит HTTP-відповідь (рисунок 2.1) Схема виконання програми CodeIgniter
Файлова структура проекту CodeIgniter
Комплект файлів CodeIgniter обєднується в групи ієрархічно поєднаних каталогів в залежності від функціонального призначення. Головним каталогом додатку є Application. Ядро системи відповідно розташоване у System (рисунок 2.2).
Конфігураційні файли проекту Контролери проекту Моделі проекту Подання проекту Файли Web-додатку Налаштування зєднань з БД Налаштування маршрутизації URL Загальні параметри конфігурації Власні бібліотеки розробника Файли перекладу текстових фрагментів Файли ядра CodeIgniter.
З рисунока 2.2 видно, що різноманітні налаштування проекту групуються в окремі файли php, зокрема, налаштування бази даних зберігаються у database.php, маршрутизація URL у routes.php тощо. Це дозволяє змінювати різноманітні лаштунки безпосередньо в процесі функціонування Web-додатку, не змінюючи склад файлової системи та не запускаючи додаткових командних файлів, що часто буває критичним при використанні орендованого дискового простору на сервері для Web-проектів. Крім того, на рисуноку 2.2 напівжирним шрифтом виділено блоки проекту, які реалізовує безпосередньо програміст. Найголовнішими з них є:
Контролери
Вибір контролера, якому передається управління при обробці запиту користувача, визначається URL-адресою запиту. Типова структура URL-адреси має наступний вигляд (рисунок 2.3):
Рисунок 2.3- Формат URL-адреси, що застосовується в CodeIgniter
URL-адреса має фіксований формат, як показано на рисуноку 2.3. Першим параметром є назва контролера проекту, якому передається управління, далі метод у класі контролера, і остання частина параметри, які отримає метод контролера.
Приклади:
Слід зауважити, що на рисуноку 2.3 після назви сайту не вказано index.php. Як правило, на практиці позбуваються використання index.php засобами Web-сервера. Наприклад, для Web-сервера Apache необхідно в кореневому каталозі проекту (див. рисунок.2.2) створити файл .htaccess і вписати в цей файл наступні інструкції:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
При цьому завдяки використанню модулю mod_rewrite встановлюються правила обробки запиту перед передачею його Web-додатку (тут CodeIgniter). А саме: RewriteCond вказує, які файли пропускати без обробки (index.php, images, robots.txt), а RewriteRule задає правило, що будь-який запит, крім вказаного в RewriteCond необхідно модифікувати шляхом додавання перед ним рядку index.php. Таким чином, CodeIgniter розпізнає вірний формат URL.
Моделі
Моделі призначені для обєднання функцій взаємодії із зовнішніми даними (файлами, базами даних) у єдиний клас. Для використання моделі необхідно створити файл PHP визначеної структури (рисунок 2.4) в каталозі /application/models. При чому назви файлу та класу мають співпадати, а назва класу записується з великої літери. Структура класу включає назву класу, ознаку успадкування від універсальної моделі (CI_Model), а також конструктор __constructor(), в якому викликається код батьківського класу. Завантаження моделі з контролера відбувається за допомогою команди:
$this->load->model('Testmodel'); де Testmodel назва класу моделі.
Лістинг 2.1 - Приклад коду файлу моделі проекту
<?php
class Testmodel extends CI_Model {
function__construct()
{
// Call the Model constructor
parent::__construct();
}
function get_data($id)
{
$sql = "SELECT fieldl FROM tablel WHERE id = ?"; $q = $this->db->query($sql, array(id));
$row = $q->row();
return $row->field1;
}
}
В подальшому виклик методів класу моделі відбувається наступним чином:
$this->Testmodel->get_data(10);, тобто модель стає обєктом базового класу CodeIgniter. Для автоматичного завантаження моделі при старті проекту необхідно у конфігураційному файлі /application/config/autoload.php вписати назву моделі в відповідний масив:
$autoload['model'] = array(„testmodel‟);
Подання
Подання у CodeIgniter це повна HTML-сторінка або її фрагмент (наприклад: заголовок, меню, основний вміст, нижня частина). Основне призначення подання відділити логіку отримання даних від візуального вигляду. Як правило, подання містить мінімум PHP-коду: лише той, що призначено для виведення даних (echo, print тощо). Крім того, допустимим є використання циклів PHP (for, foreach тощо) для виведення даних, що мають вигляд списків, дерев та інших складних структур.
Практичне застосування контролера, моделі та подання наведено нижче.
Ajax (асинхронний Javascript) це підхід до створення інтерактивних Web-додатків, згідно з яким обмін даними між Web-браузером та Web-сервером відбувається у фоновому режимі, що надає можливості оновлювати лише частину Web-сторінки. Такий підхід зменшує мережний трафік та дозволяє будувати додатки, наближені до «віконних», які є більш звичними для користувача. Головним чином підхід базується на використанні засобів мови JavaScript. При цьому з серверного боку жодних змін виконувати не потрібно у порівнянні з традиційним підходом. На клієнті за Ajax відповідає обєкт Javascript XMLHttpRequest. Передача даних за допомогою цього обєкта може відбуватись як у синхронному, так і у асинхронному режимі. Складність безпосереднього використання цього обєкта зумовлена неповною сумісністю реалізації різними браузерами. Тому, як правило, використовують крос-платформні бібліотеки, які уніфікують доступ до даного обєкта. Однією з таких бібліотек є JQuery. Серед її особливостей можна відзначити широкий спектр можливостей щодо пошуку та модифікації елементів Web-сторінки із застосуванням синтаксису мов XPath та CSS, наявність засобів управління подіями елементів сторінки, візуальні ефекти тощо. З огляду на задачі Ajax JQuery пропонує наступні можливості:
1. Завантаження даних з сервера безпосередньо у елемент сторінки (наприклад, у параграф).
2. Завантаження та виконання програмного коду мовою Javascript.
3. Завантаження даних із сервера у форматі JSON, що спрощує перетворення даних у обєкти Javascript.
4. Відправлення даних на сервер.
5. Обробка помилок, що виникли при передачі даних.
6. Серіалізація даних HTML-форми для подальшої передачі на сервер.
Інсталяційний пакет CodeIgniter містить усі необхідні файли проекту, які необхідно розгорнути у кореневий каталог htdocs Web-сервера Apache, попередньо очистивши його вміст. Файлова структура при цьому буде мати вигляд як на рисунку 2.2. За замовчуванням каталоги controllers та views містять тестові файли controllers.php та welcome.php відповідно. Ці файли можна використовувати як зразок для створення власного проекту. Розглянемо детальніше хід виконання програми на прикладі даного зразка. Надрукувавши в браузері рядок запиту http://localhost/index.php/ , на екрані отримаємо результат, подібний зображеному на рисуноку 3.1.
Рисунок 3.1- Результат обробки стартової сторінки проекту-зразка
Алгоритм обробки полягає у наступному. Web-сервер, отримавши запит, передає його на виконання файлу index.php, який знаходиться безпосередньо в htdocs. Оскільки в URL не міститься жодного уточнення після index.php, то застосовуються налаштування за умовчанням, вказані в конфігураційному файлі routes.php:
$route['default_controller'] = 'welcome';
Завдяки цьому, управління передається у контролер Welcome з файлу application/controllers/welcome.php (за домовленістю назва файлу і класу має співпадати, але назва класу записується з великої літери). Код файлу welcome.php представлено на лістингу 3.1:
Лістинг 3.1 - Приклад коду файлу-контролера welcome.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller {
function__construct()
{
parent::__construct();
}
function index()
{
$this->load->view('welcome_message');
}
}
Основу файлу welcome.php складає клас Welcome, успадкований від CI_Controller базового класу для всіх контролерів проекту. Суттєвим методом в ньому є index(), оскільки саме цей метод викликається за замовчуванням у випадку, коли URL не містить додаткових елементів, крім …/index.php. В цьому методі записано код:
$this->load->view('welcome_message');
Розглянемо приклад аутентифікації користувача з використанням його імя та паролю, які зберігаються у базі даних. Узагальнений алгоритм розробки даної програми полягає у наступному.
1. Підготовка бази даних: створення таблиці, занесення даних, налаштування конфігурації проекту.
2. Реалізація контролеру проекту з функціями виведення форми уведення даних про користувача та виведення результату аутентифікації.
3. Створення моделі з функцією перевірки імені/паролю користувача.
4. Створення подання сторінки форми уведення даних про користувача та сторінки результату аутентифікації.
Підготовка бази даних
Підготовка структур бази даних складається зі створення бази даних (команда create database userdb), вибору бази даних (команда use userdb), створення таблиці users із полями id, uname та upwd), а також внесення рядка даних у таблицю (команда insert into). Приклад виконання наведених команд зображено на лістингу 3.2.
Лістинг 3.2 - Приклад коду файлу протоколу команд підготовки бази даних
C:\xampp\mysql\bin>mysql -u root -p Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Vour MySQL connection id is 2
Server version: 5.0.51b-community-log MySQL Community Edition (GPL)
Type 'help;' or \h' for help. Type '\c' to clear the buffer.
mysql> create database userdb;
Query OK, 1 row affected (0.05 sec)
mysql> use userdb;
Database changed
mysql> create table users (id integer auto_increment, uname varchar(20), upwd ua rchar(20), primary key (id));
Query OK, O rows affected (0.01 sec)
mysql>insert into users(uname,upwd) values ('userl', pwd1');
Query OK, 1 row affected (0.03 sec)
mysql> select * from users;
| id | uname | upwd |
| 1 | userl | pwd1 |
1 row in set (0.0O sec)
mysql>
Реалізація контролера проекту
Як відзначалось вище, контролер виконує функцію управління ходом обробки запиту від користувача. В прикладі необхідно реалізувати два метода класу контролера: виведення форми уведення імя користувача та його паролю, а також вікна результату аутентифікації. Програмний код контролера показано на лістингу 3.4. Клас контролера містить два відповідних методи: index() та login_result(). Перший метод викликає подання login для виведення форми. Другий метод більш складний: відбувається завантаження обєкта взаємодії з базою даних та обєкта моделі usermodel. Після цього викликається у обєкті моделі метод login, який порівнює передані у якості параметрів дані про користувача з вмістом бази даних. Якщо порівняння виконано успішно, формується масив $data для передачі у подання та викликається обробка подання afterloginOK. Інакше у масив $data записується поточний час і імя користувача.
Лістинг 3.3 - Приклад коду контролера User
<? php if (!defined(•BASEPATH')) exit('No direct script access allowed)
class User extends CI_Controller {
function__construct()
{
parent:: construct();
}
function index()
{
$this->load->view('login');
}
function login_result()
{
$this->load->database();
$this->load->model('usernodel');
if ($this->usernodel->login($this->input->post("name"), $this->input->post("pwd")))
{
$data[unane']=$this->input->post("nane");
$this->load->view('afterloginOK',$data);
}
else
{
$data['unane']=$this->input->post("nane"); $data['dt']=date('H:i:s');
$this->load->view ('afterloginBAD',$data);
}
}
}
Створення моделі проекту
Моделі традиційно відповідають за взаємодію із базою даних, тому відповідний клас прикладу містить функцію порівняння даних про користувача із вмістом бази даних. Слід зауважити, що CodeIgniter виконує підєднання автоматично під час завантаження обєкта database, тому код класу моделі містить лише команди доступу до таблиць бази даних (див. лістингу 3.4).
Лістинг 3.4 - Приклад коду реалізації класу моделі проекта
<?php
class Usernodel extends CI_Model {
function__construct()
{
// Call the Model constructor parent::construct();
}
function login($unane, $upud)
{
$sql - "SELECT count(*) cnt FROM users WHERE unane - ? AND upwd - ? ";
$q - $this->db->query($sql, array($unane, $upud));
$row - $q->row();
return ($row->cnt > 0);
}
}
Зазначимо, що оскільки CodeIgniter є обєктно-орієнтованою бібліотекою, то результати, що повертаються з бази даних, мають вигляд обєктів класу запиту (у прикладі: $row->cnt), де члени класу відповідають полям, визначеним у запиті select.
Створення подання даних
Проект містить 3 форми: уведення даних про користувача, успішної та неуспішної аутентифікації користувача. Код відповідних файлів містить HTML-шаблон та фрагменту PHP. Вміст відповідних файлів наведено на рисунках 3.2-3.4.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<titlе>АутентиФікація</titlе>
<style>
*{font-family:Arial}
p{nargin:5px 0 0 0}
</style>
</head>
<body>
<h3>АутентиФікація</h3>
<forn action="/index.php/user/login_result" method="post">
<p> Ім'я: </p><p> <input type="text" name="name" value=""> </p>
<p> Пароль:</p><p> <input type="password" name="pud" value=""> </p>
<p><input type="submit" value="Перевірити"/>
</form>
</body>
</html>
Рисунок 3.2 - HTML-шаблон та візуальна форма сторінки уведення даних про користувача
<!DOCTVPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<titlе> </titlе>
<style>
*{font-family: Arial}
p{margin:5px 0 0 0}
</style>
</head>
<body>
<h3>АутентиФікація успішна</h3>
<p> Користувач: <?=$uname?> </p>
</body>
</html>
Рисунок 3.3 - HTML-шаблон та візуальна форма сторінки успішної аутентифікації (файл afterloginOK.php)
На рисунку 3.3 міститься фрагмент мовою PHP <?=$uname?>, яка вказує, що необхідно вставити значення змінної $uname, яка була передана з контролера ($data[„uname‟]).
<!DOCTVPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<titlе> </titlе>
<style>
*{font-family: Arial}
p{margin:5px 0 0 0}
</style>
</head>
<body>
<h3>АутентиФікацію не виконано</h3>
<р>Користувач: <?=$uname?> </р>
<р>Дата/час спроби: <?=$dt?> </р>
</body>
</html>
Рисунок 3.4 - HTML-шаблон та візуальна форма сторінки неуспішної аутентифікації (файл afterloginBAD.php)
Аналогічно файлу afterloginOK.php на рисунку 3.8 проілюстровано HTML-шаблон із фрагментами PHP виведення змінних з іменем користувача та поточного часу, значення яких встановлено у контролері додатку.
Серед застосувань бібліотеки CodeIgniter найбільш поширеним є динамічне завантаження інформації у елементи сторінки HTML. Як приклад розглянемо задачу виведення підказки в залежності від набраного користувачем тексту в поле форми (рисунок 3.5). Для реалізації даної задачі необхідно створити три файли і розмістити їх на сервері:
1. HTML-сторінка (hint.html).
2. Програма мовою Javascript із використанням CodeIgniter (hint.js).
3. Текстовий файл, який містить можливі підказки (hint.txt).
Рисунок 3.5. Результат роботи асинхронного завантаження даних у HTML-сторінку
HTML-сторінка містить код, який задає структуру документа (на лістинг 3.5):
Лістинг 3.5 - Приклад коду HTML-сторінки
<C!DOCTVPE html>
<html>
<head>
<script type^'text/jauascript" src="jquery;.js"></script>
<script type="text/jauascript" src="hint.js"></script>
<meta charset=utf-8 />
<title> Приклад Jquery Ajax</title>
<style type="text/css">
#hint {border: 1px solid black; margin:0}
#hint>diu:houer {background: ttccc}
#hint {display:none; margin-left:4px>
</style>
</head>
<body>
<form>
<diu>Mido :</diu>
<input type^'text" autoconplete="off" id="city"/>
<diu id="hint"></diu>
</form>
</body>
</html>
З лістинга 3.5 видно, що для виконання задачі включено підтримку бібліотеки CodeIgniter, а також зовнішній файл hint.js, який здійснює операції уведення-виведення. Крім того, задаються мінімально необхідні налаштування стилів (тег <style>), а також власне форма HTML із елементом city текстовим полем та контейнером div з id=”hint” для виведення підказки.
Код програмного файлу hint.js наведено на (лістингу 3.6). Особливостями роботи даної програми є використання засобів CodeIgniter для завантаження списку даних (назв міст) з сервера в асинхронному режимі (.get()).
Лістинг 3.5 - Приклад коду програми мовою Javascript
// ініціалізація поля уведення з id="city"
$().ready( function()
{
$<"itcity").keyup(show_hint).click(cl);
}
);
// сховати та очистити підказку
function cl(euent)
{
$("#hint").hide();
$("#hint").empty();
}
// показати підказку
function show_hint(euent)
{
// очистити застарілі підказки
cl(null)
// s - активний елемент зі списку підказок
s = euent.target
if ($(s).ual()=="") return;
// отримати список підказок, Math.random() - захист від кешування $.get ("hint .txt?,a+Math.random(), function (data) {
if (data==,,,,) return
var a = data.split('\n')
for (uar і in a) {
// якщо підказка підходить, додати її в список
if (а[і].indexOf($("#city").ual())>-1)
$("hint").append ("<diu>"+a[і]+a"</diu>")
}
// підготувати оброблювач onclick для кожної підказки всередені контейнера
$("#hint>diu").click(function(event){ $("#city").ual( $(euent.target).text());cl(null)})
// змінити стил підказки
$("#hint>diu").сss({"font-weight":"bold"})
// якщо є підказки, показати їх
if($("#hint>div").length>0)
$("#hint").width($("#city").width()).show();
}
}
Функція .ready() виконується в момент завантаження сторінки, функція cl() викликається, коли необхідно приховати та очистити підказку (наприклад, при виборі зі списку), а функція show_hint() виконується при натисканні користувачем клавіші клавіатури. Крім того, використовуються засоби пошуку елементів HTML із використанням синтаксису мови CSS, зокрема #hint>div означає «знайти усі елементи div всередині елемента з id=hint.
Для прикладу файл hint.txt, який містить підказки має наступний вигляд (риcунок 3.6):
Київ
Полтава
Одеса
Львів
Луганськ
Рисунок 3.6 - Вміст файлу hint.txt, який містить можливі підказки
Для спрощення реалізації у прикладі серверна частина складається лише з простого текстового файлу. В реальних умовах це може бути програма будь-якою мовою, що використовується у Web-технологіях, в тому числі з залученням різноманітних бібліотек, зокрема, CodeIgniter. При цьому обробка відбувається таким же чином, як і в традиційній моделі (з використання Ajax).
Для розробки WEB-додатку встановлюємо пакет програм Apache Server 2.4.
Ми розглянемо установку і налаштування web-сервера Apache і модуля PHP для використання на комп'ютері з операційною системою Windows 7. Сервер на домашньому (локальному) комп'ютері може бути потрібний з кількох причин ви хочете вивчити мову PHP, а перевіряти свої програми на хостингу не представляється можливим.
Для встановки PHP потрібно загрузити zip.файл з сайта http://windows.php.net.
Рисунок 4.1 Процес завантаження VC11 x86 Thread Safe
PHP - це скрипт-мова (мова сценаріїв), що вбудовується в HTML, який інтерпретується і виконується на сервері.
Основна відмінність від CGI-скриптів, написаних на інших мовах, типу Perl або C - це те, що в CGI-програмах ви самі пишете виведений HTML-код, а, використовуючи PHP - ви вбудовуєте свою програму в готову HTML-сторінку, використовуючи відкриваючий і закриває теги.
Відмінність PHP від JavaScript, полягає в тому, що PHP-скрипт виконується на сервері, а клієнту передається результат роботи, тоді як в JavaScript-код повністю передається на клієнтську машину і тільки там виконується.
Знайдуть Любителі Internet Information Server, що PHP дуже схожий на Active Server Pages (ASP), а ентузіасти Java скажуть, що PHP схожий на Java Server Pages (JSP). Всі три мови дозволяють розміщувати код, що виконується на Web-сервері, усередині HTML сторінок.
Можливості PHP
У кількох словах - на PHP можна зробити все, що можна зробити за допомогою CGI-програм. Наприклад: обробляти дані з форм, генерувати динамічні сторінки, одержувати і посилати куки (Cookies).
Додатково до всього PHP розуміє протоколи IMAP, SNMP, NNTP, POP3 і навіть HTTP, а також має можливість працювати з сокетами (розетки) і спілкуватися по інших протоколах.
Коротка історія PHP
Початком PHP можна вважати осінь 1994 року, коли Расмус Лердорф (Расмус Лердорф) вирішив розширити можливості своєї Home-сторінка (Домашньої сторінки) і написати невеликий движок для виконання найпростіших завдань. Такий движок був готовий до початку 1995 року і називався Personal Home Page Tools. Умів він не дуже багато - розумів найпростіший мова і всього кілька макросів.
До середини 1995 року з'явилася друга версія, яка називалася PHP / FI Version 2 Приставка FI -. Приєдналася з іншого пакета Расмуса, що вмів обробляти форми (форма Interpritator). PHP / FI компілювався всередину Apache і використовував стандартний API Apache. PHP скрипти виявилися швидше аналогічних CGI - скриптів, так як серверу не було необхідності породжувати новий процес. Мова PHP за можливостями наблизився до Perl, самому популярному мови для написання CGI-програм. Була додана підтримка багатьох відомих баз даних (наприклад, MySQL і Oracle). Інтерфейс до GD - бібліотеці, дозволяв генерувати картинки на льоту. З цього моменту почалося широке поширення PHP / FI.
Чому потрібно вибирати PHP
Розробникам веб-додатків немає необхідності говорити, що веб-сторінки - це не тільки текст і картинки. Гідний уваги сайт повинен підтримувати деякий рівень інтерактивності з користувачем: пошук інформації, продаж продуктів, конференції тощо Традиційно все це реалізувалося CGI-скриптами, написаними на Perl. Але CGI-скрипти дуже погано масштабуються. Кожен новий виклик CGI, вимагає від ядра породження нового процесу, а це займає процесорний час і витрачає оперативну пам'ять. PHP пропонує інший варіант - він працює як частина Web-сервера, і цим самим схожий на ASP від Microsoft.
Синтаксис PHP дуже схожий на синтаксис C або Perl. Люди, знайомі з програмуванням, дуже швидко зможуть почати писати програми на PHP. У цій мові немає строгої типізації даних і немає необхідності в діях по виділенню / звільненню пам'яті.
Програми, написані на PHP, достатньо легкочітаеми. Написаний PHP - код легко зорово прочитати і зрозуміти, на відміну від Perl-програм.
Недоліки PHP
PHP є інтерпретується мовою, і, внаслідок цього, не може зрівнятися за швидкістю з компільовані С. Однак при написанні невеликих програм, що, загалом-то, властиво проектам на PHP, коли весь проект складається з багатьох невеликих сторінок з кодом, набирають чинності накладні витрати на завантаження в пам'ять і виклик CGI-програми, написаної на С.
Не така велика база готових модулів, як, наприклад, СPAN у Perl. З цим нічого не можна вдіяти - це справа часу. У PHP 4 розробники передбачили спеціальний репозиторій PEAR, аналогічний CPAN, і я думаю, дуже скоро буде написано достатня кількість модулів для його наповнення.
Потім завантажуємо Apache 2.4 із сайта apachelounge.com/download.
Рисунок 4.2 Процес завантаження Apache 2.4
Apache-сервер - це веб-сервер з відкритим вихідним кодом. Основними достоїнствами Apache вважаються надійність і гнучкість конфігурації. Він дозволяє підключати зовнішні модулі для надання даних, використовувати СУБД для аутентифікації користувачів, модифікувати повідомлення про помилки і т.д. Найбільш часто використовується в UNIX - подібних ОС.
Сервер був написаний на початку 1995 року і вважається, що його ім'я сходить до шуточному назвою "плямистий" (англ. "заплаточний"), так як він усував помилки популярного тоді сервера Всесвітньої павутини NCSA HTTPd 1.3 Надалі, з версії 2. Х сервер був переписаний заново і тепер не містить коду NCSA, але ім'я залишилося. На даний момент розробка ведеться в гілці 2.2, а у версіях 1.3 і 2.0 виробляються лише виправлення помилок безпеки.
Веб-сервер Apache розробляється і підтримується відкритим співтовариством розробників під егідою Apache Software Foundation і включений в багато програмні продукти, серед яких СУБД Oracle і IBM WebSphereIIS (Internet Information Services, до версії 5.0 - Internet Information Server) - це набір серверів для декількох служб Інтернету від компанії Майкрософт. IIS поширюється з операційними системами сімейства Windows NT. Основним компонентом IIS є веб-сервер, який дозволяє розміщувати в Інтернеті сайти Всесвітньої павутини. Цей веб-сервер підтримує протоколи HTTP і HTTPS.
Крім того, IIS містить служби, необхідні для надання доступу до файлів по протоколу FTP, для відправки електронної пошти по протоколу SMTP, а також для надання доступу до груп новин по протоколу NNTP.
Проксі-сервер - служба в комп'ютерних мережах, що дозволяє клієнтам виконувати непрямі запити до інших мережних служб. Спочатку клієнт підключається до проксі-сервера і запитує який-небудь ресурс (наприклад, файл), розташований на іншому сервері. Потім проксі-сервер або підключається до вказаного серверу і отримує ресурс у нього, або повертає ресурс з власного кешу (у випадках, якщо проксі має свій кеш). У деяких випадках запит клієнта або відповідь сервера може бути змінений проксі-сервером в певних цілях.
Джерела трафіку - це блоки IP адрес, з яких може приходити трафік в Вашу мережу. Джерела трафіку утворюють ієрархічну систему і характеризуються IP адресами та масками. Верхній рівень ієрархії - це "весь Інтернет". Враховується трафік шляхом перехоплення пакетів на всіх своїх мережевих інтерфейсах - реальних і логічних. Це дає інформацію по споживанню у вигляді IP-адрес, портів і обсягів даних.
Для того щоб Apache 2.4 працював як сервер, тому потрібно завантажити: Visual C++ Redistributable for Visual Studio 2012 : VC11 vcredist_x64/86.exe.
Рисунок 4.2- 4.3 Завантаження Visual C++ Redistributable for Visual Studio 2012
Рисунок 4.4 Завершення установки програми Visual C++ Redistributable for Visual Studio 2012
Після установки програм потрібно влучти з папки httpd-2.4.9-win32-VC11.
Рисунок 4.5 Процес
А тепер влучині папки потрібно встановити на диск С.
Рисунок 4.6 Файли, які перемістили на диск С
Потім потрібно повідомити де знаходиться PHP на компютері, відкриваєм папки conf і у httpd файл добавляю наступні три рядки.
LoadModule php5_module "C:/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "c:/php"
Рисунок 4.7 Шлях до PHP на компютері
Після того як виконали ці операцій потрібно зміти назву файла: (php.ini-develooment) на (php.ini), і таким чином ативували конфігураціїний файл PHP.
Рисунок 4.8 Зміна назви файла: (php.ini-develooment) на (php.ini)
Тепер потрібно створити службу, яка буде запускать Apache Server при запуску компютера, для цього відкриваєм командний рядок.
Рисунок 4.9 Вікриття командного рядка
Рисунок 4.10 Створення служби, яка буде запускать Apache Server при запуску
компютера
Рисунок 4.11 Дозвіл доступу в систему
Для того щоб подивитися чи установлений потрібно: (Пуск Панель управления Администрирование Службы).
Рисунок 4.12 Завешення установки Apache Server
Рисунок 4.13 Запуск Apache Server
Рисунок 4.14-4.15 Перевірка роботи Apache Server
Для того щоб перевірити працездатність PHP, потрібно створити тектовий документ змістом такой команди.
Рисунок 4.16 Створення тектового документа
Даний тектовий документ розмістити в папці (Apache 24 HTDOCS)
Рисунок 4.17 Розміщення тектового документа в папці (HTDOCS).
В CodeIgniter реалізовано більшість можливостей, наведених вище, але, на відміну від інших каркасів, він має ряд переваг, які полягають у високій швидкості генерування серверної відповіді, простоті розробки, конфігурування та ініціалізації додатку, а також у наявності великої кількості бібліотечних функцій.
Для того щоб налаштувати CodeIgniter потрібно завантажити з інтернета на сайті (www.codeigniter.com).
Рисунок 4.18 Сайт для завантаження CodeIgniter
Після завантаження треба розпакувати файл, після чого потрібно зайти вже установненнй Apache 2.4 в папку HTDOCS копірувати всі файли з файлу CodeIgniter. Розглянемо детальніше хід виконання програми на прикладі даного зразка. Надрукувавши в браузері рядок запиту http://localhost/index.php/.
Рисунок 4.19 Обробка стартової сторінки проекта
Вартість роботи штатного системного адміністратора включає оклад фахівця і додаткові витрати, які можуть включати податки, витрати, пов'язані з устаткуванням робочого місця системного адміністратора, а також інші накладні витрати.
Додаткові витрати на співробітника іноді можуть перевищувати його заробітну плату.
Розрахунок:
Оклад системного адміністратора - 2602,6 грн.
Прибутковий податок (12%) - 312,31 грн.
Пенсійний фонд (1%) - 26,03 грн.
ЗП до видачі на руки - 2264,27 грн.
Зарплата за 14 робочих днів складає: 1320,90 грн.
Амортизáція ( лат. amortisation погашення, сплата боргів) теж що і амортизаційні відрахування процес поступового перенесення вартості основних фондів на продукт, що виготовляється з їх допомогою. Для заміщення зношеної частини основних засобів виробництва підприємства роблять амортизаційні відрахування, тобто відрахування певних грошових сум відповідно до розмірів фізичного і морального зносу засобів виробництва. Амортизаційні відрахування використовуються для повного відтворювання зношених основних фондів (на реновацію), а також для їх часткового відшкодування (на капітальний ремонт і модернізацію).
До витрат на устаткування віднесемо:
Амортизацію розраховуємо за 3 групою, тобто відсоток повернення складає 25%.
С = 7425 грн. (Витрати на обладнання).
А = 7425 * 0,25 = 1856,25 грн. (Амортизація за рік роботи)
Так як робота над проектом тривала 14 робочих днів, маємо розрахувати відповідно і амортизацію:
Маємо умову:
1856,25 251(робочі дні)
х 1
Тобто за один робочий день амортизація складає 7,39 грн.
А(14 днів) = 14 * 7,39 = 103,53 грн.
Витрати на сировину і матеріали займають у собівартості промислової продукції в середньому більше 50-60 %, але мають значні відхилення залежно від галузі. Найвищі вони в галузях обробної промисловості. Економія цих витрат має вирішальне значення для зниження собівартості продукції.
Загальна сума витрат підприємства на сировину і матеріали залежить від обсягу виробництва продукції, її структури та зміни питомих затрат на окремі вироби (затрат матеріалів на одиницю продукції). Питомі матеріальні витрати на окремі вироби у свою чергу залежать від кількості (маси) витрачених матеріалів на одиницю продукції та середньої ціни одиниці матеріалів. У ході аналізу слід розрахувати вплив кожного з названих чинників на зміну суми витрат матеріалів на виробництво продукції. При цьому використовують прийом ланцюгових підстановок.
Під час роботи над проектом не було потреби використовувати додаткові кошти на сировину, так як всі додаткові програми і саме середовище розробки на даються безкоштовно. Тому Всир дорівнюють нулю.
Норма витрат - гранично допустима величина витрат на виготовлення продукції за умов конкретного виробництва з врахуванням застосування найпрогресивнішої технології та сировини вищого гатунку. 10 лютого 1998 року за наказом міністерства транспорту України про затвердження норм витрат палива і мастильних матеріалів на автомобільному транспорті було наказано затвердити норми витрат палива і мастильних матеріалів на автомобільному транспорті.
Норми витрати палива, затверджені Міністерством транспорту розробляються в лабораторних умовах експлуатації машин. В реальній роботі ці норми можуть значно відрізнятися від фактичних витрат, особливо це стосується машин, що експлуатуються на присіченій місцевості та технологічного транспорту.
До норм витрат віднесемо:
Плата за світло в місяць складає 35 грн. (31 день), тобто за день 1,13 грн. а за 14 робочих днів 15,80 грн.
Опалення розрахуємо за тим же принципом:
Місяць 235 грн. (31 день);
День 7,58 грн.;
14 днів 106,13 грн.;
Оренда 400 грн. в місяць, 14 робочих днів складає 180,64 грн.
В сумі отримуємо:
НВ = 15,80 + 106,13 + 180,64 = 303,8 грн.
Тепер додомо всі витрати і отримаємо собівартість проекту.
Ва́ртість (собівартість, англ. Cost) Вартість факторів виробництва, які необхідно витратити на виробництво продукції, та її збут.
Відображаючи рівень витрат на виробництво, собівартість комплексно характеризує ступінь використання усіх ресурсів підприємства, а значить, і рівень техніки,технології та організації виробництва. Чим краще працює підприємство, інтенсивніше використовує виробничі ресурси, успішніше удосконалює техніку, технологію і організацію виробництва, тим нижча собівартість продукції. Тому собівартість є одним з важливих показників ефективності виробництва. Собівартість продукції має тісний зв'язок з ціною. Це проявляється в тому, що собівартість слугує базою ціни товару і її нижньою межею для виробника. При обчисленні собівартості продукції важливе значення має визначення складу витрат, які в неї включаються. Як відомо, витрати підприємства відшкодовуються за рахунок двох власних джерел: собівартості і прибутку. Тому питання про склад витрат, які включаються у собівартість, є питання їх розмежування між зазначеними джерелами відшкодування. Загальний принцип цього розмежування полягає в тому, що через собівартість повинні відшкодовуватися витрати підприємства, що забезпечують просте відтворення усіх факторів виробництва; предметів, засобів праці, робочої сили і природних ресурсів. Відповідно до цього у собівартість продукції включаються витрати на:первині і вторині.
Сб = ЗП + А + Всир + НВ =1320,90 + 103,53 + 0 + 303,8 = 1728,23 грн.
З розрахунків отримуємо ціну WEB-додатка в розмірі - 1728,23 грн.
Загальні положення
1. До самостійної роботи на персональних комп'ютерах (прийом та введення інформації коректування, читання з екрану) допускаються особи віком більше 18 років, які пройшли навчання з безпечних методів виконання робіт та інструктаж на робочому місці.
2. Працюючий на компютері повинен мати не нижче І-ІІ кваліфікаційної групи з електробезпеки.
3. Компютери повинні мати передбачений заводом - виготовлювачем захист від ураження електрострумом.
4. Розташування компютера:
а) компютер встановлюють на відстані не менше 1 м від стін, між собою на відстані не менше як 1,5 м;
б) виключають можливість прямого засвічування екрану джерелом природного освітлення;
в) поверхня екрану повинна знаходитись на відстані 400-700 мм, від очей користувача;
г) висота робочої поверхні столу повинна становити 680-800 мм, ширина - не менше 500 мм;
д) стілець повинен мати висоту 280-320 мм, ширину - не менше як 380 мм;
є) повинна бути стійка підставка для ніг шириною не менше 300 мм.
5. Особам, які працюють на комп'ютерах забороняється:
6. При роботі з текстом, інформацією рекомендується працювати на світлому (білому) фоні з чорними знаками.
7. При роботі компютером можуть виникнути небезпечні та шкідливі виробничі фактори:електромагнітні поля (радіочастоти);електростатичне поле; недостатнє освітлення; психоемоційна напруга при тривалій роботі з екраном відеомонітору.
8. Особи, які працюють на компютері повинні дотримуватися наступного режиму праці:
а) стоячи або сидячи робити похитування головою ліворуч-праворуч (темп швидкий);
б) стоячи або сидячи робити нахили голови уперед-назад (темп помірний);
в) масаж лоба, злегка його погладжуючи, а також погладжуючи ділянки над бровами у напрямку до скронь;
г) стоячи або сидячи здійснюємо самомасаж шиї та потилиці,погладжуючи потилицю та шию у напрямку до торса;
Вимоги безпеки перед початком роботи
1. Перед початком роботи перевірити:
Вимоги безпеки під час роботи
Підключення компютера проводити послідовно, згідно з інструкцією по експлуатації. Не підключати та не відключати зєднувачі електроживлення при включеному компютері.Під час перерв у роботі виключити монітор компютера. Не залишати працюючий компютер без нагляду. Працювати з екранними захисними сітками та захисними екранами, які встановлюються на моніторах .
Вимоги безпеки по закінченні роботи
1. Виключити компютер в послідовності згідно з інструкцією по експлуатації.
2. Доповідати особі,яка відповідає за технічний стан компютера, про всі зауваження і несправності в роботі компютера, якщо вони риси місце.
3. Привести в порядок робоче місце, прибрати зайві предмети та сміття.
4. Покласти носії інформації до місць збереження.
Вимоги безпеки в аварійних ситуаціях
1. При виникненні ситуації (поява шумів,скрипів при роботі, запаху гару та диму), яка може привести до аварії, необхідно терміново відключити компютер від електромережі і повідомити про це особу, яка відповідає за технічний стан компютера. Самостійна ліквідація несправності забороняється.
2. При необхідності надати першу медичну допомогу потерпілим.
У ході проектування завдання розглянуто основні принципи та підходи щодо розробки автоматизації вирішення проблем поставленого завдання. Основною метою проектування було використання системного аналізу, декомпозиції проблеми, знаходження оптимальних шляхів вирішення проблеми а також використання Аjax при створені веб додатків такого типу. Судячи із кінцевого результату проектування, вирішення проблеми за темою дипломного проектування було здійснено в повному обсязі. Засвоєно принцип інтеграції технології AJAX у веб-ресурс та основні програмні реалізації роботи Аjax на стороні клієнтської машини, методи декомпозиції проблем та складних ємкісних завдань, основні підходи до побудови програмних структур мовою php, а також javascript, розглянуто сервісні функції роботи веб-браузерів в різних операційних системах для побудови кросбраузерності веб-ресурсу. Для використання бази даних освоєно синтаксис mysql та основні функціональні можливості реляційних таблиць. Для перевірки роботи системи вивчив підхід до створення тестового алгоритму для веб додатку.
В кінцевому результаті проектування було розроблено веб-додаток з використанням Аjax технології, який є повноцінною діалоговою системою спілкування для веб сайту. При використанні Аjax застосовувався javascript та програмування динамічних функцій на мові php для впровадження їх у веб-ресурс.
Існують і шляхи вдосконалення даного програмного рішення, яке запропоноване у цьому дипломному проекті. Програмний код додатку можливо модифікувати під кросбраузерний режим сумісності портативних пристроїв. Це дасть змогу працювати веб додатку у будь якому пристрої що має вбудований веб-браузер та вихід у мережу.
Дипломний проект надає можливість вивчити новітні технології програмування Інтернет сайтів та освоїти сучасні методи та підходи до проектування веб-додатків високо рівня складності.
А также другие работы, которые могут Вас заинтересовать | |||
62998. | Гра «Чарівне коло» | 1.01 MB | |
Правила гри: діти стають один за одним і рухаються по колу слухаючи вчителя який промовляє різні звуки нашої мови. Той хто помилився вибуває з гри. Правила гри: діти стають один за одним. | |||
62999. | «Динамічна геометрія» на допомогу вчителю | 216.92 KB | |
Побудуємо бісектрису отриманого кута найпростіша геометрична задача на побудову Будуємо пряму перпендикулярну до однієї з сторін кута яка проходить через деяку точку яка лежить всередині кута найпростіша задача на побудову перпендикуляра... | |||