- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
PHP. Разработка модуля комментариев для сайта - Дмитрий Приходько
Шрифт:
Интервал:
Закладка:
1. Подготовка
1.1 Выбор редактора кода
Первое с чем необходимо определиться, это где писать код. Редакторов кода много. Выбор есть. При этом сам по себе выбор редактора очень субъективен, потому что функционально они все практически одинаковы. Все зависит от личных предпочтений пользователя. Ниже очень краткий обзор редакторов, которые нравятся лично мне.
Notepad++. Да, я использую текстовый редактор Notepad++. Самый быстрый редактор. Строг и лаконичен, в отличие от приведенных далее и которые больше похожи на детские книжки «разукрашки», а не на рабочие инструменты. На мой взгляд для разработки на PHP его возможностей более чем достаточно. Отлично подобранная цветовая гамма по умолчанию. Небольшая начальная настройка плюс прокачка плагинами и он становится не только самым быстрым, но и самым удобным редактором кода. Что касается меня, то когда я пишу код в нем я отдыхаю, когда пользуюсь другими редакторами я работаю. Он удобен как домашние тапочки, все просто и практично без лишней мельтешащей суеты. Официальный сайт https://notepad-plus-plus.org/. Установка проста. Скачиваете установщик, запускаете. Всё. По его настройкам в интернете есть очень много материалов. Поэтому вкратце. В первую очередь настраиваем автозавершение. Идем в Опции->Настройки->Автозавершение. Ставим галочки. Теперь у нас будут автоматически завершаться выбранные парные теги, слова и функции.
Рис. 1 Настройка автозавершения в Notepad++.
Важно! Сразу устанавливаем кодировку файлов в редакторе Utf-8 без BOM. Для этого открываем вкладку «Кодировки» и устанавливаем нужную: Utf-8.
Далее устанавливаем плагины. Для этого переходим на вкладку плагины и жмем кнопку управление плагинами. Выбираем нужный и устанавливаем. Всё интуитивно понятно.
Из полезных на мой взгляд это «Snippets», который позволяет вставлять готовые блоки кода HTML, CSS и PHP и плагин «TextFx» для обработки текста. Подробные описания плагинов и их установка есть в интернете, поэтому останавливаться на этом не буду. Скриншот с плагинами, установленными на своем редакторе прилагаю.
Рис. 2 Список установленных плагинов в Notepad++.
2. Sublimetext 3. Прост в установке и настройке, не критичен к ОС, запускается даже на Windows XP, но на мой взгляд уступает в скорости Notepad. По возможностям аналогичен Notepad. Официальный сайт https://www.sublimetext.com/3 . В целом очень неплох, но только после прокачки. Однако рекомендовать его не могу. Слишком уж он ненадежен, «глючит» на ровном месте. После того как он перестал запускаться на четвертом подряд компьютере, я решил что жизнь слишком коротка, чтобы тратить время на выяснение, а почему же не работает Sublimetext 3. Очень сырой продукт. Привел его здесь в качестве антипримера.
3. VS Code. Хорошая машинка, хотя заметно уступает в скорости вышеприведенным редакторам. Если Notepad++ можно использовать сразу из коробки и все будет работать замечательно и быстро, то VS Code как и Sublimetext необходимо настраивать. Причем VS Code достаточно капризен, не ставится на старые версии Windows и на его настройку под себя, гарантированно потратите гораздо больше времени, чем планировали. По моему мнению, под простые проекты использовать его не имеет смысла. Зато очень радует красивая оболочка, на которую вполне можно медитировать, забыв о работе и настраивая всё и вся. Официальный сайт https://code.visualstudio.com/ .
Первый и последний редакторы без проблем одолеют любой написанный код. Выбор за вами.
1.2 Справочник языка
PHP
Далее нам понадобится справочник языка PHP от разработчиков. Он доступен в разных вариантах. Я предпочитаю локальный файл справки в формате chm. Эта справка будет доступна даже при отключении от сети. Для получения справочника заходим на сайт разработчиков https://www.php.net/ переходим на вкладку «Documentation». Ищем на этой странице раздел «Downloads». Переходим по приведенной там ссылке на страницу скачивания документации https://www.php.net/download-docs.php . Выбираем «HTML Help file» – «Russian» в формате chm. Скачиваем. Переходим в место расположения загруженного файла. Жмем правую кнопку мыши. В контекстном меню выбираем: «Свойства», затем «Общие». Жмем кнопку «Разблокировать». Всё. Теперь можно пользоваться справочником по языку программирования PHP на русском языке.
Внимание: ответы На большинство вопросов, которые связаны с пониманием работы кода вы найдете именно в этом справочнике.
1.3 Сервер
Разработка ведется локально, поэтому нужен сервер. Здесь все просто: Open Server. В нем уже встроено все, что нужно в данной ситуации. А именно: Apache, PHP, MySQL, phpMyAdmin и отправка писем с сервера. Поэтому идем на сайт разработчика https://ospanel.io/. Качаем нужную версию. Устанавливаем. Запускаем. Щелкаем на значке «Open Server» в виде флажка и переходим на вкладку «Настройки» затем «Модули». Выбираем нужную версии языка PHP желательно самую последнюю, она будет зависеть от версии Windows установленной на вашем компьютере, выбираем модуль Apache, программы, которая позволяет пользователю просматривать веб-документы, совместимый с версией PHP и нужный модуль базы данных MySQL.
Рис. 3 Настройки модулей Open Server
Итак, выбран редактор кода, есть справочник по PHP и развернут локальный сервер, на котором включены необходимые модули. Осталось определиться с отладчиком.
1.4 Отладчик
Для отладки использовалась доработанная функция dumper(), предложенная в книге [2.С.225]. Моя доработка заключалась в замене функции each(), которая не поддерживается в версиях языка PHP выше 7.2, на цикл foreach. Скрипт с функциями размещаем в отдельном файле dumper.php и будем подключать в шапке «проблемной» страницы для вызова функции dumper().
Листинг 1. dumper.php
<?php
// Функция для вывода содержимого переменной
// Распечатывает дамп переменной на экран
function dumper($obj)
{
echo
"<pre>",
htmlspecialchars(dumperGet($obj)),
"</pre>";
}
// Возвращает строку – дамп значения переменной в древовидной форме
// (если это массив или объект). В переменной $leftSp хранится
// строка с пробелами, которая будет выводиться слева от текста.
function dumperGet(&$obj, $leftSp = "")
{
if (is_array($obj)) {
$type = "Array[" . count($obj) . "]";
} elseif (is_object($obj)) {
$type = "Object";
} elseif (gettype($obj) == "boolean") {
return $obj ? "true" : "false";
} else {
return ""$obj"";
}
$buf = $type;
$leftSp .= " ";
foreach ($obj as $k => $v) {
Reset($obj);

