Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ-4 Ялалов.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

2.1.3 Обзор языка для формирования программного обеспечения

Язык PHP

РНР (Hypertext Preprocessor, изначально Personal Home Page) представляет собой работающий на стороне сервера встроенный язык сценариев Web, позволяющий быстро и эффективно создавать динамические Web-приложения. Для выполнения сценариев РНР предварительно устанавливается и настраивается программное обеспечение РНР на сервере.

Грамматика и синтаксис языка РНР пересекаются с языком программирования C, а также содержат средства из других языков, в том числе Perl, Java и C++. Среди ценных заимствованных возможностей выделяются поддержка регулярных выражений, многофункциональные средства работы с массивами, объектно-ориентированная методология и обширная поддержка работы с базами данных.

При написании приложений, выходящих за рамки традиционной, статической методологии разработки Web-страниц (т. е. HTML), РНР также является необходимым инструментом для создания и управления динамическим содержанием, используется наряду с JavaScript, стилями, WML (Wireless Markup Language) и другими языками. Благодаря наличию большого объема стандартных функций РНР в состоянии решить широкий круг задач. В языке имеется обширная поддержка создания графики и операций с ней, математических вычислений, средств электронной коммерции, а также известных технологий XML, ODBC (Open Database Connectivity) и Macromedia Shockwave. Широкий выбор возможностей избавляет от необходимости рутинной и сложной работы по подключению сторонних модулей, что является явным преимуществом языка РНР.

Одним из главных достоинств РНР является возможность внедрения в HTML-код, что избавляет от необходимости написания программ с множеством команд для вывода HTML. Код HTML и РНР можно чередовать по мере необходимости.

Главным фактором при проектировании языка РНР является практичность. РНР предоставляет разработчику средства для быстрого и эффективного решения поставленных задач. Практический характер РНР обусловлен пятью базовыми характеристиками:

1. Традиционность. Язык РНР понятен программистам, работающим в разных областях. Многие конструкции языка позаимствованы из C, Perl, а в некоторых случаях код РНР практически неотличим от того, что встречается в типичных программах С или Pascal. Данное обстоятельство значительно снижает начальные усилия по изучению РНР.

2. Простота. Сценарий РНР может состоять из 10 000 строк или из одной строки, что зависит от специфики решаемой задачи. Нет необходимости подгружать библиотеки, указывать специальные параметры компиляции и т.п. Механизм РНР начинает выполнять код после первой экранирующей последовательности (<?) и продолжает выполнение до того момента, когда он встретит парную экранирующую последовательность (?>). Если код имеет правильный синтаксис, он исполняется в точности так, как указал программист.

3. Эффективность. Является исключительно важным фактором при программировании для многопользовательских сред, к числу которых относится и WWW. В РНР 4.0 реализован механизм выделения ресурсов и обеспечена улучшенная поддержка объектно-ориентированного программирования, а также средства управления сеансом. В последней версии появился механизм подсчета ссылок (reference counting), предотвращающий выделение лишней памяти.

4. Безопасность. РНР предоставляет в распоряжение разработчиков и администраторов гибкие и эффективные средства безопасности, которые условно делятся на две категории: средства системного уровня и средства уровня приложения.

Средства безопасности системного уровня. В РНР реализованы механизмы безопасности, находящиеся под управлением администраторов; что при правильной настройке РНР обеспечивает максимальную свободу действий и безопасность. РНР может работать в так называемом безопасном режиме (safe mode), который ограничивает возможности применения РНР пользователями по ряду важных показателей. Например, можно ограничить максимальное время выполнения и использование памяти (неконтролируемый расход памяти отрицательно влияет на быстродействие сервера). По аналогии с cgi-bin администратор также может устанавливать ограничения на каталоги, в которых пользователь может просматривать и исполнять сценарии РНР, а также использовать сценарии РНР для просмотра конфиденциальной информации на сервере (например, файла passwd).

Средства безопасности уровня приложения. В стандартный набор функций РНР входит ряд надежных механизмов шифрования. РНР также совместим со многими приложениями независимых фирм, что позволяет легко интегрировать его с защищенными технологиями электронной коммерции (e-commerce). Другое преимущество заключается в том, что исходный текст сценариев РНР нельзя просмотреть в браузере, поскольку сценарий компилируется до его отправки по запросу пользователя. Реализация РНР на стороне сервера предотвращает похищение нетривиальных сценариев пользователями, знаний которых хватает хотя бы для выполнения команды View Source.

  • Гибкость. Поскольку РНР является встраиваемым (embedded) языком, он отличается исключительной гибкостью по отношению к потребностям разработчика. Хотя РНР обычно рекомендуется использовать в сочетании с HTML, он с успешно интегрируется и в JavaScript, WML (Wireless Markup Language), XML и другие языки. Помимо того, хорошо структурированные приложения РНР легко расширяются по мере необходимости (что относится ко всем основным языкам программирования).

