PHP попытки изучения. Зачем нужно?

PHP попытки изучения. Зачем нужно?

Вступление

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

Откуда возник интерес к PHP?

Поизучав 2 недели HTML я на скорую руку наклепал простой сайт без излишеств. Стало понятно, что у любого сайта есть страницы, а они в свою очередь всегда имеют теговую структуру. Когда дело дошло до CSS, то прояснилось почему существуют скругления, адаптации блоков под разные экраны, а также цвета. До JavaScrip дело не дошло т. к. информации оказалось в избытке и нужно было принимать решение, что с ней делать. Нет смысла идти глубже, если не знаешь зачем это нужно. По этой причине трио фронтенда не завершилось.

Когда своими ручками верстаешь сайт, то очень быстро приходишь к пониманию того, что хотел бы копировать некоторые блоки разметки из одной страницы в другую. В ручном режиме нужно видоизменять каждую страницу и хранить её отдельным файлом. А представьте себе, что часть информации у вас дублируется на разных страницах. Например это может быть цена или описание какого-либо товара. В этот момент в голове зарождается базовая мысль — каким образом можно динамически менять содержимое страниц? В противном случае при изменении какого-то параметра нужно будет менять о нём информацию на всех имеющихся страницах. Ладно если их 2 — не сложно. А если у вас их 100 — уже проблема.

Необходимость изучения PHP

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

Пример проблемы если делать вручную — верстать на HTML

Представьте себе интернет-магазин из 600 товаров. Кроме индивидуальных страниц одной единицы товара ещё существуют разделы и каталоги. Может оказаться так, что грамотная пользовательская структура сайта позволит генерировать ещё 600 посадочных страниц по каким-либо характеристикам товара. Итого уже 1200. Я говорю про возможность пользователя сайта создавать свои фильтрации и отборы. Это не тупой поиск по словарному соответствию. Грамотные магазины могут иметь до нескольких тысяч уникальных свойств (характеристик) товаров. Как в таком случае генерировать адаптивные заголовки, которые будет кушать поисковая система, а вместе с ней и пользователи?

Например вы продаёте двигатели для транспорта и у вас на сайте 600 моделей. А дальше вы группируете все модели по разделам — электрические двигатели или внутреннего сгорания. А если ДВС, то на каком топливе? — бензин или дизель? А если бензин, то какой производитель? — Nissan или BMW? А если Nissan, то для какого типа автомобиля? — легкового или грузового? А если легковой, то сколько цилиндров? — 4 или 8?…. И так далее.

Как вы понимаете возможных вариантов «А если» существует очень много в этой тематике. Их модификация очень сильно зависит от вашей фантазии. Можно конечно начать лениться и делать всего две категории, но в таком случае забудьте о продажах. Такой «безрукий» сайт будет выглядеть беспомощно на фоне сложных отборных приложений. Как создавать SEO-оптимизированный сайт с хорошей удобной структурой, чтобы все страницы формировались динамически (на лету)?

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

Что нужно для PHP?

Много знаний. Хахах. «Удивил» — скажете вы. Ниже буду рассуждать как простой человек, который имеет потребность в реализации собственных задач, своими силами. Существующие видеокурсы по изучению PHP не произвели на меня впечатление т. к. в них не разбираются бытовые задачи, которые интересуют меня в первую очередь. Я мыслю как потребитель и хочу понимать (изучать) материал в нужной для меня последовательности. Возможно, вы тоже согласитесь со мной.

Среда разработки

Первое, на что хочу обратить внимание — это среда разработки. До HTML у меня небыло чёткой картины мира о том, каким образом можно создавать сайты. Тогда звучал вопрос — «Как сделать сайт?». Сейчас я знаю больше и могу задать дополнительные наводящие вопросы. Но тогда это был единственный.

Изучение HTML дало мне понять, что для написания кода нужны специальные редакторы кода. Мне казалось, что люди пишут сайты в блокнотах или вордах. Редакторы кода умеют подсвечивать содержимое таким образом, что в нём легко находить структуру кода, а также элементы из которых состоит код. Без редактора ничего не получится. Их существует огромное количество, но я пока остановился на бесплатном варианты Notepad++.

Допустим вы написали код. А дальше что? Как его запустить? Как его проверить? Для этих целей нам нужен веб-сервер. Это программа, которая умеет обрабатывать запросы браузера. Когда мы что-то кликаем на странице в браузере, то с каждым кликом посылаются запросы на веб-сервер, на котором работает этот сайт. Веб-сервер обрабатывает запрос и посылает ответ в виде HTML-страницы.

Тут есть два пути:

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

Чтобы спокойно потренироваться в программировании, лучше сразу начинать с локальной версии у себя на ноуте. Как же развернуть веб-сервер у себя? Не беспокойся, за тебя уже подумали другие люди. Всё что тебе нужно это установить среду разработки OpenServer. Разработчики этого продукта сами себя называют OSpanel

После установки у вас появится рабочая папка, куда вы будете складывать все файлы своих будущих сайтов. (те файлы, которые накодите в редакторе кода). Система будет обманывать ваш браузер и возвращать запросы, как-будто они стандартно обработались в DNS.

<?php echo "Hello, World!"; ?>

Графическая оболочка

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

Нужно понять как должна выглядеть форма для пользователя? Потом необходимо понять какие элементы языка HTML создают формы? Дальше нужно различать типы элементов форм и то какие данные они могут обслуживать? Потом нужно понять каким образом данные из форм (из клиента) поступают (отправляются) на веб-сервер и какие методы за это отвечают? Дальше нужно знать каким образом сервер обрабатывает данные из форм? Как он их хранит? и как он их извлекает?

Для версии HTML 5.3 есть оригинальный документ на английском языке, который описывает формы:

https://www.w3.org/TR/html53/single-page.html#sec-forms