Главная страница

Без имени. Разработка Web приложений средствами разработки языка php


Скачать 54.71 Kb.
НазваниеРазработка Web приложений средствами разработки языка php
Дата23.02.2019
Размер54.71 Kb.
Формат файлаdocx
Имя файлаБез имени.docx
ТипРеферат
#68645

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего образования

АМУРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

(ФГБОУ ВО «АмГУ»)
РЕФЕРАТ

по дисциплине: «Инструментальные средства разработки программного обеспечения»

на тему: «Разработка Web – приложений средствами разработки языка PHP»

Выполнили студенты

группы ПКС 9151

Макаров О.В., Русакова Ю.К.

Проверила:

Дорогова В.К.

Благовещенск 2018г.

СОДЕРЖАНИЕ





Введение 3

1 Разработка Web – приложений 4

2 Язык разработки PHP 12

2.1 Описание языка 12

2.2 Преимущества и недостатки языка программирования PHP 15

2.2 Особенности создания динамических страниц 17

2.3 Настройка web-языка программирования PHP в деталях 17

2.5 Версии языка программирования PHP 18

2.6 10 Принципов разработки на PHP 19

2.7 Возможности PHP 26

Заключение 30

Список литературы 31




Введение



Последние годы Web-приложения стремительно развиваются, постепенно вытесняя настольные решения и становясь важнейшим компонентом бизнеса в современном мире.

Все чаще компании прибегают к услугам разработки Веб-приложений (Web-application), чтобы эффективно решать широкий спектр бизнес-задач.

Клиент-серверное приложение, основная часть которой содержится на удаленном сервере, а пользовательский интерфейс (UI) отображается в браузере в виде веб-страниц.

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

Работа клиента не зависит от операционной системы, стоящей на компьютере пользователя, поэтому при разработке веб-приложений нет необходимости писать отдельные версии для Windows, Linux, Mac OS и других операционных систем.

Для создания серверной части веб-приложений используются такие языки программирования, как: PHP, ASP, ASP.NET, Perl, C/C++, Java, Python, Ruby, NodeJS.

По всем средства разработки существуют огромные статьи и книги. В данном реферате рассмотрено лишь одно из них, а именно язык программирования PHP.

1 Разработка Web – приложений



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

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

Практически любой интернет-ресурс входит в их число. Это поисковые системы, видео сервисы типа youtube, соцсети, любые веб-сайты с функциями аутентификации пользователя, покупки, заказа, бронирования, калькуляторы кредитов.

Как работает веб-приложение

Технически это интернет-приложение с архитектурой «клиент-сервер». Чтобы понять принцип, давайте вспомним основные элементы такой архитектуры.

Клиентом служит браузер, сервером — веб-сервер. Связь происходит посредством сети. Представьте, что web-приложение состоит изначально из страниц с частично либо полностью неопределенным содержимым. Итоговое содержание веб-страниц сформируется тогда, когда конкретный пользователь отправит запрос.

Страницы, которые мы видим в браузере, могут быть статическими и динамическими.

Статическая web-страница отображается для всех посетителей одинаково. Как это работает:

Человек вводит в адресной строке запрос или адрес страницы.

Браузер отправляет его на веб-сервер.

Тот анализирует запрос, определяет, что никаких особых признаков и инструкций нет.

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

В случае с динамическими страницами схема выглядит так:

Браузер отправил запрос на веб-сервер. К примеру, при этом поступила информация, что у этого пользователя есть набор признаков, при наличии которых для него нужно показывать определенную информацию, значит страница будет динамической.

Веб–сервер пересылает ее на сервер приложений, где специальное ПО применит правила и инструкции для добавления особых переменных. Например, человек авторизован в системе. Ему может показаться страница с ФИО и другой релевантной именно для него информацией.

Сервер забирает готовую веб-страницу, отдает браузеру, который показывает ее посетителю, создавшему запрос.

Технические аспекты

Для веб-приложений на стороне сервера можно применять различные технологии и любые языки программирования. Для клиента-браузера не важно, какая ОС настроена у человека, в этом плане интернет-приложения можно считать универсальными кроссплатформенными сервисами.

Стандарты в целом общие для любых продуктов web-разработки. Функциональные основаны на реализации функций для решения задач пользователей.

Среди нефункциональных важны:

Надежность. Приложение должно работать с заданными характеристиками и установленной скоростью вне зависимости от количества пользователей.

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

Безопасность. Включает уровни прав доступа, авторизацию и аутентификацию.

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

Классификация

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

Остановимся подробно на популярных и востребованных.

AJAX

Основное преимущество такого подхода в том, что web-страницы не обновляются со всеми данными заново, а лишь подгружают нужное с сервера, это повышает производительность и степень интерактивности. Один из принципов работы — подгрузка JavaScript. Удобно применять в интернет-магазинах, сайтах-каталогах, любых крупных интернет-проектах, требующих обработки больших массивов данных.