Отсутствуют проблемы и с зависимостью от браузеров, поскольку перед отправкой клиенту сценарии РНР полностью компилируются на стороне сервера. Сценарии РНР могут передаваться любым устройствам с браузерами, включая традиционные персональные компьютеры, сотовые телефоны, электронные записные книжки, пейджеры, портативные компьютеры. Программисты, занимающиеся вспомогательными утилитами, могут запускать РНР в режиме командной строки.

Поскольку РНР не содержит кода, ориентированного на конкретный Web-сервер, пользователи не ограничиваются определенными серверами (возможно, незнакомыми для них). Apache, Microsoft IIS, Netscape Enterprise Server, Stronghold и Zeus – РНР работает на всех перечисленных серверах. Поскольку эти серверы работают на разных платформах, РНР в целом является платформенно-независимым языком и существует на таких платформах, как Unix, Solaris, FreeBSD и Windows 95/98/NT.

Помимо того средства РНР позволяют программисту работать с внешними компонентами, такими как Enterprise Java Beans или СОМ-объекты Win32. Благодаря новым возможностям РНР занимает достойное место среди современных технологий и обеспечивает масштабирование проектов до необходимых пределов.

Бесплатное распространение. Стратегия Open Source позволила достичь хороших успехов в программной отрасли. Распространение исходных текстов программ в массах оказало благотворное влияние на многие проекты, в первую очередь – Linux, при этом успех проекта Apache значительно укрепил позиции Open Source. Данное обстоятельство также относится к истории создания РНР, поскольку поддержка пользователей со всего мира оказалась важным фактором в развитии РНР.

Принятие стратегии Open Source и бесплатное распространение исходных текстов РНР оказало неоценимую услугу пользователям. При этом сообщество пользователей РНР представляет собой своего рода «коллективную службу поддержки». В популярных электронных конференциях можно получить квалифицированную помощь при разрешении даже самых сложных проблем.

Язык JavaScript

JavaScript, как и AJAX, успешно применен при разработке системы конфигурирования. JavaScript представляет собой язык управления сценариями просмотра гипертекстовых страниц Web на стороне клиента. В дополнение к этому Liveware, прародитель JavaScript, выступает в качестве средства подстановок на стороне сервера Netscape. Однако наибольшую популярность JavaScript обеспечило программирование на стороне клиента.

Основная идея JavaScript состоит в возможности изменения значений атрибутов HTML-контейнеров и свойств среды отображения в процессе просмотра HTML-страницы пользователем. При выполнении данных процедур перезагрузки страницы не происходит. На практике это выражается в возможности, например, изменения цвета фона страницы или интегрированной в документ картинки, открытия нового окна или выдачи предупреждения.

Название "JavaScript" является зарегистрированным товарным знаком компании Sun Microsystems. Реализация языка, осуществленная разработчиками Microsoft, официально называется JScript. Версии JScript практически полностью совместимы с соответствующими версиями JavaScript, таким образом, JavaScript является подмножеством языка JScript. В данный момент JavaScript полностью занимает нишу браузерных языков. На синтаксис JavaScript оказал влияние язык Java, откуда и произошло название JavaScript; как и Java, язык JavaScript является объектным. Однако на этом их связь заканчивается: Java и JavaScript являются независимыми языками, ни один не является подмножеством другого.

Стандартизация языка была инициирована компанией Netscape и осуществляется ассоциацией ECMA (European Computer Manufacturers Association).

На 2008 г. вышла третья редакция стандарта, включающая мощные регулярные выражения, улучшенную поддержку строк, новые управляющие конструкции, обработку исключений try/catch, конкретизированное определение ошибок, форматирование при численном выводе и другие изменения. Не все реализации JavaScript на сегодня полностью соответствуют стандарту ECMA.

Понятие объектной модели применительно к JavaScript. Для создания механизма управления страницами на клиентской стороне используется DOM модель документа, т.е. каждый HTML-контейнер представляет собой объект, характеризуемый тройкой: свойства, методы, события.

Объектную модель можно представить как способ связи между страницами и браузером, включающий представление объектов, их методов, свойств и событий, которые присутствуют и происходят в программном обеспечении браузера, в виде, удобном для работы с ними из кода HTML и исходного текста сценария на странице.

