Сначала немного представлюсь. Я кандидат технических наук. Специализация тепло, механика, энергетика. Разработка сайтов и программирование не являются для меня основным занятием, это просто хобби. В своё время изучал язык программирования Delphi, писал на нем программы, связанные с обработкой баз данных. На одно из разработанных мною приложений, написанных на Delphi, получил официальное свидетельство на программу для ЭВМ.
В первую очередь хотел бы поблагодарить всех web-программистов, занимающихся, кроме основной работы, еще и просветительской деятельностью. Большое Вам всем спасибо. Естественно хотел поблагодарить своих родителей, ведь без них этой книги бы не было. И конечно старших товарищей. Моего бывшего научного руководителя, доктора технических наук, профессора, Буслаева Виктора Федоровича и бывшего начальника и руководителя, доктора технических наук, профессора, Гальянова Ивана Васильевича.
Для кого написана эта книга
В первую очередь книга рассчитана на читателя, который как минимум, должен знать общий синтаксис PHP, а также иметь некоторый опыт использования языка на практике. Думающему, активному новичку в PHP, который хочет проверить себя и разобраться с возможностью реализации обратной связи между посетителями сайта при помощи языка сереверного программирования.
Для тех, кто вечно спешит и кому нужен просто модуль комментариев для их сайта, а не беллетристика. Они могут не читать, а просто воспользоваться кодом, приведенным в книге и начать им пользоваться.
Книга никоим образом не претендует на роль учебника по PHP и MySQL, а является в некотором роде решебником. Показывает путь решения задачи, вставшей перед разработчиком сайтов уровня любитель. Частный случай по оживлению силициума. В ней показано как с ноля можно решить конкретную прикладную задачу. Причем решить на языке PHP, языке серверном, сложность которого, несмотря на внешнюю простоту, в действительности вполне можно сравнить со сложностью дифференциальных уравнений. В книге основной упор сделан не на рассмотрение функций языка, с этим гораздо лучше справится мануал от разработчиков, а на логику решения задач, возникающих при написании кода.
Ну и собственно говоря, о самой задаче. Она встала передо мной на ровном месте и заключалась в следующем. В ходе проводимой исследовательской работы у меня возникла необходимость в своем личном блоге, в котором, в числе прочего можно было бы быстро обсудить с коллегами последние новости. Что можно было сделать?
Первый и совершенно очевидный вариант: использование готовых CMS (Content Management System) т.е. программ управляющих содержимым сайтов. Ранее мне приходилось делать для организаций, в которых я работал сайты. Обычно использовал Joomla. Начинал ещё с её первой версии. Остались самые положительные впечатления. А первый свой сайт вообще написал в блокноте с использованием табличной верстки. И было это в те годы, когда про CMS ещё не слышали. Поэтому решил опять взяться за Joomla и одновременно посмотреть, может есть, что поинтереснее. Так вот. Изучение бесплатных систем управления сайтами по состоянию на 2019 год, меня честно говоря, обескуражило. Делюсь впечатлениями.
Joomla. Проста и дружелюбна для новичков, но последние версии стали использовать шаблоны, распухшие до неприличных размеров, что привело к сильному падению скорости работы сайтов. Бесплатность относительная. За действительно нужные модули просят денег. С бесплатными модулями есть постоянная проблема с обновлением CMS до последней актуальной версии.
Общее впечатление: при всех плюсах последней Joomla ложкой дегтя являются «современные» шаблоны. Неуклюжие и примитивные, с жутко медленной настройкой, при этом едят кучу ресурсов, медленно стартуют и так же нехотя работают, чем напрочь отбивают желание пользоваться этой CMS.
Drupal. Крайне не дружелюбен к новичкам. Без хороших навыков программирования чуть более, чем бесполезен. Хотя для программистов очень даже неплох. Был. Насколько хорош он был в предыдущей седьмой версии, настолько же ухудшился в последней восьмой. На мой взгляд, восьмая версия Drupal это полный провал. Заметно тормозит даже в пустой сборке по умолчанию.
Wordpress. Вроде простой, вроде удобный. Но в нем только по рельсам. Добавить что-либо своё – это огромные затраты времени, совершенно не пропорциональные результату. Проще написать новую CMS, что кстати многие разработчики и делают, чем пытаться «прикрутить» к Wordpress что-то своё.
Maxisite. Бесплатная CMS, шаблоны которой мне понравились своей аккуратностью. Но использовать авторские CMS типа Maxisite – это значит потратить энное количество времени на то, чтобы разобраться с их кодом. Тоже не вариант. Разбираться с чужим кодом, это слишком долго.
Движок форума типа phpBB. Разворачивать на личном блоге форум, как-то слишком серьезно. Опять же потребуется довольно много времени на настройку под свои нужды.
Небольшое «лирическое отступление». Самое интересное по моему мнению в современной web разработке состоит в том, что скорость работы языка на котором в основном разрабатываются системы управления контентом, а именно PHP, от англ. PHP: Hypertext Preprocessor препроцессор гипертекста[6] постоянно увеличивается, а работа сайтов замедляется.
При этом контент не изменился. Как было на заре интернета, несколько десятков лет тому назад: текст, картинка, видео и звук. Так и осталось: текст, картинка, видео и звук. Только вот программы для их обработки распухли до монструозных размеров.
Таким образом, пришло решение использовать для блога простейший HTML и CSS шаблон, к которому подключать модуль комментариев.
И в очередной раз столкнулся с проблемой. Поиск таких модулей в интернете показал, что бесплатные или не устанавливаются или не работают, а рабочие стоят существенных денег. Поэтому решил совместить приятное с полезным, т.е. изучить язык программирования и заодно написать на нем свой модуль комментариев. Сразу встал вопрос: на каком языке писать? В данном случае вариантов было два. Javascript или PHP. Выбрал PHP, потому что его код выполняется на стороне сервера и будет работать всегда и везде невзирая на настройки пользователя, в отличии от Javascript, выполнение команд которого пользователь может отключить. Итак, задача: разработать модуль комментариев для сайта на языке PHP.
Изучение литературы по данному вопросу показало, что отечественных книг по данной теме нет. Может я и ошибаюсь, можете меня поправить. Но в основном это справочники, в которых есть все обо всем и ни о чем конкретно. Список использованной литературы в конце книги. Из понравившихся, особо хотел бы отметить книгу Кевина Янка «PHP и MySQL. От новичка к профессионалу» [1] – отличное изложение и совершенно практичное применение, освоивший её, без проблем сможет написать свою первую CMS. Собственно говоря, именно освоение данной книги и сподвигло меня на самостоятельную разработку модуля. Из книг отечественных авторов не нашел ничего подходящего, зато могу отметить сайт Михаила Русакова [3] и Евгения Попова [4] пишут коротко и по делу, некоторые их материалы оказались очень полезны.