Также различают такие технологии, как ASP, JSP, CGI. Они могут быть разработаны на любом языке программирования, например, PHP, Java и т.д.

По назначению веб-приложения условно можно разделить в зависимости от сферы применения. Почему условно? Как мы выяснили выше, любой интерактивный сайт – это онлайн-приложение. Соответственно, таких сфер, тематик и классификаций можно придумать множество.

Системы бронирования и покупки: билеты, отели, товары, услуги.

Развлекательные порталы.

Финансовые и банковские интернет-порталы с функциями заказа услуг онлайн, калькулятора кредитов, перевода валют, интернет-банкингом и другими.

Социальные сети.

Игры.

Образовательные, обучающие каналы, сайты телепрограмм, газет.

Веб-версии программного обеспечения.

Биржи контента, фриланса и т.п.

CRM. Для примера детально рассмотрим эти популярные сервисы.

CRM — система управления проектами, направленная на автоматизацию обработки полного спектра информации о клиентах и товарах.

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

CRM являются основой бизнеса телемаркетинговых компаний и колл-центров. Незаменимы, когда нужно настроить проектную работу с четким разделением по ролям и зонам ответственности, взаимодействие между отделами, работу с клиентами. Это актуально для банков, агентств маркетинговых коммуникаций, компаний-разработчиков IT, онлайн-магазинов товаров и услуг.

Более заточенный под потребности конкретного бизнеса вариант – это ERP. Это web-приложения, разработанные для автоматизации процессов управления внутрихозяйственной деятельностью крупных предприятий с развитой филиальной сетью, различными направлениями деятельности, сложноподчиненной структурой. Включает модули производственного, финансового управления, закупки и тд.

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

При этом, у всего многообразия онлайн-приложений есть общие характерные черты.

Они активно поддерживают развитие ecommerce: переносят процессы покупки, деловой коммуникации, подписания документов в интернет.

Это процесс win-win: преимущества получает и продавец, и покупатель.

Интернет-приложения помогают компаниям-продавцам товаров и услуг быть более мобильными, предлагать постоянно расширяющийся перечень услуг, обслужить в единицу времени больше людей, продать сопутствующие сервисы.

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

Веб-приложения стали широко использоваться в конце 1990-х — начале 2000-х годов.

В зависимости от стоящих перед бизнесом задач можно заказать разработку необходимого веб-сервиса.

  1. Корпоративный портал

Многофункциональный веб-сервис, позволяющий удобно и эффективно оптимизировать бизнес процессы.

Решаемые задачи:

  • Улучшение качества работы с клиентами

  • Повышение результативности работы сотрудников

  • Упрочнение и улучшение связей между подразделениями компании

  • Удобное и результативное общение с контрагентами

  • Повышение мобильности сотрудников

  • Удаленная работа с документами

  • Проведение PR-мероприятий различной степени сложности

  1. CRM

Мощный инструмент автоматизации отношений с покупателями, эффективно решающий задачу успешного контроля, планирования и развития любого клиентоориентированного бизнеса.

Решаемые задачи:

  • Целостность и сохранность клиентской базы

  • Получение аналитики по продажам

  • Повышение объёма продаж

  • Эффективная оптимизация работы персонала

  • Сокращение бумажного документооборота

  1. ERP

Разработка ERP системы необходима крупным предприятиям всех форм собственности для открытия новых возможностей перед бизнесом.

Решаемые задачи:

  • Стандартизация форм отчетности и информационных систем

  • Улучшение взаимодействия между отделами

  • Контроль и синхронизация процессов

  • Интеграция с контрагентами

  1. Системы электронной коммерции

Благодаря e-commerce производители и поставщики услуг/товаров могут предлагать в сети продукцию потенциальным покупателям, осуществлять прием и обработку заказов, управлять статусом заявок и т.д.

Решаемые задачи:

  • Получение подробной информации о запросах каждого индивидуального потребителя

  • Стремительный вывод нового продукта на рынок

  • Уменьшение затрат на совершение сделки

  • Сокращение пути товара к потребителю

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

преимущества web – приложений:

  1. Доступ с любого устройства

С веб-приложением можно работать в любой точке мира с компьютера, планшета или смартфона, подключенного к Интернету.

  1. Экономия

Веб-приложения работают на всех платформах и исключают необходимость разработки приложения отдельно для Android и iOS.

  1. Адаптивность

Если для нативных приложений нужны определенные ОС, то для работы с веб-приложением подходит любая ой операционной системой (Windows, MAC, Linux и т.д.) и любой браузер (Internet Explorer, Opera, FireFox, Google Chrome и т.д.).

  1. Отсутствие клиентского ПО

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

  1. Сетевая безопасность