Объекты с одинаковым набором свойств, методов и событий объединяются в классы однотипных объектов. Сами объекты появляются только после загрузки документа браузером или как результат работы программы.

Многие HTML-контейнеры имеют атрибуты. Программист может изменить значение атрибута и, следовательно, свойство объекта. Но не у всех атрибутов можно изменять значения. Например, высота и ширина графического рисунка определяются по первому загруженному в момент отображения страницы рисунку. Все последующие рисунки, заменяющие начальный, масштабируются до него.

Свойствами в JavaScript наделены также и объекты, которые не имеют аналогов в Разметке. Например, среда исполнения, называемая объектом Navigator, или окно браузера Window, которое является самым старшим объектом JavaScript.

Методы объекта определяют функции изменения его свойств. Например, с объектом document связаны методы open(), write(), close(). Эти методы позволяют сгенерировать или изменить содержание документа.

Кроме методов и свойств, объекты характеризуются событиями. Суть программирования на JavaScript заключается в написании обработчиков этих событий.

Исполнением JavaScript-кода занимается браузер. В него встроен интерпретатор JavaScript. Следовательно, выполнение программы зависит от того, когда и как этот интерпретатор получает управление. Это, в свою очередь, зависит от функционального применения кода. В общем случае можно выделить четыре способа функционального применения JavaScript:

  • гипертекстовая ссылка (схема URL);

  • обработчик события (в атрибутах, отвечающих событиям);

  • подстановка (entity);

  • вставка (контейнер Script).

Схема URL является одним из основных элементов Web-технологии. URL указывается в атрибуте HREF контейнера A, в атрибуте SRC контейнера IMG, в атрибуте ACTION контейнера FORM и т.п. Все URL подразделяются на схемы доступа, которые зависят от протокола доступа к ресурсу. Тип схемы определяется по первому компоненту URL.

Основной задачей языка программирования гипертекстовой системы является программирование гипертекстовых переходов, т.е. при выборе той или иной гипертекстовой ссылки вызывается программа реализации гипертекстового перехода. В Web-технологии стандартной программой, вызываемой при гипертекстовом переходе, является программа загрузки страницы. JavaScript позволяет поменять стандартную программу на программу пользователя. Для того чтобы отличить стандартный переход по протоколу HTTP от перехода, программируемого на JavaScript, разработчики языка ввели специальную схему URL – JavaScript.

В URL можно размещать сложные программы и вызовы функций. Но схема JavaScript работает не во всех браузерах, только в версиях Netscape Navigator и Internet Explorer, начиная с четвертой.

Такие программы, как обработчики событий, указываются в атрибутах контейнеров, с которыми эти события связаны.

Подстановки (entity) поддерживаются только браузером Netscape Navigator 4.0. Являясь достаточно мощным инструментом генерации HTML-страницы на стороне браузера, они встречаются на Web-страницах довольно редко. Подстановки имеют формат: &{код_программы}; и используются в качестве значений атрибутов HTML-контейнеров.

В случае подстановки JavaScript-интерпретатор получает управление в момент разбора браузером (компонент парсер) HTML-документа. Как только парсер встречает конструкцию &{..}; у атрибута контейнера, он передает управление JavaScript-интерпретатору, который, в свою очередь, после исполнения кода это управление возвращает парсеру. Таким образом, данная операция аналогична подкачке графики на HTML-страницу.

В Internet Explorer подстановки не поддерживаются, поэтому их использование не всегда целесообразно. Альтернативой подстановкам в Internet Explorer можно считать динамические свойства стиля.

При сравнении Javascript с PHP в качестве преимущества последнего можно выделить то, что обработка происходит на сервере независимо от браузера и настроек пользователя. В почтовых формах отсутствуют проблемы с кодировками, потому что письмо всегда идет с сервера на почту. На Javascript крайне сложно настроить скрипт, чтобы форма корректно обрабатывалась всякой почтовой программой. Главная проблема при этом кроется в кодировке. Еще одним плюсом PHP является легкость загрузки, вся большая формула может быть на сервере, а пользователь получит только результат.

К преимуществам JavaScript относят, прежде всего, оперативность, т.к. скрипт обрабатывается на браузере и пользователь тут же видит результат без загрузки на сервер. Также необходимо отметить, что AJAX придал новое дыхание Javascript.

В обоих случаях есть свои плюсы, которые успешно применялись в ходе решения поставленной задачи.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]