8.Программирование_на_PHP_2019_05_17_09_59_02_532. Дисциплина Программирование на php Лекция Язык программирования php
Скачать 0.61 Mb.
|
Программирование на PHP Дисциплина «Программирование на PHP» Лекция 1. Язык программирования PHPВ этой лекции мы поговорим о том, что такое PHP и для чего его используют язык программирования PHP. Данная информация нужна скорее не для того, чтобы ответить на вопрос: «что такое PHP?», а для того, чтобы помочь начинающему веб-разработчику определиться со сферой применения PHP, сделать выбор и ответить для себя на вопрос: «а нужно ли мне изучать PHP?». Ведь направлений для интернет-разработчика очень много и серверное программирование, в котором как раз-таки и используется PHP, — это лишь одно из них. PHP – это язык программирования, основной сферой применения PHP является сфера веб-разработки. Многие сайты в сети Интернет написаны на языке PHP. PHP или Personal Home Page Tools (инструменты для создания персональных веб-страниц) – это интерпретируемый язык программирования, получивший широкое распространение в сфере веб-разработки. На данный момент практически любой хостинг поддерживает язык программирования PHP. Язык программирования PHP довольно прост в освоение и, пожалуй, это и есть самая главная причина его популярности. Personal Home Page Tools – устаревшее название языка программирования PHP. С выходом PHP версии 3.0 вместе с расширением функциональности языка изменилась и расшифровка акронима PHP, которая актуальна и по сей день: PHP: hypertext Preprocessor. Язык PHP популярен не только из-за относительно низкого порога вхождения, но и из-за того, что с версии 3.0 PHP стал модульным языком и в его развитии стали принимать участия сторонние разработчики, которые начали создавать различные модули и расширения для этого языка. Язык программирования PHP интерпретируемый, а это означает, что для того, чтобы работали программы, написанные на PHP, нужна специальная программа интерпретатор, которая должна конвертировать PHP код в машинный код, который «понимает» процессор компьютера. За счет того, что язык программирования PHP интерпретируемый, программы, написанные на это языке кроссплатформенные, другими словами они будут работать на любой операционной системе. Основным недостатком любого интерпретируемого языка программирования, в том числе и языка PHP, является меньшая производительность по сравнению с компилируемыми языками, так как ресурсы компьютера тратятся на интерпретатор, который преобразует PHP в машинный код. Выводы: ответ на вопрос: «Что такое PHP?» довольно прост: PHP – это интерпретируемый язык программирования, который получил широкое применение в сети Интернет. Мы дали ответ на вопрос: «Что такое PHP?». Теперь нужно дать ответ на вопрос: «а стоит ли мне изучать PHP?». Перейдем к тому, для чего используется язык программирования PHP и теперь можем поговорить о том, где используется PHP, чтобы вы могли решить для себя: а стоит ли изучать PHP и что это вам даст. Язык PHP используется в веб- программировании, вернее, в серверном веб-программировании. PHP – самый популярный скриптовый язык программирования в сфере веб-разработки и создания сайтов на стороне сервера. Большинство динамических сайтов в своей основе используют язык программирования PHP. Популярность использования языка PHP для создания сайтов, как мы уже говорили, определяется тем, что язык PHP довольно прост в освоение и не требует от разработчиков столь большого объема знаний, как например, C или C++. Использование PHP в сфере веб-разработки и его популярность обусловлена тем, фактом, что у PHP есть множество встроенных функций, позволяющих работать различными веб-серверами (HTTP сервер), серверами баз данных и файловой системой сервера. Язык PHP используется для создания сайтов, на языке программирования PHP написано множество фреймворков и CMS, но, что бы вы не думали, что это простая игрушка, стоит сказать, что Facebook и Википедия используют PHP. Еще PHP используется для создания GUI приложений (графический интерфейс пользователя), хотя и не получил в данном направлении такого широкого распространения. Выводы: язык программирования PHP используется в области серверной веб-разработки. Его популярность в данной сфере обусловлена простотой самого языка и огромным количеством встроенных функций, которые облегчают работу с веб-серверами, СУБД и файловыми системами. PHP – это интерпретируемый язык программирования, следовательно, для работы программ на PHP нужен интерпретатор. Чтобы интерцептор понимал, что код в файле написан именно на PHP, у файлов должно быть расширение .php. Для открытие файлов с расширением .php есть множество редакторов, одни из них платные, другие бесплатные. Некоторые имеют больший функционал, некоторые меньший. Хотя файл с расширением .php можно открыть даже обычным Блокнотом, а затем отредактировать его, и программа будет прекрасно работать, если, конечно, не будет ошибок в коде. Приведем несколько редакторов, которые довольно удобны и функциональны для написания программ на PHP: бесплатный HTML и PHP редактор Notepad++; IDE NetBeans. Это даже не редактор, а целая среда для разработки на PHP, которая изначально создавалась для Java программистов; бесплатный редактор от Adobe Brackets; завершает этот список редактор Sublime Text 3, который, к сожалению, платный. Все эти редакторы имеют подсветку синтаксиса PHP и авто дополнение PHP кода, а так же различные плагины и расширения, которые значительно облегчают работу PHP-разработчика. Теперь давайте поговорим, о принципе взаимодействия сервера с клиентом при использование PHP сервера. Статические HTML страницы и взаимодействие клиент-сервер без использования PHP-сервера. В данной лекции речи про установку PHP сервера или сервера Apache не будет, только небольшое введение по этой теме. Представим такую ситуацию: есть пользователь, который хочет найти какую-то информацию и есть огромная машина далеко-далеко, на которой эта информация хранится. Назовем их соответственно сервер и клиент. А на этой машине установлено серверное программное обеспечение. И допустим, что информация на этом сервере хранится в виде HTML документа. И вот пользователь обратился к серверу за этой страницей. Сервер выбрал интересующую страницу, обработал ее, отправил клиенту. Клиент(браузер) в свою очередь получил страницу, по своему ее обработал, и пользователь увидел на экране своего монитора, представленную в удобном виде информацию. В принципе тут ничего сложного. Понятно, что HTML – это статика, то есть, каждый пользователь, скачавший HTML документ, увидит одно и то же. А нам бы, например, хотелось, чтобы пользователи имели различные права доступа к документу и в зависимости от этих прав видели только определенную часть этого документа, естественно, что таких средств в HTML нет. На рисунке вы можете наглядно посмотреть, как примерно работает выше описанная схема, естественно, что на рисунке пропущены многие этапы. Как я уже говорил, данная схема упрощена. Динамические страницы. Взаимодействие клиент-сервер с использованием PHP сервера. Но, давайте немного переработаем эту схему и посмотрим, как будет выглядеть эта же схема если мы будем использовать такой язык программирования как PHP. Но вместо PHP можно использовать и ASP net, и Perl, и Java, поэтому, я считаю, что можно использовать нейтральное слово модуль сервера, в данном случае – это PHP сервер. Таким образом, если пользователь делает запрос к web странице, на которой имеется написанный скрипт на PHPили любом другом серверном языке программирования. Происходит следующая картина: вначале пользователь обращается непосредственно к серверу, указывая путь к нужному файлу(документу) в адресной строке браузера, сервер находить нужный документ и отдает его на обработку серверному модулю, в нашем случае это PHP сервер, который сканирует HTML документ и ищет в нем участки кода написанные на PHP, чтобы в дальнейшем их обработать. Обратите внимание, что PHP интерпретатор просто отбрасывает все HTML теги, ему они не нужны. PHP интерпретатор можно сравнить с переводчиком, которому дали текст часть которого написана на русском, а часть на китайском, естественно, что переводчик сразу же отбросит весь русский текст и будет работать только с китайским. А каждый китайский иероглиф переводчик будет переводить на русский язык и записать это все на лист бумаги. Затем модуль PHP отдает обработанный документ серверу, после чего сервер отправляет этот документ нашему браузеру, и в итоге мы видим у себя на экране HTML страницу, состоящую из HTML элементов, написанную HTML тегами, но при использовании PHP сервера, каждый пользователь, запрашивающий тот или иной документ, на выходе может получить различную информацию. Также можно смело говорить, что миф о том, что поисковики отдают предпочтение HTML документам, нежели сайтам, написанным на PHP, можно считать разрушенным, так как на выходе мы получаем тот же самый HTML документ. Поэтому, можно смело говорить, что этот фактор никак не влияет на поисковое продвижение сайтов, а SEO специалисты, утверждающие обратное немного не компетентны в этом вопросе. Для большей наглядности приведу рисунок, на котором изображена передача данных между сервером и клиентом, но уже с использованием PHP сервера. Для чего нужен PHP сервер мы разобрались, теперь давайте поговорим о назначение сервера Apache. Понятно, что мы можем находиться где-нибудь в Магадане, а сервер находится где-нибудь в Москве и нужно как-то организовать передачу данных между сервером и пользователем. Но, перед тем как организовывать передачу данных между сервером и клиентом, а также рассматривать, как это все происходит в масштабах всемирной паутины нужно каким-либо образом отладить работу своего сайта у себя дома на компьютере, в этом может на помочь ПО DENWER, или же мы можем установить по отдельности HTTP-сервер Apache, который грубо говоря отвечает за передачу данных между сервером и клиентом, PHP сервер, который обрабатывает и проверяет документы написанные с использованием PHP, ну а в последствии и MySQL сервер, который отвечает за хранение и ведение баз данных нашего будущего сайта, обратите внимание, что последовательность установки серверов не имеет никакого значения, они в принципе могут работать отдельно друг от друга! Лекция 2. Установка сервера для разработкиМы уже знаем, что для создания простенького сайта, достаточно текстового редактора и некоторых знаний HTML, но как быть если для проекта задуман динамичный, постоянно обновляемый сайт с необходимостью удобного управления всем его содержимым? Очевидно, одного HTML здесь недостаточно. Для создания такого сайта необходимо изучение дополнительных технологий и языков программирования. Но какие именно языки и технологии могут быть полезны при разработке подобных сайтов? Для начала HTML – язык разметки, который пока никто не отменял, поэтому его знание должно быть хорошим. Крайне желательно знание JavaScript, CSS, DHTML и XML. Но это еще не все для работы с вышеупомянутыми технологиями необходимо установить комплекс программ на своем компьютере, ведь если вы разрабатываете интернет-приложения, но нет собственного сервера для их разработки, то, прежде чем протестировать каждую созданную модификацию приложения, ее придется загружать на сервер, находящийся где-нибудь в Интернете. Даже при наличии высокоскоростного широкополосного подключения это обстоятельство может существенно замедлить разработку. А на локальном компьютере тестирование может быть не сложнее обновления программы (зачастую запускается простым щелчком на значке) с последующим щелчком на кнопке браузера Refresh (Обновить). Еще одно преимущество разработочного сервера заключается в том, что при написании и тестировании программ не нужно волноваться о смущающих разработчика ошибках или проблемах безопасности, а при размещении приложения на публичном веб-сайте нужно знать о том, что люди могут увидеть, или о том, что они могут сделать с вашим приложением. Лучше уладить все проблемы, пока вы работаете дома или в небольшом офисе, который, вероятнее всего, защищен межсетевыми экранами (брандмауэрами) и другими средствами обеспечения безопасности. Начнем с уже громоздких и наверно уже устаревших конструкций - WAMP, MAMP и LAMP что же это такое? WAMP, MAMP и LAMP — это сокращения от «Windows, Apache, MySQL и PHP», «Mac, Apache, MySQL и PHP» и «Linux, Apache, MySQL и PHP» соответственно. Этими сокращениями описываются полноценные функциональные установки, используемые для разработки динамических веб- страниц. Системы WAMP, MAMP и LAMP поставляются в форме пакетов, связывающих упакованные программы таким образом, чтобы их не нужно было устанавливать и настраивать по отдельности. Это означает, что нужно просто загрузить и установить одну программу и следовать простым подсказкам, для того чтобы подготовить разработочный сервер и запустить его в кратчайшие сроки и с минимальными усилиями. В процессе установки будет создан ряд исходных настроек. Конфигурация безопасности при такой установке не будет столь же строгой, как на технологическом веб-сервере, поскольку она оптимизирована для использования на локальной машине. Поэтому не следует пользоваться такими настройками при установке технологического сервера. Однако для разработки и тестирования веб- сайтов и приложений подобная установка подойдет как нельзя лучше. Если для создания своей системы разработки вы решили не использовать W/L/MAMP, следует учесть, что загрузка и самостоятельная взаимоувязка составных частей займут очень много времени и могут отнять много сил на исследования для создания полноценной конфигурации всей системы. Существует несколько доступных WAMP-серверов, каждый из которых предлагает свою, немного отличающуюся от других конфигурацию, но самый удобный из них имеет и соответствующее название — EasyPHP. После загрузки файла нужно запустить установщик и следовать подсказкам, соглашаясь с предлагаемыми настройками по умолчанию. После завершения установки EasyPHP будет загружен и в область уведомлений "Панели задач" в правом нижнем углу экрана добавлен соответствующий значок: После двойного щелчка на значке, находящемся в области уведомлений, появится окно управления. Из этого окна можно запустить, остановить и перезапустить как Apache, так и MySQL: Окно управления EasyPHP с запущенными Apache и MySQL Если EasyPHP выводит во всплывающем окне сообщения о каких-нибудь ошибках, мешающих запуститься Apache или MySQL из-за блокировки порта, то это означает, что с EasyPHP конфликтует либо межсетевой экран (брандмауэр), либо какая-нибудь другая программа. Иногда эти порты могут блокироваться антивирусными программами; программы вроде Skype могут пытаться захватить порт 80 для решения своих задач. Решение в таких случаях состоит в том, чтобы изучить настройки всех этих программ и убедиться в том, что порт 80для Apache и порт 3306для MySQL не заблокированы или не заняты. Кроме того, если вы используете Windows Vista, 7 или 8 и видите, что-либо Apache, либо MySQL останавливаются вскоре после их запуска, то вполне возможно, что для папок EasyPHP не были установлены соответствующие права доступа. Для исправления этой ситуации следует перейти в папку Program Files, щелкнуть правой кнопкой мыши на папке EasyPHP-DevServer и выбрать пункт меню Свойства (Properties). Затем в открывшемся окне нужно щелкнуть на вкладке Безопасность (Security) и изменить права доступа для этой папки и вложенных в нее папок, обеспечивая всем пользователям доступ к ним по записи. Известно, что эта проблема возникает только после перезапуска Windows. На данном этапе сначала нужно проверить, что все работает должным образом. Для этого следует попытаться отобразить исходную веб-страницу, которая была сохранена в корневой папке сервера. Введите любой из следующих URL-адресов в адресную строку вашего браузера: http://127.0.0.1/home http://localhost/home Если все в порядке, то вы увидите главный экран EasyPHP: Предположим, что до сих пор все шло удачно, и теперь нужно выполнить еще одну задачу, для того чтобы ваш разработочный сервер стал полностью работоспособным. Создайте на своем жестком диске папку с названием "web" и щелкните в разделе «Local Files» на ссылке "Add an alias". Теперь в поле раздела 2 введите запрашиваемый псевдоним web, а в поле раздела 3 — путь расположения созданной папки. Затем щелкните на кнопке ОК: Если будут обслуживаться сразу несколько проектов, то может появиться желание создать все необходимые каталоги и псевдонимы, распознаваемые сервером Apache. Псевдоним представляет собой короткую, легко узнаваемую строку, используемую для ссылки на более длинное путевое имя, он может не совпадать с именем каталога. Теперь, чтобы убедиться в том, что все сконфигурировано должным образом, нужно создать небольшой HTML-файл, содержащий следующие строки и сохранить его в папке web под именем index.php: Простой тестовый файл index.php HTML> print 'Hello world! '; phpinfo(); ?> |