Веб-система имеет единую точку входа, защитить и настроить безопасность которой можно централизованно.

  1. Масштабируемость

С ростом нагрузки на систему не надо наращивать мощность клиентских мест. Веб-приложение позволяет обрабатывать большее количество данных, как правило, только силами аппаратных ресурсов, без переписывания кода и смены архитектуры.

  1. Защита от потери данных

Данные пользователей хранятся в «облаке», за целостность которого отвечают хостинг-провайдеры, и защищены от потери при повреждении жесткого диска компьютера.

2 Язык разработки PHP




2.1 Описание языка


На прошлом этапе мы уже убедились в необходимости использования подобных приложений. Далее рассмотрен определенное средство разработки web – приложений, а именно язык разработки PHP

PHP (Hypertext Preprocessor - Препроцессор Гипертекста)– это широко используемый язык сценариев общего назначения с открытым исходным кодом.

PHP - язык программирования, специально разработанный для написания web-приложений (скриптов, сценариев), исполняющихся на Web-сервере. Синтаксис языка во многом основывается на синтаксисе C, Java и Perl. Он очень похож на С и на Perl, поэтому для профессионального программиста не составит труда его изучить. С другой стороны, язык PHP проще, чем C, и его может освоить веб-мастер, не знающий пока других языков программирования.

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

Сценарии на языке PHP могут исполняться на сервере в виде отдельных файлов, а могут интегрироваться в html страницы.

PHP способен генерировать и преобразовывать не только HTML документы, но и изображения разных форматов - JPEG, GIF, PNG, файлы PDF и FLASH. PHP способен формировать данные в любом текстовом формате, включая XHTML и XML.

PHP - кроссплатформенная технология. Дистрибутив PHP доступен для большинства операционных систем, включая Linux, многие модификации Unix, Microsoft Windows, Mac OS и многих других. PHP поддерживается на большинстве вебсерверов, таких, как Apache, Microsoft Internet Information Server (IIS), Microsoft Personal Web Server и других.

Для большинства серверов PHP поставляется в 2-х вариантах - в качестве модуля и в качестве CGI препроцессора.

PHP поддерживает работу с ODBC и большое количество баз данных: MySQL, MSQL, Oracle, PostgreSQL, SQLite и др.

Язык программирования PHP, особенно в связке с популярнейшей базой данных MySQL - оптимальный вариант для создания интернет-сайтов различной сложности.

Язык PHP постоянно совершенствуется, и ему наверняка обеспечено долгое доминирование в области языков web -программирования.

Обратившись к истории языка можно узнать, что начало разработки PHP приходится на 1994 год, и вел ее сначала один программист Расмус Лердорф (Rasmus Lerdorf). С тех пор язык претерпел большие изменения, которые вносились многими талантливыми разработчиками. На сегодняшний день мы имеем дело с его зрелой и широко используемой формой, которая применяется более чем в двадцати миллионах доменов по всему миру, и их число постоянно растет.

PHP – это продукт с открытым исходным кодом. Его можно видоизменять, использовать и свободно распространять..

К числу основных преимуществ PHP можно отнести следующие.

  1. Высокая производительность. Система PHP очень эффективна – серверы, использующие PHP, обслуживают около миллиона обращений в день.

Если применять комбинации взаимодействующих серверов, то производительность становится практически неограниченной. Компанией Zend Technologies проводились многочисленные тесты, результаты которых показали более высокую производительность PHP по сравнению с конкурентами.

  1. Тесная интеграция с разнообразными СУБД. В дополнение к MySQL, можно непосредственно работать с такими СУБД, как PostgreSQL, mSQL, Oracle, dbm, FilePro, Hyperware, Informix, InterBase и Sybase. Начиная с 5-й версии, PHP имеет встроенный SQL-интерфейс для работы с плоскими (двумерными) файлами, а используя стандарт ODBC, можно подключаться к любой СУБД, для которой есть ODBC-драйвер.

  2. Наличие встроенных библиотек. PHP имеет в своем составе большое количество функций, решающих самые разнообразные задачи, связанные с Web. К числу таких возможностей относится генерация «на лету» GIF-изображений, подключение к Web и другим сетевым службам, обработка XML-документов, отправка электронной почты, работа с cookie-наборами и генерация PDF-файлов.

  3. Одним из основных преимуществ PHP является его бесплатность.

  4. Простота освоения. Отличительной особенностью PHP является похожесть его синтаксиса на C и Perl, поскольку он основан на этих языках. Зная их, любой желающий может быстро начать эффективную работу и с PHP.

  5. Объектно-ориентированный подход в программировании. Пятая версия PHP полностью поддерживает все возможности объектно-ориентированного программирования. Поддержка таких основ, как наследование, приватные и защищенные атрибуты и методы, абстрактные классы и методы, интерфейсы, конструкторы и деструкторы очень похожа по духу и синтаксису на их реализацию в Java или C++.

  6. Высокая степень переносимости. PHP очень хорошо работает под управлением множества операционных систем. Сам код можно разрабатывать как в среде свободных UNIX-подобных операционных систем (например, Linux или FreeBSD), так и в коммерческих версиях UNIX. Существуют и реализации PHP для Microsoft Windows.

  7. Для PHP имеется поддержка, правда на коммерческой основе. Компания Zend Technologies финансирует дальнейшее его развитие и осуществляет техническую поддержку, а также разработку проприетарного ПО.

