Web МастерскаяБлог
Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.
PHP: Ошибка "Creation of dynamic property"
Начиная с версии PHP 8.2, появилась новая ошибка "Creation of dynamic property", которая предупреждает разработчиков о недопустимом создании динамических свойств в классах. Эта ошибка сигнализирует о переходе PHP к более строгим стандартам объектно-ориентированного программирования и подготовке к отказу от старых практик.
Ошибка "Creation of dynamic property" возникает, когда программа пытается создать новое свойство класса во время выполнения, не объявляя его предварительно в определении класса. Ранее такое поведение разрешалось, но начиная с PHP 8.2, оно объявлено устаревшим и в будущем будет полностью запрещено.
Пример кода, вызывающего ошибку:
Ранее PHP позволял динамически создавать свойства, что приводило к следующим проблемам:
Что такое ошибка "Creation of dynamic property"?
Ошибка "Creation of dynamic property" возникает, когда программа пытается создать новое свойство класса во время выполнения, не объявляя его предварительно в определении класса. Ранее такое поведение разрешалось, но начиная с PHP 8.2, оно объявлено устаревшим и в будущем будет полностью запрещено.
Пример кода, вызывающего ошибку:
class ExampleClass {}
$obj = new ExampleClass();
$obj->newProperty = 'value'; // Создание динамического свойстваПочему это считается проблемой?
Ранее PHP позволял динамически создавать свойства, что приводило к следующим проблемам:
- Низкая читаемость кода: Невозможно было сразу увидеть, какие
- Жалоба
MySQLi: Использование функции bind_param()
При разработке веб-приложений на PHP одна из важнейших задач — защита от SQL-инъекций, позволяющих злоумышленникам внедрить вредоносный код в запросы к базе данных. Одним из эффективных решений этой проблемы являются подготовленные выражения (prepared statements) в комбинации с функцией
Эта статья объясняет, как правильно использовать функцию
Функция
Принцип работы:
Шаг 1: Под...
bind_param(), доступной в библиотеке MySQLi.Эта статья объясняет, как правильно использовать функцию
bind_param() для безопасной передачи данных в SQL-запросы, избавляясь от риска SQL-инъекций и улучшая производительность приложений.Что такое bind_param()?
Функция
bind_param() — это встроенный метод библиотеки MySQLi, предназначенный для связывания переменных с плейсхолдерами в подготовленных выражениях. Она позволяет надёжно передавать данные в SQL-запросы, предотвращая возможность внесения опасных команд злоумышленниками.Принцип работы:
- Создать подготовленный запрос с плейсхолдерами (
?). - Привязать переменные к плейсхолдерам с указанием их типов.
- Выполнить запрос.
Как использовать bind_param()?
Шаг 1: Под...
Безопасность и производительность запросов в PHP с использованием PDO Prepared Statements
Использование PDO (PHP Data Objects) и подготовленных выражений (prepared statements) — это важный аспект разработки веб-приложений на PHP. Эти инструменты обеспечивают защиту от SQL-инъекций, повышают производительность приложений и делают код более удобным для чтения и сопровождения.
Современные веб-приложения часто взаимодействуют с базами данных, отправляя запросы для получения или изменения данных. Прямая вставка переменных в SQL-запросы представляет собой серьезную угрозу безопасности, известную как SQL-инъекции. Используя подготовленные выражения, разработчики могут значительно снизить риск таких угроз.
Кроме того, подготовленные выражения улучшают производительность приложений, особенно при многократном выполнении схожих запросов.
Подготовленные выражения используют плейсхолдеры (placeholders) вместо непосредственных значений в SQL-запросах. Эти плейсхолдеры позже замещаются реальными значениями при...
Почему важны подготовленные выражения?
Современные веб-приложения часто взаимодействуют с базами данных, отправляя запросы для получения или изменения данных. Прямая вставка переменных в SQL-запросы представляет собой серьезную угрозу безопасности, известную как SQL-инъекции. Используя подготовленные выражения, разработчики могут значительно снизить риск таких угроз.
Кроме того, подготовленные выражения улучшают производительность приложений, особенно при многократном выполнении схожих запросов.
Как работают подготовленные выражения?
Подготовленные выражения используют плейсхолдеры (placeholders) вместо непосредственных значений в SQL-запросах. Эти плейсхолдеры позже замещаются реальными значениями при...
Оптимизация производительности веб-сайтов
Высокоскоростная загрузка веб-сайта — ключевой фактор, влияющий на пользовательский опыт, показатели поведенческих факторов и конверсию. Медленные сайты приводят к высокому проценту отказов, ухудшению позиций в поисковых системах и снижению дохода. В этой статье мы рассмотрим комплекс мер по оптимизации производительности веб-ресурса.

1. Минимизация веса изображений
Крупные изображения занимают значительную долю трафика. Применение техник сжатия поможет существенно сократить вес графики:

Почему важна высокая скорость загрузки?
- Пользователи нетерпеливы:
Согласно исследованию Google, задержка загрузки на 1 секунду снижает конверсию на 20%. - Поисковики учитывают скорость:
Скорость загрузки входит в критерии ранжирования поисковых систем, что улучшает позиции сайта в выдаче. - Повышение лояльности клиентов:
Быстрая реакция сайта повышает доверие и удовлетворенность пользователей.
Методы ускорения загрузки веб-сайта
1. Минимизация веса изображений
Крупные изображения занимают значительную долю трафика. Применение техник сжатия поможет существенно сократить вес графики:
- Сжатие изображений: Есть онлайн сервисы, что уменьшают размер изображений без
PHP: Как получить расширение файла по его номеру
В PHP номер формата изображения (константы типа IMAGETYPE_*) можно преобразовать в соответствующее расширение файла с помощью массива, связывающего номера с расширениями. Приведу простой и удобный способ, как это сделать.
Пример:
...
Пример:
// Массив, связывающий номера форматов с соответствующими расширениями
$extensions = [
IMAGETYPE_GIF => 'gif',
IMAGETYPE_JPEG => 'jpg',
IMAGETYPE_PNG => 'png',
IMAGETYPE_SWF => 'swf',
IMAGETYPE_PSD => 'psd',
IMAGETYPE_BMP => 'bmp',
IMAGETYPE_TIFF_II => 'tif',
IMAGETYPE_TIFF_MM => 'tif',
IMAGETYPE_JPC => 'jpc',
IMAGETYPE_JP2 => 'jp2',
IMAGETYPE_JPX => 'jpx',
IMAGETYPE_JB2 => 'jb2',
IMAGETYPE_SWC => 'swc',
IMAGETYPE_IFF => 'iff',
IMAGETYPE_WBMP => 'wbmp',
IMAGETYPE_XBM => 'xbm',
IMAGETYPE_ICO => 'ico',
IMAGETYPE_WEBP => 'webp'
];
// Пример использования
$imageInfo = getimagesize('image.png');
$extension =
Категории
- Apache 6
- CMS 3
- CSS 16
- FTP 1
- HTML 11
- JavaScript 43
- MySQL 17
- Nginx 16
- PHP 50
- phpMyAdmin 2
- SVG 3
- URL 1
- XML 3
- Безопасность 7
- Библиотека JS 16
- Графика 3
- Доменное имя 1
- Инструкция 1
- Кодировка 2
- Контент 8
- Мнение 1
- Мобильное устройство 1
- Монетизация сайта 2
- Настройка 3
- Оптимизация 2
- Ошибка 10
- Поисковая система 1
- Продвижение сайта 6
- Производительность 1
- Софт 1
- Старт 2
- Сценарий 1
- Функция 1
- Хостинг | Сервер 3
Реклама