Если бы была возможность перенестись буквально на 12-15 лет назад, то можно было бы увидеть, что основное количество сайтов имело статические страницы. Ресурсы разрабатывать посредством гипертекстового языка разметки. Реже прибегали к использованию таблиц стилей. Когда появилась потребность в динамических страницах, перечисленных инструментов уже стало недостаточно.

Был разработан язык программирования PHP. Если сказать вкратце, то его роль заключалась в придании страницам интерактивности. Несмотря на то, что существует множество web-языков программирования, данный сумел выбиться в лидеры по целому ряду причин - простота в использовании, постоянное совершенствование и другим.

В настоящее время посредством PHP создаются формы связи, плагины, движки для веб-проектов и многое другое, без чего современные веб-проекты обойтись не могут.

2.2 Преимущества и недостатки языка программирования PHP


Разработка PHP принадлежит Расмусу Лердорфу. Язык, созданный им, сумел снискать популярность во всем мире. Его главное преимущество, о котором было сказано выше, это простота в применении. Но, имеют место и другие немаловажные плюсы. Они следующие:

  • мощность и гибкость. PHP можно задействовать для работы как с простыми ресурсами, среди которых блоги и сайты-визитки, так и с корпоративными порталами, а также интернет-магазинами. Специалисты Facebook и Yahoo задействуют PHP в работе;

  • свободно распространяемое программное обеспечение. В покупке лицензии для использования PHP потребности нет. Бесплатное применение возможно как для коммерческих, так и некоммерческих проектов;простота в изучении. Хватит одной недели, чтобы постигнуть азы работы с языком;

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

  • масса расширений и библиотек языка;

  • применение PHP допускается на абсолютно любых серверах;

  • в наличии интерфейс расширений программного типа и нативные средства для созданий виртуальных сессий;

  • ориентирован на всевозможные операционные системы и аппаратные платформы.

После знакомства с преимуществами PHP, сразу возникает мнение, что он является идеальным. Увы, но у него есть минусы, которые нельзя назвать критичными, но все же свою отрицательную лепту они могут внести в качество работы с языком. Итак, недостатки следующие:

  • передача объектов происходит по значению, а это непривычно для многих программистов, которые привыкли к тому, что происходит передача по ссылке;

  • создавать системные компоненты и десктопные приложения посредством него невозможно;

  • разворачивание приложений и настройка сервера усложнена глобальными параметрами настройки. Ко всему прочему, они оказывают влияние и на базис синтаксиса PHP;

  • небольшой набор инструментов для ведения деятельности с исключениями. Мощными их назвать затруднительно;

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

PHP - это язык серверного типаю. Казалось бы, самое время просмотреть обзор версий PHP, но перед тем, как это сделать, будет нелишним познакомиться с одной особенностью языка программирования. Он является серверным, а это значит, что специалист, работая на нем, задает команды, которые обрабатываются на сервере. После этого приходят ответы, являющиеся готовым результатом. Как правило, программный код многих языков программирования можно просмотреть. Достаточно лишь кликнуть правой кнопкой мыши и запросить просмотр кода. Что касается PHP, то его код увидеть уже окажется невозможно таким образом.

2.2 Особенности создания динамических страниц


Каждый третий сайт в виртуальной сети обладает динамическими страницами. Есть масса языков для их создания, но вот только в PHP блоки сайта отражаются в отдельных страницах. Таким образом, нужно потратить лишь раз время на написание кода, который в дальнейшем будет автоматически загружаться к тексту. PHP является одним из безопасных языков для работы. Связано это все с тем же фактом, что прочесть его код невозможно. Чтобы начать работать с PHP, потребуется лишь приобрести хостинг или же установить его на собственный компьютер.

2.3 Настройка web-языка программирования PHP в деталях


Сделать выбор в пользу языка программирования PHP рекомендуется как профессиональным специалистам, так и новичкам, решившим попробовать свои силы в сайтостроении. Перед тем как начать настраивать язык, следует скачать его. Лучше сделать выбор в пользу последней версии PHP. Скачивается она в формате Zip. В той папке, где будут храниться все файлы, создать директорию, и дать ей имя PHP.

Т еперь останется распаковать архив и можно переходить к настройкам. Вся деятельность, связанная с конфигурированием, заключается во внесении корректив в файл php, имеющий расширение ini. Уже имеют место некоторые сценарии, которые можно найти в папке с файлами.

Проверка PHP и перезагрузка

После того, как настройка php была выполнена, требуется выполнить перезапуск Apache. Без этого ни одно из изменений не может вступить в действие. Перезапуск происходит посредством функции Apache Monitor. О том, насколько качественно была выполнена настройка, можно понять, протестировав PHP. Оказаться в корневом каталоге документов веб-сервера, и добавить файл phpinfo.php со специальным содержимым.

2.5 Версии языка программирования PHP


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

  • PHP 5.3. Как оказалось в действительности, существовали и более ранние версии языка. Но, они представляли собой недоделанные продукты, которые в пользование массовому потребителю не попали. В версии 5.3 используется машина-интерпретатор, ориентированная на работу со скриптами Zend Engine второго поколения. За счет этого язык стал функционировать быстрее. В данной версии был сокращен тернарный оператор, появились анонимные функции, не требующие названия, а также возникла возможность получать объекты из функции и метода. Это основные изменения, что касается остальных, то с ними можно познакомиться в виртуальной сети. Отдельно нужно выделить оператора goto, призванного организовать быстрый переход в другую часть программы;

  • PHP 5.4. Прошло немного времени, и появилась следующая версия языка программирования. Она уже позволяла делать записи в массив и при этом не использовать array, обеспечила статический доступ к методу примесями из класса, дала возможность быстро получать элементы массива, а также представила новый тип для аргументов метода и функции. В версии 5.4 производительность была повышена;

  • PHP 5.5. В этой версии подвергся коррективам оператор empty. Некоторое время назад его возможности ограничивались лишь приемом переменных. Теперь возникла возможность передавать выражения, не прибегая к сохранению результата в самостоятельную переменную. Кроме этого, можно контролировать выполнение хода, и оперативно устранять ошибки;

  • PHP 5.6. Многие программисты жаловались на то, что отсутствует возможность использования примитивных выражений в значении констант. Этот недостаток был исправлен и вместе статики можно задействовать выражения, включающие в себя и константы, и строки, и даже числовые выражения;

  • PHP 7. Возможность ее скачать появилась в декабре 2015 года. Базируется новая версия языка программирования на ветке PHP экспериментального типа, призванная уменьшить потребление памяти, и повысить производительность. В PHP 7 изменения были внесены даже в ядро интерпретатора. В результате этого сократилось время обработки скриптов в несколько раз. Новая версия порадовала менеджером памяти.

Где же версия PHP 6

Логично будет задать вопрос, просмотрев обзор версий PHP, а где же 6 версия? Оказывается, что над ней велись работы, и даже была назначена дата релиза, но позже было решено пропустить ее ввиду присутствия огромного количества ошибок в коде. Разработчики сообщили о том, что в скором времени вернутся к работе над ней.

Как сменить версию PHP

Если возникнет вопрос - как поменять php версию для сайта, то для его решения достаточно будет воспользоваться кратким руководством. Первым делом следует оказаться в панели управления. Далее перейти в "Управление сайтами", а после нажать на список, и выбрать версию. Все, на этом работа выполнена. Как видно, загружать и устанавливать ничего не надо. На сервера новые версии загружаются автоматически, но не активируются.

2.6 10 Принципов разработки на PHP


PHP разработка тогда и сейчас

Для большинства разработчиков работа над PHP приложениями сейчас и десять лет назад отличается кардинально. В те времена многие из нас были веб-дизайнерами в чью ответственность входила не только разработка бекэнда, но и проектирование БД, системное администрирование, фронтэнд программирование, а иногда и создание UI.

За последние года картина довольно сильно изменилась. Простые сайты теперь представляют из себя целые SaaS приложения - зачем создавать очередной движок для блога, встраивать CMS или ecommerce систему, когда уже десятки разных продуктов существуют. Другими словами, всё что можно было автоматизировать уже оптимизировано. Но остается один момент не поддающийся этому процессу - нужды заказчиков.

Поэтому веб-разработчики стали специализироваться именно на тех участках, которые невозможно оптимизировать - веб-приложениях. В паре с этим пришли основные идеи корректной разработки на PHP.

10 основополагающих моментов в современной разработки на PHP

Нас часто спрашивают, как лучше проектировать приложения под нашу инфраструктуру (fortrabbit.com). Конечно существуют тысячи подходов к этому вопросу, я приведу самые часто распространенные исходя из личного опыта.

Многие применяют фреймворки как Laravel5, CakePHP3, Symfony2 и т.д.. Они уже содержат в себе стили и шаблоны проектирования. Но остаются участки на усмотрение разработчика. Так внесем же свою лепту в этом вопросе.

1. Код

Самая важная часть вашего приложения.

Управление

Следует использовать системы контроля версий. Опередим все холивары о лучшей системе и скажем сразу - используйте GIT, так как он самый распространенный.

Стиль

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

Открытый исходный код

Открывать исходный код вашего приложения (или его модулей) может очень положительно сказаться: бесплатная помощь в разработке, бесплатная реклама вас как разработчика или вашей компании, да и самого сообщества, работающего над проектом. Опять же вернемся к GIT, применение редкой системы контроля версий ведет к высокому порогу вхождения новых участников проекта.

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

2. Тесты

Автоматическое тестирование всегда отставало в PHP по сравнению с другими языками программирования. Но, к счастью, ситуация изменилась в лучшую сторону. Мнение, что написание тестов удваивает затраченное время, практически искоренено, и добавление нового функционала стало немыслимо без соответствующего теста.

Хорошо покрытое тестами приложение даёт ряд преимуществ. Вот список моих трех любимых:

Рефакторинг такого ПО значительно проще

Юнит тестирование подталкивает вас использовать модульный стиль (увеличивает повторное использование кода)

Тесты предоставляют не только примеры кода, но и документацию к нему

Конечно список преимуществ на этом не заканчивается, но для меня идея такова: лучше код - меньше проблем.

3. Зависимости

Зависимостями однозначно должен управлять Composer. Так как код очень тесно связан с определенными библиотеками и их версиями, то заявленные зависимости (composer.lock) должен также находится в GIT.

Каталог с зависимостями (vendor) не должен быть в GIT, так как их версиями уже управляет другой файл, который уже в GIT. Поэтому два раза добавлять в репозиторий одно и то же смысла нет.

Модульность

Применение сторонних библиотек подталкивает вас к модульному написанию собственного приложения. Как следствие - меньше повторного кода, меньше трудозатрат и повышение качества кода. И не забывайте о раскрытии исходного кода этих модулей.

4. Настройки

Некорректное хранение настроек приложения - немалая головная боль при переносе приложения, да к тому же и немалый риск в плане безопасности.

Разделение кода и настроек

Лучший вариант - использование сред. Под средами я подразумеваю переменные среды ОС, но локальные файлы настроек тоже отличный вариант, если их внедрение четко описано.

Главное правило, которое помогает определить полностью ли отделен ваш код от настроек, это ответ на вопрос: “Сможете ли вы показать свой код, не показав значения настроек?”. Если вы ответили “Да”, то все отлично.

Плохо: где нибудь в config.inc.php:

$database = "foobar";

$user = "foobar";

$password = "foobar";

Хорошо: переменные среды Apache, SetEnv и подобные:

// $_SERVER["DB_NAME"];

// $_SERVER["DB_USER"];

// $_SERVER["DB_PASSWORD"];

Сложные настройки

Переменные среды могут содержать сложные данные (многоуровневые массивы). Их следует перевести в JSON, закодировать в base 64 и сохранить в БД. Таким образом вы сможете легко их читать и изменять вне приложения.

// somewhere in the bootstrap, assuming all encoded variables are prefixed with "::"..

foreach ($_SERVER as $k => $v) {

if (0 === strpos($v, "::")) {

$_SERVER[$k] = json_decode(base64_decode(substr($v, 2)));

}

}

5. Статические ресурсы

Над такими ресурсами как (скомпилированные) CSS, Javascript, изображения и так далее, нужно задуматься. Но отвечу сразу - храните их в системе контроля версий.

Развернутый ответ: компиляция CSS и Javascript или создание изменённых изображений само по себе требует разных инструментов, которые в свою очередь тянут за собой новые зависимости (представьте себе компилятор node расширения, который ужимает изображения при помощи magick или Java приложение для компиляции CSS...). Все это неоправданно усложняет процесс размещения приложения. А потом еще вспомним про распределение ответственности. Такими ресурсами, как правило, заведуют фронтэнд разработчики. У каждого из них свой набор инструментов, к которому они привыкли. А компиляции ресурсов при размещении приложения ограничит их в использовании своих любимых инструментов.

Более глубокие размышления на тему доступны в недавней статье Френка.

6. Данные во время работы программы

Под такими данными я подразумеваю файлы (не БД), которые генерируются во время работы с пользователем. Как правило их хранят на отдельном сетевом файловом хранилище.

Я бы порекомендовал облачные хранилища (S3, Cloud Files, Cloud Storage...), так как они: берут на себя проблемы мастабируемости, (масштабируют приложение между несколькими серверами или странами), избавляют от возможных проблем с переносом приложения (синхронизация данных), балансируют нагрузку между выполнением (PHP скриптов) и отдачей (файлов).

7. Ресурсы

Ресурсы приложения - все службы, которое оно использует, а именно БД, кеширование, очереди, вышеупомянутые хранилища, почтовые службы и так далее.

Абстрагирование

Доступ к ресурсам должен быть абстрагированным. Степень абстракции зависит от ваших будущих планов (планируете ли вы масштабировать приложение, если да, то следует применить адаптер для локальных ресурсов, который потом можно будет заменить на сетевой адаптер). Абстрагировать систему кеширования легко, что не скажешь о замене MySQL на ElasticSearch, поэтому применение шаблона репозиторий, поможет разрешить эту проблему. Размещение ресурсов должно указываться в настройках приложения.

Плохо:

$conn = new mysqli($servername, $username, $password);

Код слишком тесно связан с определенным драйвером MySQL. Если вдруг драйвер перестанет быть доступным или вы не сможете использовать MySQL, то вам придется переписывать код.

Хорошо:

use Illuminate\Database\Capsule\Manager;

// $_SERVER['DATABASE'] = ["host" => "localhost", ...]

$mgr = new Manager->addConnection($_SERVER['DATABASE']);

Легко использовать разные БД, изменить местоположение БД сервера также просто.

Слабое связывание

Все службы, без которых приложение может работать должны легко отключаться. Допустим, почтовая служба используется для приветствия новых пользователей: вы должны иметь возможность отключить её при помощи одной команды, в случае если поставщик службы перестанет работать. А еще лучше автоматизировать такое отключение. Самый лучшый вариант - создать очередь запросов, которая будет пытаться заново соединиться с почтовой службой.

8. Размещение приложения

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

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

9. Ступень развития приложения

Конечно автоматическое тестирование - это фундамент хорошего приложения, но место для ошибки всегда остается. Тут и появляется понятие об этапах разработки приложения. Рабочее приложения на локальной машине (development) - первая этап разработки. Другая стадия разработки - рабочий режим приложения (production). А между ними большая пропасть, в которой есть место тестированию, рецензированию, да и много чему еще.

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

Количество этапов зависит от размера приложения, команды, типа приложения и так далее. В этой статье вы найдете более подробное описание этого процесса. Я рекомендую применять три этапа: локальный (development), продуктовый (production) и, конечно же этап тестирования (testing).

10. Масштабируемость

Наверняка вас уже не раз называли DevOp. Что означает: при разработке надо учитывать технические возможности оборудования, на котором будет работать приложения, чтобы не бороться с недостатками, а использовать преимущества.

Конечно, это недостаток облачный инфраструктур. Ранее: все что вы делали, да и могли сделать это вертикально масштабировать свою машину - чем больше сервер, тем лучше. Вы не задумывались об узких местах работы, так как существовало только одно решение. А теперь вы не только можете горизонтально масштабировать ресурсы, но и делать это для каждого отдельного ресурса, а следовательно надо понимать, что именно замедляет работу приложения. Или что вы можете сделать чтобы компенсировать это замедление. А что еще важнее - понимать какой еще ресурс можно подключить для повышения работоспособности. В общем, у вас появился доступ к красной кнопке, а соответственно и ответственность за свои решения.

Заключение

Все стало намного сложнее: надо знать шаблоны проектирования, стратегии размещения, тестирования и дизайна приложения. Но есть и то, что упростилось: ряд новых инструментов, улучшились службы, а стандарты кода упрощают поддержку как никогда. Искусство написания PHP кода изменилось. Сильно. И процесс стал интересным как никогда.

2.7 Возможности PHP


PHP может все. Главная область применения PHP - написание скриптов, работающих на стороне сервера; таким образом, PHP способен выполнять все то, что выполняет любая другая программа CGI, например, обрабатывать данные форм, генерировать динамические страницы или отсылать и принимать cookies. Но PHP способен выполнять намного больше.

Существуют три основных области применения PHP.

Создание скриптов для выполнения на стороне сервера. PHP традиционно и наиболее широко используется именно таким образом. Для этого вам будут необходимы три вещи. Интерпретатор PHP (в виде программы CGI или серверного модуля), веб-сервер и браузер. Для того чтобы можно было просматривать результаты выполнения PHP-скриптов в браузере, нужен работающий веб-сервер и установленный PHP. Просмотреть вывод PHP-программы можно в браузере, получив PHP-страницу, сгенерированную сервером. В случае, если вы просто экспериментируете, вы вполне можете использовать свой домашний компьютер вместо сервера. За более подробными сведениями обратитесь к главе Советы по установке.

Создание скриптов для выполнения в командной строке. Вы можете создать PHP-скрипт, способный запускаться без сервера или браузера. Все, что вам потребуется - парсер PHP. Такой способ использования PHP идеально подходит для скриптов, которые должны выполняться регулярно, например, с помощью cron (на платформах *nix или Linux) или с помощью планировщика задач (Task Scheduler) на платформах Windows. Эти скрипты также могут быть использованы в задачах простой обработки текстов. За дополнительной информацией обращайтесь к главе Использование PHP в среде командной строки.

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

PHP доступен для большинства операционных систем, включая Linux, многие модификации Unix (такие как HP-UX, Solaris и OpenBSD), Microsoft Windows, macOS, RISC OS и многие другие. Также в PHP включена поддержка большинства современных веб-серверов, таких как Apache, IIS и многих других. В принципе, подойдет любой веб-сервер, способный использовать бинарный файл FastCGI PHP, например, lighttpd или nginx. PHP может работать в качестве модуля или функционировать в качестве процессора CGI.

Таким образом, выбирая PHP, вы получаете свободу выбора операционной системы и веб-сервера. Более того, у вас появляется выбор между использованием процедурного или объектно-ориентированного программирования (ООП) или же их сочетания.

PHP способен генерировать не только HTML. Доступно формирование изображений, файлов PDF и даже роликов Flash (с использованием libswf и Ming), создаваемых «на лету». PHP также способен генерировать любые текстовые данные, такие, как XHTML и другие XML-файлы. PHP может осуществлять автоматическую генерацию таких файлов и сохранять их в файловой системе вашего сервера вместо того, чтобы отдавать клиенту, организуя, таким образом, серверный кэш для вашего динамического контента.

Одним из значительных преимуществ PHP является поддержка широкого круга баз данных. Создать скрипт, использующий базы данных, - невероятно просто. Можно воспользоваться расширением, специфичным для отдельной базы данных (таким как mysql) или использовать уровень абстракции от базы данных, такой как PDO, или подсоединиться к любой базе данных, поддерживающей Открытый Стандарт Соединения Баз Данных (ODBC), с помощью одноименного расширения ODBC. Для других баз данных, таких как CouchDB, можно воспользоваться cURL или сокетами.

PHP также поддерживает взаимодействие с другими сервисами через такие протоколы, как LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (на платформах Windows) и многих других. Кроме того, вы получаете возможность работать с сетевыми сокетами напрямую. PHP поддерживает стандарт обмена сложными структурами данных WDDX практически между всеми языками веб-программирования. Обращая внимание на взаимодействие между различными языками, следует упомянуть о поддержке объектов Java и возможности их использования в качестве объектов PHP.

PHP имеет много возможностей по обработке текста, включая регулярные выражения Perl (PCRE) и много других расширений и инструментов для обработки и доступа к XML-документам. В PHP обработка XML-документов стандартизирована и происходит на базе мощной библиотеки libxml2, расширив возможности обработки XML добавлением новых расширений SimpleXML, XMLReader и XMLWriter.

Есть еще много других интересных расширений, которые можно просмотреть как в алфавитном порядке, так и по категориям. Есть еще много дополнительных PECL-расширений, которые также могут (а могут и нет) быть документированы в данном руководстве, такие как » XDebug.

Как вы видите, этой страницы не хватит для того, чтобы перечислить все, что может предложить вам PHP. Читайте следующую главу, Установка PHP и обратитесь к главе Справочник по функциям за более подробными сведениями о перечисленных выше расширениях.

Заключение


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

PHP предоставляет значительно больший контроль над сайтом, чем другие языки программирования, и это является одной из причин, почему веб-разработчики выбирают именно эту платформу. Чтобы решить задачи, на которые в PHP достаточно написать несколько строк кода, в других языках программирования необходимо составлять длинные и нудные скрипты. А его природа открытого кода делает PHP доступным каждому.

В конце концов, PHP всё ещё один из самых популярных языков программирования и безусловный лидер, если говорить о серверной стороне веба. Маловероятно, что вы сможете работать в этой области и не знать PHP. Захотите ли вы изучить какой-то ещё язык? Вполне возможно, нет. А значит, PHP будет жить ещё очень долго.

Список литературы



1 Стив Сиринг – PHP, MySQL, JavaScript & HTML5 Все в одно для разработчика (2016г.)

2 Сэмми Пьюривал – Основы разработки веб-приложени(2016г.)

3 Руслан Роянов – Управление проектом разработки сайта или веб-приложения. От идеи до внедрения(2016г.)

4 https://ru.wikipedia.org/

5 https://habr.com/company/dataart/blog/272165/

6 https://wisetip.ru/page/whyphp

7 https://wp-kama.ru/id_6310/sintaksis-php-5-7-chto-novogo.html


написать администратору сайта